10 interesting stories served every morning and every evening.

Daily links from Cory Doctorow

pluralistic.net

Today’s links

Spying on kids to save kids from spy­ing is very, very stu­pid: First they came for the VPNs.

Hey look at this: Delights to delec­tate.

Object per­ma­nence: RIP Darwin’s tor­toise; ISPs con­spire to cre­ate copy­right jail; Waxy v fair use; Broken Windows is BS; Google is a ma­chine-learn­ing com­pany; Writing the Other”; Canadian wealth-tax.

Upcoming ap­pear­ances: Toronto, NYC, Philadelphia, Chicago, London, Edinburgh, Sydney, Melbourne, Brighton, London, South Bend.

Recent ap­pear­ances: Where I’ve been.

Latest books: You keep read­in’ em, I’ll keep writ­in’ em.

Upcoming books: Like I said, I’ll keep writ­in’ em.

Colophon: All the rest.

Spying on kids to save kids from spy­ing is very, very stu­pid (permalink)

The lit­er­a­ture on harms to kids from on­line plat­forms is com­plex and nu­anced, rife with peo­ple cit­ing small, am­bigu­ous stud­ies as iron-clad ev­i­dence that kids are be­ing de­stroyed by the in­ter­net:

https://​www.youtube.com/​watch?v=Ype6c6D­dHQY

It’s a weird coali­tion of anti-Big Tech cam­paign­ers (who are rightly an­gry at the plat­forms’ cal­lous dis­re­gard for user wel­fare) and Heritage Foundation-backed cul­ture war­riors (who think that if their kids aren’t ex­posed to LGBTQ con­tent they won’t come out as queer). While there’s plenty these groups dis­agree about, they share one con­sen­sus: there should be a minimum age” for cer­tain kinds of in­ter­net use.

The prob­lem is, there’s no such thing as age ver­i­fi­ca­tion” for the in­ter­net. What we call age ver­i­fi­ca­tion” is ac­tu­ally mass sur­veil­lance, so in­va­sive and per­va­sive that it makes the ad-tech in­dus­try’s com­mer­cial sur­veil­lance look like some kind of cypher­punk dark­net pi­rate utopia:

https://​plu­ral­is­tic.net/​2025/​08/​14/​bellovin/#​wont-some­one-think-of-the-cryp­tog­ra­phers

Age ver­i­fi­ca­tion” means that every­one who does any­thing on­line will have to sub­mit to fine-grained track­ing and record­ing of all their on­line ac­tiv­i­ties. This night­mare is the sur­veil­lance ad­ver­tis­ing in­dus­try’s fond­est dream, a world where it’s lit­er­ally il­le­gal to avoid their track­ing, all in the name of sav­ing kids…from them!

So it’s not just a weird al­liance of anti-Big Tech cru­saders and the con­spir­a­to­r­ial right that’s push­ing for age ver­i­fi­ca­tion — they are un­wit­ting al­lies of the very tech in­dus­try they think they’re fight­ing. Those tech in­dus­try in­sid­ers are fully aware that an age ver­i­fi­ca­tion” man­date is re­ally a way for the gov­ern­ment to teach every child how to use a VPN. They’re also fully aware that the next move is to ban VPNs:

https://​www.ex­press.co.uk/​news/​uk/​2217934/​vpn-ban-table-july-labour

Tech bosses are the ones sit­ting on our shoul­ders say­ing, Go ahead, swal­low that fly — it’ll be fine. And if you do have to swal­low a spi­der af­ter­ward, well, that’ll surely be the end of it”:

https://​plu­ral­is­tic.net/​2026/​05/​19/​shes-dead-of-course/#​con­sen­sus-hal­lu­ci­na­tion

Behind them is a long line of caliper-wield­ing grifters who claim they can use your phone’s cam­era to dis­tin­guish a child who is 17 years, 364 days old from an adult who’s just turned 18:

https://​www.gov.uk/​gov­ern­ment/​pub­li­ca­tions/​fa­cial-age-es­ti­ma­tion

It’s be­yond farce. After all, what­ever harms you be­lieve the in­ter­net is in­flict­ing on kids — and there’s ab­solutely some kids who are be­ing harmed by their in­ter­net use — those harms all start with sur­veil­lance. Your kids can’t be tar­geted by al­go­rithms with­out the sur­veil­lance data that’s be­ing used to tar­get them. They can’t be fun­neled into pro-anorexia con­tent or ex­treme misog­yny fo­rums with­out that fun­nel be­ing primed by com­mer­cial spy­ing.

Why do tech com­pa­nies spy on your kids? The same rea­son your dog licks its balls: be­cause they can, and no one stops them:

https://​plu­ral­is­tic.net/​2026/​03/​10/​ice-tech/#​fore­see­able-out­comes

America has­n’t up­dated its con­sumer pri­vacy laws since 1988 (when Congress banned the dis­clo­sure of your VHS rentals). The EU has the GDPR, but it also has Ireland, the coun­try where all GDPR cases against Big Tech go to die, be­cause any tax haven in­evitably be­comes a crime haven:

https://​plu­ral­is­tic.net/​2025/​10/​31/​los­ing-the-crypto-wars/#​sur­veil­lance-mo­nop­o­lism

Other coun­tries have pri­vacy laws to vary­ing de­grees, but are grossly out­matched by US tech gi­ants, who have fused with the Trump regime, to the ex­tent that Trump will im­pose penal­ties on your coun­try if you at­tempt to reg­u­late his tech com­pa­nies — he’ll even have your top of­fi­cials cut off from the in­ter­net in re­tal­i­a­tion:

https://​plu­ral­is­tic.net/​2026/​04/​04/​dig­i­tal-sub­ju­ga­tion/#​green­lands-next

Any at­tempt to save kids from on­line harms should start with sav­ing kids from on­line sur­veil­lance, but that’s the op­po­site of what we’re do­ing to­day. After decades of fail­ing to pass and en­force pri­vacy con­trols for the in­ter­net, those same gov­ern­ments are break­ing all land-speed records to pass age ver­i­fi­ca­tion” laws that make pri­vacy il­le­gal:

https://​bsky.app/​pro­file/​re­bec­ca­w­illiams.info/​post/​3moviqzdit22z

The fact that these bills have the firm back­ing of the tech in­dus­try’s most con­trol­ling, most spy­ing com­pa­nies tells you every­thing you need to know about them:

https://​web.archive.org/​web/​20260315022337/​https://​tbotepro­ject.com/

Kids are be­ing harmed by on­line spy­ing, and so are the rest of us. Whether you think that the al­go­rithm made Grampy go Qanon or you’re sus­pi­cious that on­line sur­veil­lance data was used to deny you a loan, a job, or a lease, you should want pri­vacy:

https://​plu­ral­is­tic.net/​2023/​12/​06/​pri­vacy-first/#​but-not-just-pri­vacy

Online sur­veil­lance is be­ing used to raise the prices you pay and lower the wages you’re of­fered:

https://​plu­ral­is­tic.net/​2026/​04/​06/​em­piri­cism-wash­ing/#​veena-dubal

And the same data that’s be­ing used to verify age” to­day will be used by ICE to­mor­row to fig­ure out who to round up for a con­cen­tra­tion camp:

https://​www.wired.com/​story/​ice-asks-com­pa­nies-about-ad-tech-and-big-data-tools/

You can’t pro­tect kids from on­line sur­veil­lance by spy­ing on them. You just can’t. Anyone who tells you oth­er­wise is try­ing to get you to swal­low a fly so they can sell you a spi­der, a bird, a cat, and an ICE chud in a gaiter, Oakleys and plate car­rier (beneath which lurks a stick-and-poke Totenkopf tat­too).

Hey look at this (permalink)

AI doomerism is mis­placed. Here’s what it will take to pop the bub­ble https://​www.sa­lon.com/​2026/​06/​22/​ai-doomerism-is-mis­placed-heres-what-it-will-take-to-pop-the-bub­ble/

Visa and Mastercard: The Original Gangsters of Electronic Collusion https://​www.thes­ling.org/​visa-and-mas­ter­card-the-orig­i­nal-gang­sters-of-elec­tronic-col­lu­sion/

Visa and Mastercard: The Original Gangsters of Electronic Collusion https://​www.thes­ling.org/​visa-and-mas­ter­card-the-orig­i­nal-gang­sters-of-elec­tronic-col­lu­sion/

Has it hap­pened yet? https://​ha­sithap­penedyet.org/

Has it hap­pened yet? https://​ha­sithap­penedyet.org/

Platform-Controlled Search and Distortions in Attention Allocation https://​tin­ber­gen.nl/​dis­cus­sion-pa­per/​6496/​26 – 035-vii-plat­form-con­trolled-search-and-dis­tor­tions-in-at­ten­tion-al­lo­ca­tion

Platform-Controlled Search and Distortions in Attention Allocation https://​tin­ber­gen.nl/​dis­cus­sion-pa­per/​6496/​26 – 035-vii-plat­form-con­trolled-search-and-dis­tor­tions-in-at­ten­tion-al­lo­ca­tion

Object per­ma­nence (permalink)

#20yrsago Darwin’s tor­toise dead at 176 https://​web.archive.org/​web/​20060704143750/​http://​news.ya­hoo.com/​s/​afp/​20060623/​od_afp/​aus­trali­aan­i­mal_060623102146;_ylt=Ave_b4P­s2r9T­GX­qs5nZIV­Io­FO7gF;_ylu=X3oDM­TA5bGV­na3N­hB­HN­lY­wNzc3JlbA–zoo

#15yrsago Major US ISPs set to limit re­peat in­fringers with throt­tling, lim­it­ing ac­cess to 200 web­sites, and copy­right reed­u­ca­tion school https://​web.archive.org/​web/​20111105225114/​http://​news.cnet.com/​8301 – 31001_3 – 20073522-261/​ex­clu­sive-top-isps-poised-to-adopt-grad­u­ated-re­sponse-to-piracy/

#15yrsago Why fair use does­n’t work un­less you’ve got a huge war-chest for pay­ing lawyers https://​waxy.org/​2011/​06/​kind_of_screwed/

#15yrsago Model net neu­tral­ity rule for mu­nic­i­pal­i­ties https://​web.archive.org/​web/​20110626114610/​http://​en­vi­sion­seat­tle.org/​2011/​06/​model-net-neu­tral­ity-or­di­nance-for-seat­tle.html

#15yrsago Campus hookups: col­lege sex is­n’t new, but hookups are dif­fer­ent https://​the­so­ci­ety­pages.org/​socim­ages/​2011/​06/​21/​the-promise-and-per­ils-of-hook-up-cul­ture/

#15yrsago A Brief History of the Corporation: un­der­stand­ing what an at­ten­tion econ­omy is and where it comes from https://​rib­bon­farm.com/​2011/​06/​08/​a-brief-his­tory-of-the-cor­po­ra­tion-1600-to-2100/

#15yrsago Eliza: what makes you think I’m a psy­chother­a­peu­tic chat­bot? https://​www.fil­fre.net/​2011/​06/​eliza-part-1/

#10yrsago Broken Windows polic­ing is non­sense https://​www.nyc.gov/​as­sets/​oignypd/​down­loads/​pdf/​Qual­ity-of-Life-Re­port-2010 – 2015.pdf

#10yrsago How it feels to be un­der DDoS at­tack https://​www.or­eilly.com/​radar/​ddos-emo­tions/

#10yrsago 2016: the first pres­i­den­tial elec­tion in 50 years with­out Voting Rights Act pro­tec­tions https://​www.rolling­stone.com/​pol­i­tics/​pol­i­tics-news/​wel­come-to-the-first-pres­i­den­tial-elec­tion-since-vot­ing-rights-act-gut­ted-179737/​3/

#10yrsago Google is re­struc­tur­ing to put ma­chine learn­ing at the core of all it does https://​web.archive.org/​web/​20180530051703/​https://​www.wired.com/​2016/​06/​how-google-is-re­mak­ing-it­self-as-a-ma­chine-learn­ing-first-com­pany/

#10yrsago Misconfigured data­base ex­poses sen­si­tive data for 154 mil­lion US vot­ers https://​dai­ly­dot.com/​pol­i­tics/​154-mil­lion-voter-files-ex­posed-l2

#10yrsago To un­der­stand the Trump cam­paign, study real-es­tate de­vel­oper hus­tle https://​web.archive.org/​web/​20161028030522/​https://​storify.com/​KC_EDM/​trump-is-run­ning-his-cam­paign-like-a-real-es­tate-d

#10yrsago Writing the Other: in­tensely prac­ti­cal ad­vice for rep­re­sent­ing other cul­tures in fic­tion https://​memex.craphound.com/​2016/​06/​23/​writ­ing-the-other-in­tensely-prac­ti­cal-ad­vice-for-rep­re­sent­ing-other-cul­tures-in-fic­tion/

#1yrago The case for a Canadian wealth tax https://​plu­ral­is­tic.net/​2025/​06/​23/​bil­lion­aires-eh/#​galen-we­ston-is-a-rat

Upcoming ap­pear­ances (permalink)

Toronto: The Sovereignty Debate (IAB Canada’s State of the Nation), Jun 23 https://​iab­canada.com/​state-of-the-na­tion-2026

Toronto: The Reverse Centaur’s Guide to Life After AI (Osler Records/Type Books), Jun 23 https://​www.eventbrite.com/​e/​cory-doc­torow-book-launch-and-talk-tick­ets-1991501299998

Toronto: The Reverse Centaur’s Guide to Life After AI (Osler Records/Type Books), Jun 23 https://​www.eventbrite.com/​e/​cory-doc­torow-book-launch-and-talk-tick­ets-1991501299998

NYC: The Reverse Centaur’s Guide to Life After AI with Jonathan Coulton (The Strand), Jun 24 https://​www.strand­books.com/​cory-doc­torow-the-re­verse-cen­taur-s-guide-to-life-af­ter-ai.html

NYC: The Reverse Centaur’s Guide to Life After AI with Jonathan Coulton (The Strand), Jun 24 https://​www.strand­books.com/​cory-doc­torow-the-re­verse-cen­taur-s-guide-to-life-af­ter-ai.html

Philadelphia: The Reverse Centaur’s Guide to Life After AI with David Williams (Fitler Club/Philadelphia Citizen), Jun 25 https://​www.eventbrite.com/​e/​cory-doc­torow-book-event-tick­ets-1990110326559

Philadelphia: The Reverse Centaur’s Guide to Life After AI with David Williams (Fitler Club/Philadelphia Citizen), Jun 25 https://​www.eventbrite.com/​e/​cory-doc­torow-book-event-tick­ets-1990110326559

Chicago: The Reverse Centaur’s Guide to Life After AI with Rick Perlstein (Exile in Bookville), Jun 26 https://​ex­ilein­bookville.com/​events/​50628

Chicago: The Reverse Centaur’s Guide to Life After AI with Rick Perlstein (Exile in Bookville), Jun 26 https://​ex­ilein­bookville.com/​events/​50628

London: Idler Festival, Jul 11 https://​www.idler.co.uk/​fes­ti­val/

London: Idler Festival, Jul 11 https://​www.idler.co.uk/​fes­ti­val/

Edinburgh International Book Festival with Jimmy Wales, Aug 17 https://​www.ed­book­fest.co.uk/​events/​the-front-list-cory-doc­torow-and-jimmy-wales

Edinburgh International Book Festival with Jimmy Wales, Aug 17 https://​www.ed­book­fest.co.uk/​events/​the-front-list-cory-doc­torow-and-jimmy-wales

Sydney: The Festival of Dangerous Ideas, Aug 23 – 24 https://​fes­ti­val­of­dan­ger­ousideas.com/​cory-doc­torow/

Sydney: The Festival of Dangerous Ideas, Aug 23 – 24 https://​fes­ti­val­of­dan­ger­ousideas.com/​cory-doc­torow/

Melbourne: Enshittification at the Wheeler Centre, Aug 25 https://​www.wheel­er­centre.com/​events-tick­ets/​sea­son-2026/​cory-doc­torow-en­shit­ti­fi­ca­tion

Melbourne: Enshittification at the Wheeler Centre, Aug 25 https://​www.wheel­er­centre.com/​events-tick­ets/​sea­son-2026/​cory-doc­torow-en­shit­ti­fi­ca­tion

Brighton: The Reverse Centaur’s Guide to Life After AI with Carole Cadwalladr (Brighton Dome), Sep 8 https://​brighton­dome.org/​whats-on/​LSC-cory-doc­torow-the-re­verse-cen­taurs-guide-to-life-af­ter-ai/

Brighton: The Reverse Centaur’s Guide to Life After AI with Carole Cadwalladr (Brighton Dome), Sep 8 https://​brighton­dome.org/​whats-on/​LSC-cory-doc­torow-the-re­verse-cen­taurs-guide-to-life-af­ter-ai/

London: The Reverse Centaur’s Guide to Life After AI with Riley Quinn (Foyle’s Picadilly), Sep 9 https://​www.foyles.co.uk/​events/​en­shit­ti­fi­ca­tion-cory-doc­torow-ri­ley-quinn

London: The Reverse Centaur’s Guide to Life After AI with Riley Quinn (Foyle’s Picadilly), Sep 9 https://​www.foyles.co.uk/​events/​en­shit­ti­fi­ca­tion-cory-doc­torow-ri­ley-quinn

South Bend: An Evening With Cory Doctorow (Notre Dame), Oct 6 https://​franco.nd.edu/​events/​2026/​10/​06/​an-evening-with-cory-doc­torow/

South Bend: An Evening With Cory Doctorow (Notre Dame), Oct 6 https://​franco.nd.edu/​events/​2026/​10/​06/​an-evening-with-cory-doc­torow/

Recent ap­pear­ances (permalink)

How to Mess with Big Tech Oligarchs (Fighting Fascism) https://​pod­casts.ap­ple.com/​us/​pod­cast/​how-to-mess-with-big-tech-oli­garchs-w-cory-doc­torow/​id1888647397?i=1000773711479

Reverse Centaur with Angie Coiro (Kepler’s Books) https://​www.youtube.com/​live/​cWN6XBa73xA

Reverse Centaur with Angie Coiro (Kepler’s Books) https://​www.youtube.com/​live/​cWN6XBa73xA

How to Think About AI Before It’s Too Late (Galaxy Brain) https://​www.youtube.com/​watch?v=SPQN­PJ0­CEPo

How to Think About AI Before It’s Too Late (Galaxy Brain) https://​www.youtube.com/​watch?v=SPQN­PJ0­CEPo

The fu­ture of world gov­er­nance, with Kim Stanley Robinson (UN Independent Expert on International Order) https://​www.youtube.com/​live/​wJvB­vY­daAMY

The fu­ture of world gov­er­nance, with Kim Stanley Robinson (UN Independent Expert on International Order) https://​www.youtube.com/​live/​wJvB­vY­daAMY

How to Think About Artificial Intelligence (KUER) https://​ra­diow­est.kuer.org/​show/​ra­diow­est/​2026 – 06-16/​cory-doc­torow-on-how-to-think-about-ar­ti­fi­cial-in­tel­li­gence

How to Think About Artificial Intelligence (KUER) https://​ra­diow­est.kuer.org/​show/​ra­diow­est/​2026 – 06-16/​cory-doc­torow-on-how-to-think-about-ar­ti­fi­cial-in­tel­li­gence

Latest books (permalink)

Canny Valley”: A lim­ited edi­tion col­lec­tion of the col­lages I cre­ate for Pluralistic, self-pub­lished, September 2025 https://​plu­ral­is­tic.net/​2025/​09/​04/​il­lus­tri­ous/#​chair­man-bruce

GitHub - future-file-format/F3: [SIGMOD 2026] F3: The Open-Source Data File Format for the Future

github.com

F3 is a data file for­mat that is de­signed with ef­fi­ciency, in­ter­op­er­abil­ity, and ex­ten­si­bil­ity in mind. It pro­vides a data or­ga­ni­za­tion that rec­ti­fies the lay­out short­com­ings of the last-gen­er­a­tion for­mats like Parquet, while at the same time main­tain­ing good in­ter­op­er­abil­ity and ex­ten­si­bil­ity (a.k.a fu­ture-proof) via em­bed­ded Wasm de­coders.

⚠️ This pro­ject is a re­search pro­to­type ver­i­fy­ing the ideas in the pa­per. You should not use it in pro­duc­tion.

⚠️ This pro­ject is a re­search pro­to­type ver­i­fy­ing the ideas in the pa­per. You should not use it in pro­duc­tion.

Build in­struc­tions

We only tested on an Intel ma­chine with Debian 12.

git sub­mod­ule up­date –init –recursive ./scripts/setup_debian.sh # build the PoC pack­age of F3 cargo build -p fff-poc # run unit test for F3 cargo test -p fff-poc

Important di­rec­to­ries

for­mat: FlatBuffer de­f­i­n­i­tion of the file for­mat.

fff-poc: The main code of the F3 for­mat. It ref­er­ences other sub­dirs like fff-core, fff-en­cod­ing, fff-for­mat, and fff-ude-wasm.

fff-bench: Benchmarks and ex­per­i­ments ap­peared in the pa­per. Specifically, fff-bench/​ex­am­ples should con­tain most ex­per­i­ments, both mi­cro and e2e.

fff-ude*: ude stand for User-Defined-Encoding and code in those di­rec­to­ries re­lates to the Wasm de­cod­ing im­ple­men­ta­tion.

scripts and ex­p_scripts: scripts re­lated to run the ex­per­i­ments.

Reproduction steps for the ex­per­i­ment re­sults in the pa­per

Please re­fer to doc/​pa­per_re­pro­duc­tion.md for the de­tailed steps.

License

This pro­ject is li­censed un­der the MIT License. See LICENSE for de­tails.

Citation

If you find this pro­ject use­ful, please con­sider cit­ing:

@article{zeng2025f3, au­thor = {Zeng, Xinyu and Meng, Ruijun and Prammer, Martin and McKinney, Wes and Patel, Jignesh M. and Pavlo, Andrew and Zhang, Huanchen}, ti­tle = {F3: The Open-Source Data File Format for the Future}, year = {2025}, is­sue_­date = {September 2025}, pub­lisher = {Association for Computing Machinery}, ad­dress = {New York, NY, USA}, vol­ume = {3}, num­ber = {4}, url = {https://​doi.org/​10.1145/​3749163}, doi = {10.1145/3749163}, ab­stract = {Columnar stor­age for­mats are the foun­da­tion for mod­ern data an­a­lyt­ics sys­tems. The pro­lif­er­a­tion of open-source file for­mats (i.e., Parquet, ORC) al­lows seam­less data shar­ing across dis­parate plat­forms. However, these for­mats were cre­ated over a decade ago for hard­ware and work­load en­vi­ron­ments that are much dif­fer­ent from to­day. Although these for­mats have in­cor­po­rated some up­dates to their spec­i­fi­ca­tion to adapt to these changes, not all de­ploy­ments sup­port those mod­i­fi­ca­tions, and too of­ten sys­tems can­not over­come the for­mats’ de­fi­cien­cies and lim­i­ta­tions with­out a rewrite.In this pa­per, we pre­sent the Future-proof File Format (F3) pro­ject. It is a next-gen­er­a­tion open-source file for­mat with in­ter­op­er­abil­ity, ex­ten­si­bil­ity, and ef­fi­ciency as its core de­sign prin­ci­ples. F3 ob­vi­ates the need to cre­ate a new for­mat every time a shift oc­curs in data pro­cess­ing and com­put­ing by pro­vid­ing a data or­ga­ni­za­tion struc­ture and a gen­eral-pur­pose API to al­low de­vel­op­ers to add new en­cod­ing schemes eas­ily. Each self-de­scrib­ing F3 file in­cludes both the data and meta-data, as well as WebAssembly (Wasm) bi­na­ries to de­code the data. Embedding the de­coders in each file re­quires min­i­mal stor­age (kilobytes) and en­sures com­pat­i­bil­ity on any plat­form in case na­tive de­coders are un­avail­able. To eval­u­ate F3, we com­pared it against legacy and state-of-the-art open-source file for­mats. Our eval­u­a­tions demon­strate the ef­fi­cacy of F3′s stor­age lay­out and the ben­e­fits of Wasm-driven de­cod­ing.}, jour­nal = {Proc. ACM Manag. Data}, month = sep, ar­ti­cleno = {245}, numpages = {27}, key­words = {columnar stor­age, com­pres­sion, ex­ten­si­bil­ity, file for­mat} }

GitHub - baidu/Unlimited-OCR: Unlimited OCR Works: Welcome the Era of One-shot Long-horizon Parsing.

github.com

Welcome the Era of One-shot Long-horizon Parsing.

Release

[2026/06/23] 📄 Our pa­per is now avail­able on arXiv.

[2026/06/23] 🤝 Thanks to the ModelScope com­mu­nity for their sup­port. Our model is now avail­able at ModelScope.

[2026/06/22] 🚀 We pre­sent Unlimited-OCR, aim­ing to push Deepseek-OCR one step fur­ther.

Inference

Transformers

Inference us­ing Huggingface trans­form­ers on NVIDIA GPUs. Requirements tested on python 3.12.3 + CUDA12.9:

torch==2.10.0 torchvi­sion==0.25.0 trans­form­ers==4.57.1 Pillow==12.1.1 mat­plotlib==3.10.8 einops==0.8.2 ad­dict==2.4.0 easy­dict==1.13 pymupdf==1.27.2.2 psu­til==7.2.2

im­port os im­port torch from trans­form­ers im­port AutoModel, AutoTokenizer

mod­el_­name = baidu/Unlimited-OCR’

to­k­enizer = AutoTokenizer.from_pretrained(model_name, trust_re­mote_­code=True) model = AutoModel.from_pretrained( mod­el_­name, trust_re­mote_­code=True, use_safeten­sors=True, torch_d­type=torch.bfloat16, ) model = model.eval().cuda()

# ── Single im­age sup­ports two con­figs: gun­dam or base ── # gun­dam: base_­size=1024, im­age_­size=640, crop_­mode=True # base: base_­size=1024, im­age_­size=1024, crop_­mode=False model.in­fer( to­k­enizer, prompt=‘<im­age>doc­u­ment pars­ing.’, im­age_­file=‘your_im­age.jpg’, out­put_­path=‘your/​out­put/​dir’, base_­size=1024, im­age_­size=640, crop_­mode=True, max_length=32768, no_re­peat_n­gram_­size=35, ngram_win­dow=128, save_re­sults=True, )

# ── Multi page / PDF only uses base (image_size=1024) ── model.in­fer­_­multi( to­k­enizer, prompt=‘<im­age>Multi page pars­ing.’, im­age_­files=[‘page1.png’, page2.png’, page3.png’], out­put_­path=‘your/​out­put/​dir’, im­age_­size=1024, max_length=32768, no_re­peat_n­gram_­size=35, ngram_win­dow=1024, save_re­sults=True, )

# ── PDF (convert pages to im­ages, then multi-page pars­ing) ── im­port temp­file, fitz # PyMuPDF

def pdf_­to_im­ages(pdf_­path, dpi=300): doc = fitz.open(pdf_­path) tm­p_dir = temp­file.mkdtemp(pre­fix=‘pdf_ocr_’) mat = fitz.Ma­trix(dpi / 72, dpi / 72) paths = [] for i, page in enu­mer­ate(doc): out = os.path.join(tm­p_dir, f’­page_{i+1:04d}.png’) page.get_pixmap(ma­trix=mat).save(out) paths.ap­pend(out) doc.close() re­turn paths

model.in­fer­_­multi( to­k­enizer, prompt=‘<im­age>Multi page pars­ing.’, im­age_­files=pdf_­to_im­ages(‘your_­doc.pdf’, dpi=300), out­put_­path=‘your/​out­put/​dir’, im­age_­size=1024, max_length=32768, no_re­peat_n­gram_­size=35, ngram_win­dow=1024, save_re­sults=True, )

SGLang

Set up the en­vi­ron­ment (uv-managed vir­tualenv). Install the lo­cal SGLang wheel first, then pin ker­nels==0.9.0 and in­stall PyMuPDF for PDF-to-image con­ver­sion:

uv venv –python 3.12 source .venv/bin/activate

uv pip in­stall wheel/​sglang-0.0.0.de­v11416+g92e8b­b79e-py3-none-any.whl uv pip in­stall ker­nels==0.11.7 uv pip in­stall pymupdf==1.27.2.2

Start the SGLang server:

python -m sglang.launch_server \ –model baidu/​Un­lim­ited-OCR \ –served-model-name Unlimited-OCR \ –attention-backend fa3 \ –page-size 1 \ –mem-fraction-static 0.8 \ –context-length 32768 \ –enable-custom-logit-processor \ –disable-overlap-schedule \ –skip-server-warmup \ –host 0.0.0.0 \ –port 10000

Send stream­ing re­quests to the OpenAI-compatible API:

im­port base64 im­port json im­port os im­port temp­file

im­port fitz im­port re­quests from sglang.srt.sam­pling.cus­tom_log­it_proces­sor im­port DeepseekOCRNoRepeatNGramLogitProcessor

serv­er_url = http://​127.0.0.1:10000

ses­sion = re­quests.Ses­sion() ses­sion.trust_env = False

def pdf_­to_im­ages(pdf_­path, dpi=300): doc = fitz.open(pdf_­path) tm­p_dir = temp­file.mkdtemp(pre­fix=“pdf_ocr_”) mat = fitz.Ma­trix(dpi / 72, dpi / 72) im­age_­paths = [] for i, page in enu­mer­ate(doc): im­age_­path = os.path.join(tm­p_dir, f”page_{i + 1:04d}.png”) page.get_pixmap(ma­trix=mat).save(im­age_­path) im­age_­paths.ap­pend(im­age_­path) doc.close() re­turn im­age_­paths

def en­code_im­age(im­age_­path): ext = os.path.spli­text(im­age_­path)[1].lower() mime = image/jpeg” if ext in (”.jpg”, .jpeg”) else f”im­age/{​ext.lstrip(‘.’)}” with open(im­age_­path, rb”) as f: data = base64.b64en­code(f.read()).de­code(“utf-8″) re­turn {“type”: image_url”, image_url”: {“url”: f”data:{mime};base64,{data}“}}

def build_­con­tent(prompt, im­age_­paths): re­turn [{“type”: text”, text”: prompt}] + [encode_image(path) for path in im­age_­paths]

def gen­er­ate(prompt, im­age_­paths, im­age_­mode, ngram_win­dow): pay­load = { model”: Unlimited-OCR”, messages”: [{“role”: user”, content”: build_­con­tent(prompt, im­age_­paths)}], temperature”: 0, skip_special_tokens”: False, images_config”: {“image_mode”: im­age_­mode}, custom_logit_processor”: DeepseekOCRNoRepeatNGramLogitProcessor.to_str(), custom_params”: { ngram_size”: 35, window_size”: ngram_win­dow, }, stream”: True, } re­sponse = ses­sion.post( f”{serv­er_url}/​v1/​chat/​com­ple­tions”, head­ers={“Con­tent-Type”: application/json”}, data=json.dumps(pay­load), time­out=1200, stream=True, ) re­sponse.raise_­for_s­ta­tus()

chunks = [] for line in re­sponse.iter_­lines(chunk_­size=1, de­code_u­ni­code=True): if not line or not line.startswith(“data: ): con­tinue data = line[len(“data: ):] if data == [DONE]”: break event = json.loads(data) delta = event[“choices”][0].get(“delta”, {}).get(“content”, ”) if delta: print(delta, end=“”, flush=True) chunks.ap­pend(delta) print() re­turn ”.join(chunks)

# Single im­age sup­ports two con­figs: gun­dam or base. Example be­low uses gun­dam. gen­er­ate(“doc­u­ment pars­ing.”, [“your_image.jpg”], im­age_­mode=“gun­dam”, ngram_win­dow=128)

# Multi im­age (base only) gen­er­ate(“Multi page pars­ing.”, [“page1.png”, page2.png”], im­age_­mode=“base”, ngram_win­dow=1024)

# PDF (base only) gen­er­ate(“Multi page pars­ing.”, pdf_­to_im­ages(“your_­doc.pdf”, dpi=300), im­age_­mode=“base”, ngram_win­dow=1024)

For batch in­fer­ence, in­fer.py starts the SGLang server au­to­mat­i­cally and sends con­cur­rent re­quests for an im­age di­rec­tory or PDF:

# Image di­rec­tory python in­fer.py \ –image_dir ./examples/images \ –output_dir ./outputs \ –concurrency 8 \ –image_mode gun­dam

# PDF pages python in­fer.py \ –pdf ./examples/document.pdf \ –output_dir ./outputs \ –concurrency 8 \ –image_mode gun­dam

Useful op­tions:

–model_dir baidu/​Un­lim­ited-OCR # Local path or Hugging Face model ID –gpu 0 # CUDA_VISIBLE_DEVICES value –server_log ./log/sglang_server.log

Visualization

Acknowledgement

We would like to thank Deepseek-OCR, Deepseek-OCR-2, PaddleOCR for their valu­able mod­els and ideas.

Citation

@misc{yin2026unlimitedocrworks, ti­tle={Un­lim­ited OCR Works}, au­thor={Youyang Yin and Huanhuan Liu and YY and Qunyi Xie and Chaorun Liu and Shiqi Yang and Shaohua Wang and Zhanlong Liu and Hao Zou and Jinyue Chen and Shu Wei and Jingjing Wu and Mingxin Huang and Zhen Wu and Guibin Wang and Tengyu Du and Lei Jia}, year={2026}, eprint={2606.23050}, archivePre­fix={arXiv}, pri­ma­ryClass={cs.CV}, url={https://​arxiv.org/​abs/​2606.23050}, }

Mistral OCR 4 : SOTA OCR for Document Intelligence

mistral.ai

Today, we’re re­leas­ing Mistral OCR 4, fea­tur­ing bound­ing boxes, block clas­si­fi­ca­tion, and in­line con­fi­dence scores along­side ex­tracted text. The model sup­ports 170 lan­guages across 10 lan­guage groups, runs in a sin­gle con­tainer for fully self-hosted de­ploy­ments, and serves as an in­ges­tion com­po­nent for en­ter­prise search, RAG, and do­main-spe­cific re­trieval pipelines. OCR 4 is a small, fo­cused model, and this post cov­ers what’s new, how it per­forms on pub­lic and in­ter­nal bench­marks, the known lim­i­ta­tions of those bench­marks, and guid­ance on when to use the model API ver­sus Document AI.

Highlights

Breakthrough per­for­mance. Independent an­no­ta­tors pre­fer OCR 4 over every lead­ing OCR and doc­u­ment-AI sys­tem tested, with win rates av­er­ag­ing 72%, along­side the top over­all score on OlmOCRBench (85.20). See Benchmarks be­low for method­ol­ogy and known scor­ing lim­i­ta­tions.

Breakthrough per­for­mance. Independent an­no­ta­tors pre­fer OCR 4 over every lead­ing OCR and doc­u­ment-AI sys­tem tested, with win rates av­er­ag­ing 72%, along­side the top over­all score on OlmOCRBench (85.20). See Benchmarks be­low for method­ol­ogy and known scor­ing lim­i­ta­tions.

Segmentation, not just text. Alongside the ex­tracted text, OCR 4 re­turns bound­ing boxes, typed-block clas­si­fi­ca­tion (titles, ta­bles, equa­tions, sig­na­tures, and more), and in­line con­fi­dence scores. Bounding boxes, our most-re­quested ca­pa­bil­ity, lo­cal­ize text for in-con­text high­light­ing and re­li­able data pipelines. At the same time, block types and con­fi­dence scores drive source-grounded ci­ta­tions, redac­tions, and hu­man-in-the-loop ver­i­fi­ca­tion.

Segmentation, not just text. Alongside the ex­tracted text, OCR 4 re­turns bound­ing boxes, typed-block clas­si­fi­ca­tion (titles, ta­bles, equa­tions, sig­na­tures, and more), and in­line con­fi­dence scores. Bounding boxes, our most-re­quested ca­pa­bil­ity, lo­cal­ize text for in-con­text high­light­ing and re­li­able data pipelines. At the same time, block types and con­fi­dence scores drive source-grounded ci­ta­tions, redac­tions, and hu­man-in-the-loop ver­i­fi­ca­tion.

Integrated with Mistral Search Toolkit (public pre­view). OCR 4 is an in­ges­tion com­po­nent of Search Toolkit, Mistral’s open-source, com­pos­able search frame­work, an­nounced at the AI Now Summit. Its struc­tured out­put sup­plies ci­ta­tion-ready in­puts to the toolk­it’s in­ges­tion, re­trieval, and eval­u­a­tion work­flow for RAG and en­ter­prise search.

Integrated with Mistral Search Toolkit (public pre­view). OCR 4 is an in­ges­tion com­po­nent of Search Toolkit, Mistral’s open-source, com­pos­able search frame­work, an­nounced at the AI Now Summit. Its struc­tured out­put sup­plies ci­ta­tion-ready in­puts to the toolk­it’s in­ges­tion, re­trieval, and eval­u­a­tion work­flow for RAG and en­ter­prise search.

Multilingual cov­er­age. Support for 170 lan­guages across 10 lan­guage groups, with mea­sur­able gains on spe­cial­ized and low-re­source lan­guages where sev­eral com­pet­ing sys­tems de­grade.

Multilingual cov­er­age. Support for 170 lan­guages across 10 lan­guage groups, with mea­sur­able gains on spe­cial­ized and low-re­source lan­guages where sev­eral com­pet­ing sys­tems de­grade.

Run on your own in­fra­struc­ture. OCR 4 is com­pact enough to de­ploy on a sin­gle con­tainer, keep­ing doc­u­ment data in your en­vi­ron­ment for res­i­dency, sov­er­eignty, and com­pli­ance, while sup­port­ing cost-ef­fi­cient, high-through­put batch pro­cess­ing. Self-managed de­ploy­ment is avail­able to en­ter­prise cus­tomers.

Run on your own in­fra­struc­ture. OCR 4 is com­pact enough to de­ploy on a sin­gle con­tainer, keep­ing doc­u­ment data in your en­vi­ron­ment for res­i­dency, sov­er­eignty, and com­pli­ance, while sup­port­ing cost-ef­fi­cient, high-through­put batch pro­cess­ing. Self-managed de­ploy­ment is avail­able to en­ter­prise cus­tomers.

Overview

Mistral OCR 4 ex­tracts and struc­tures con­tent from a wide range of doc­u­ments. Where pre­vi­ous gen­er­a­tions fo­cused on con­vert­ing a page into clean text and ta­bles, OCR 4 re­turns a struc­tured rep­re­sen­ta­tion of the doc­u­ment. Each block is lo­cal­ized with a bound­ing box, clas­si­fied by type, and in­line con­fi­dence scores are gen­er­ated per-page and per-word. Downstream sys­tems, there­fore, have ac­cess not only to what the doc­u­ment says but also to where each el­e­ment sits, what role it plays, and how con­fi­dent the model is in each re­gion.

This struc­ture sup­ports sev­eral down­stream work­loads:

Semantic chunk­ing for RAG: clean, clas­si­fied blocks be­come bet­ter re­trieval units.

Semantic chunk­ing for RAG: clean, clas­si­fied blocks be­come bet­ter re­trieval units.

Structural prim­i­tives for agents: agents move from read­ing doc­u­ments to act­ing on them (form fill­ing, in­voice pro­cess­ing, com­pli­ance checks).

Structural prim­i­tives for agents: agents move from read­ing doc­u­ments to act­ing on them (form fill­ing, in­voice pro­cess­ing, com­pli­ance checks).

Structured con­tent for con­nec­tors: con­sis­tent, typed out­put for in­ges­tion and in­dex­ing pipelines.

Structured con­tent for con­nec­tors: con­sis­tent, typed out­put for in­ges­tion and in­dex­ing pipelines.

OCR 4 ac­cepts com­mon en­ter­prise for­mats, in­clud­ing PDF, DOC, PPT, and OpenDocument, and sup­ports 170 lan­guages across 10 lan­guage groups, in­clud­ing spe­cial­ized and low-re­source lan­guages that many sys­tems han­dle poorly. As a com­pact model de­ploy­able in a sin­gle con­tainer, it is suited to both cost-sen­si­tive and high-vol­ume de­ploy­ments. It can run fully self-hosted, al­low­ing or­ga­ni­za­tions with data-sov­er­eignty re­quire­ments to keep doc­u­ment data within their own in­fra­struc­ture.

Developers in­te­grate the model via API, and teams can use Document AI in Mistral Studio for an ap­pli­ca­tion-level, no-code path to the same en­gine. Mistral OCR 4 through the API is priced at $4 per 1,000 pages, with a 50% Batch-API dis­count, re­duc­ing the cost to $2 per 1,000 pages. Document AI is priced at $5 per 1,000 pages.

Benchmarks

We bench­marked Mistral OCR 4 against the lead­ing agen­tic doc­u­ment parsers across a chart and fig­ure dense fi­nan­cial QA dataset and reached equiv­a­lent ac­cu­racy at roughly 8x lower cost and 17x lower la­tency. For pro­duc­tion use cases at scale, that delta com­pounds fast.” - Aidan Donohue, AI Engineer, Rogo

To eval­u­ate OCR 4, we com­pared it against lead­ing AI-native OCR mod­els, fron­tier gen­eral-pur­pose mod­els, en­ter­prise doc­u­ment ser­vices, and our own Mistral OCR 3.

Human Preference Evaluations

Automated bench­marks carry the scor­ing ar­ti­facts de­scribed above, so we com­ple­mented them with a head-to-head hu­man eval­u­a­tion on doc­u­ments cho­sen to re­flect real us­age. We as­sem­bled 600+ doc­u­ments across 12+ lan­guages, sourced from third-party ven­dors to rep­re­sent real in­dus­try use cases, and asked in­de­pen­dent an­no­ta­tors to blindly rank each com­peti­tor’s out­put against OCR 4′s, doc­u­ment by doc­u­ment.

Annotators pre­ferred OCR 4 in the ma­jor­ity of doc­u­ments across all sys­tems tested. Because these are hu­man judg­ments on re­al­is­tic doc­u­ments rather than string com­par­isons against fixed ref­er­ences, they side­step much of the an­no­ta­tion and for­mat­ting noise that af­fects au­to­mated scores.

Overall Performance

Mistral OCR is roughly 4x faster per page than our in­cum­bent provider, an im­pres­sive re­sult for the high-vol­ume dock­et­ing work­flows where speed is crit­i­cal to man­ag­ing our cus­tomers’ IP time­lines.”  - Ivan Mihailov, AI en­gi­neer, Anaqua

In ad­di­tion to plac­ing first in our hu­man pref­er­ences, OCR 4 achieves the top over­all score amongst the mod­els we tested on the pub­lic OlmOCRBench (85.20) and leads our in­ter­nal Crawl Multilingual eval­u­a­tion (.98), ahead of both AI-native and en­ter­prise so­lu­tions.

On OmniDocBench, OCR 4 achieves a score of 93.07. We re­port this fig­ure with a caveat: both OlmOCRBench and OmniDocBench have known lim­i­ta­tions in how they score cer­tain out­puts, and a sin­gle ag­gre­gate num­ber can both un­der­state and over­state real-world per­for­mance.

When we au­dited the mis­matches be­hind our scores, most were not model er­rors but ar­ti­facts of how the bench­marks com­pare out­put. The re­cur­ring cat­e­gories:

Ground-truth er­rors. Some ref­er­ence an­no­ta­tions are them­selves in­cor­rect: miss­ing or ex­tra text, tran­scrip­tions of redacted re­gions, or ty­pos (for ex­am­ple, a cited au­thor’s name mis­spelled in the ref­er­ence but read cor­rectly by the model from the page). The out­put matches the source doc­u­ment, yet it is still marked wrong.

Ground-truth er­rors. Some ref­er­ence an­no­ta­tions are them­selves in­cor­rect: miss­ing or ex­tra text, tran­scrip­tions of redacted re­gions, or ty­pos (for ex­am­ple, a cited au­thor’s name mis­spelled in the ref­er­ence but read cor­rectly by the model from the page). The out­put matches the source doc­u­ment, yet it is still marked wrong.

Equivalent math no­ta­tion. Different LaTeX that ren­ders iden­ti­cally is counted as a mis­match, The ren­dered equa­tion is cor­rect; the string com­par­i­son is not.

Equivalent math no­ta­tion. Different LaTeX that ren­ders iden­ti­cally is counted as a mis­match, The ren­dered equa­tion is cor­rect; the string com­par­i­son is not.

Equation seg­men­ta­tion. Whether an ex­pres­sion is emit­ted as a sin­gle equa­tion or split into sev­eral in­line frag­ments af­fects the match, even when the ren­dered con­tent is iden­ti­cal, be­cause the matcher can­not align the pieces.

Equation seg­men­ta­tion. Whether an ex­pres­sion is emit­ted as a sin­gle equa­tion or split into sev­eral in­line frag­ments af­fects the match, even when the ren­dered con­tent is iden­ti­cal, be­cause the matcher can­not align the pieces.

Multi-column read­ing or­der. Words split across a col­umn bound­ary (for ex­am­ple, certifi-cates”) and col­umn-or­der­ing as­sump­tions cause cor­rect ex­trac­tions to be scored as read­ing-or­der fail­ures.

Multi-column read­ing or­der. Words split across a col­umn bound­ary (for ex­am­ple, certifi-cates”) and col­umn-or­der­ing as­sump­tions cause cor­rect ex­trac­tions to be scored as read­ing-or­der fail­ures.

Block-type at­tri­bu­tion. The bench­mark does not ex­pect head­ers/​foot­ers in the out­put. To re­solve this we strip head­ers foot­ers from our out­put be­fore scor­ing. But the test then checks for a string that also hap­pens to be the ti­tle of the page which should ac­tu­ally be pre­sent and flags it in­cor­rectly.

Block-type at­tri­bu­tion. The bench­mark does not ex­pect head­ers/​foot­ers in the out­put. To re­solve this we strip head­ers foot­ers from our out­put be­fore scor­ing. But the test then checks for a string that also hap­pens to be the ti­tle of the page which should ac­tu­ally be pre­sent and flags it in­cor­rectly.

These ar­ti­facts con­cen­trate in math­e­mat­i­cal, sci­en­tific, and multi-col­umn doc­u­ments, and they more of­ten pe­nal­ize cor­rect out­put than re­ward in­cor­rect out­put. We there­fore treat the ag­gre­gate score as di­rec­tional rather than de­fin­i­tive.

These bench­marks are di­rec­tional. All com­peti­tor scores re­flect in­ter­nal re­pro­duc­tions. We rec­om­mend eval­u­at­ing on your own doc­u­ments.

Performance Details

Crawl Multilingual break­down. On our in­ter­nal mul­ti­lin­gual eval­u­a­tion, OCR 4 leads across all eight lan­guage groups — English, Western Europe, Eastern Europe, Middle Eastern, Chinese, East Asian, Southeast Asian, and spe­cial­ized lan­guages (Hindi, Japanese, Georgian, Bengali, Armenian, Hebrew, Greek, Gujarati, Tamil, Malayalam, Kannada, Telugu). The gap is widest for spe­cial­ized and low-re­source lan­guages, where many com­pet­ing sys­tems de­grade sharply, while OCR 4 main­tains high ac­cu­racy.

Recommended use cases

OCR 4 sup­ports both high-vol­ume pipelines and in­ter­ac­tive doc­u­ment work­flows, in­clud­ing:

Document pars­ing and ex­trac­tion: com­plex, mul­ti­lin­gual doc­u­ments.

Document pars­ing and ex­trac­tion: com­plex, mul­ti­lin­gual doc­u­ments.

Retrieval-Augmented Generation (RAG): struc­tured, clas­si­fied, ci­ta­tion-ready con­tent for se­man­tic chunk­ing and source-grounded an­swers. With Search Toolkit, OCR 4 out­put can be fed di­rectly into re­trieval pipelines.

Retrieval-Augmented Generation (RAG): struc­tured, clas­si­fied, ci­ta­tion-ready con­tent for se­man­tic chunk­ing and source-grounded an­swers. With Search Toolkit, OCR 4 out­put can be fed di­rectly into re­trieval pipelines.

Agentic work­flows: pro­vid­ing agents with the struc­tural prim­i­tives to com­plete tasks such as form fill­ing, in­voice pro­cess­ing, and com­pli­ance checks, es­pe­cially in le­gal, fi­nan­cial ser­vices, and health­care.

Agentic work­flows: pro­vid­ing agents with the struc­tural prim­i­tives to com­plete tasks such as form fill­ing, in­voice pro­cess­ing, and com­pli­ance checks, es­pe­cially in le­gal, fi­nan­cial ser­vices, and health­care.

Structured data pipelines us­ing con­fi­dence scores to en­able ef­fi­cient use of hu­man ver­i­fiers: form/​in­voice ex­trac­tion, redac­tions, and com­pli­ance-dri­ven processes.

Structured data pipelines us­ing con­fi­dence scores to en­able ef­fi­cient use of hu­man ver­i­fiers: form/​in­voice ex­trac­tion, redac­tions, and com­pli­ance-dri­ven processes.

Enterprise search and knowl­edge bases: OCR as a data-source com­po­nent for cus­tom in­ges­tion and en­tity ex­trac­tion.

Enterprise search and knowl­edge bases: OCR as a data-source com­po­nent for cus­tom in­ges­tion and en­tity ex­trac­tion.

Early users are ap­ply­ing OCR 4 to turn in­voices into struc­tured fields, dig­i­tize com­pany archives, ex­tract clean text from tech­ni­cal and sci­en­tific re­ports, and power en­ter­prise search.

A note on out-of-scope use. OCR 4 is a doc­u­ment-un­der­stand­ing model, not a de­ci­sion-maker. It is not in­tended for med­ical di­ag­no­sis, le­gal ad­vice or judg­ment, high-stakes fi­nan­cial de­ci­sions, safety-crit­i­cal sys­tems, real-time/​la­tency-sen­si­tive pro­cess­ing, or non-doc­u­ment in­puts (raw au­dio, video, etc.).

OCR 4 API: Understanding Your Options

Mistral’s OCR 4 is avail­able through a sin­gle API end­point. Every re­quest runs the same un­der­ly­ing OCR model and al­ways re­turns ex­tracted con­tent, bound­ing boxes, block types, con­fi­dence scores, and mark­down-struc­tured text. What varies is how much you layer on top.

Use OCR 4 in pure ex­trac­tion mode when you want to:

Embed fast, ac­cu­rate doc­u­ment ex­trac­tion di­rectly into your ap­pli­ca­tion, agent, or data pipeline.

Embed fast, ac­cu­rate doc­u­ment ex­trac­tion di­rectly into your ap­pli­ca­tion, agent, or data pipeline.

Work di­rectly with the raw re­sponse, bound­ing boxes, block types, and con­fi­dence scores to drive cus­tom down­stream logic.

Work di­rectly with the raw re­sponse, bound­ing boxes, block types, and con­fi­dence scores to drive cus­tom down­stream logic.

Run high-vol­ume or batch in­ges­tion with full con­trol over through­put and cost via the Batch API.

Run high-vol­ume or batch in­ges­tion with full con­trol over through­put and cost via the Batch API.

Self-host for strict data-pri­vacy, sov­er­eignty, or com­pli­ance re­quire­ments.

Self-host for strict data-pri­vacy, sov­er­eignty, or com­pli­ance re­quire­ments.

Activate Document AI ca­pa­bil­i­ties (same end­point, ad­di­tional pa­ra­me­ters) when you want to:

Return struc­tured JSON in a schema you de­fine — pass a JSON schema along­side your doc­u­ment, and the OCR out­put is fed to mis­tral-small-2603 to gen­er­ate con­tent shaped to your spec.

Return struc­tured JSON in a schema you de­fine — pass a JSON schema along­side your doc­u­ment, and the OCR out­put is fed to mis­tral-small-2603 to gen­er­ate con­tent shaped to your spec.

Annotate de­tected im­ages with struc­tured JSON by pass­ing an im­age an­no­ta­tion schema, trig­ger­ing an ad­di­tional vi­sion-lan­guage model call per im­age.

Annotate de­tected im­ages with struc­tured JSON by pass­ing an im­age an­no­ta­tion schema, trig­ger­ing an ad­di­tional vi­sion-lan­guage model call per im­age.

Use a cus­tom prompt along­side a JSON schema to guide how the ex­tracted con­tent of the full doc­u­ment is in­ter­preted or sum­ma­rized.

Use a cus­tom prompt along­side a JSON schema to guide how the ex­tracted con­tent of the full doc­u­ment is in­ter­preted or sum­ma­rized.

Enable busi­ness users, so­lu­tions teams, or pi­lots to pro­duce struc­tured re­sults with­out writ­ing down­stream pars­ing logic.

Enable busi­ness users, so­lu­tions teams, or pi­lots to pro­duce struc­tured re­sults with­out writ­ing down­stream pars­ing logic.

The prac­ti­cal de­ci­sion rule: if you need raw ex­tracted con­tent, use OCR 4 as-is. If you need the out­put re­shaped into a struc­tured for­mat, an­no­tated with do­main-spe­cific fields, or processed with a cus­tom in­struc­tion, add the Document AI pa­ra­me­ters to the same call. You al­ways get the OCR re­sult re­gard­less; Document AI sim­ply adds struc­tured lay­ers on top of it.

Now avail­able

The avail­abil­ity of Mistral Document AI with OCR 4 in Microsoft Foundry marks an im­por­tant mile­stone in our part­ner­ship. Together, we’re en­abling cus­tomers to bring ad­vanced, struc­tured doc­u­ment un­der­stand­ing di­rectly into their AI work­flows, com­bin­ing Mistral’s in­no­va­tion with Microsoft’s en­ter­prise plat­form to de­liver scal­able, trusted so­lu­tions for real-world busi­ness needs.”-Kimmi Grewal, VP, AI Ecosystem Partnerships, Microsoft

Both Mistral OCRv4 and Document AI (powered by OCRv4) are avail­able via API through Mistral Studio, Amazon SageMaker, Microsoft Foundry, and com­ing soon Snowflake Parse Document. For or­ga­ni­za­tions with strin­gent data-pri­vacy re­quire­ments, OCR 4 also of­fers a self-host­ing op­tion so sen­si­tive in­for­ma­tion stays within your own in­fra­struc­ture. To ex­plore self-de­ploy­ment, let us know.

Get started

We of­fer a few ways to get started and learn more quickly.

Try OCR 4. The new Getting Started with OCR 4 Cookbook walks through a first ex­trac­tion, work­ing with bound­ing boxes, and block clas­si­fi­ca­tion.

Try OCR 4. The new Getting Started with OCR 4 Cookbook walks through a first ex­trac­tion, work­ing with bound­ing boxes, and block clas­si­fi­ca­tion.

OCR 4 we­bi­nar. We’ll cover what’s new in OCR 4 with demos and Q&A on July 7th at 6:00 PM CET. Register for the OCR4 in Production we­bi­nar.

OCR 4 we­bi­nar. We’ll cover what’s new in OCR 4 with demos and Q&A on July 7th at 6:00 PM CET. Register for the OCR4 in Production we­bi­nar.

Contact Sales for more in­for­ma­tion.

Contact Sales for more in­for­ma­tion.

OCR 4

Premier

The world’s best doc­u­ment ex­trac­tion and un­der­stand­ing model.

OCR

Multimodal

Text-to-text

reuters.com

www.reuters.com

Please en­able JS and dis­able any ad blocker

Crypto in 2026: Oh, This is the Bad Place

www.stephendiehl.com

Open your favourite Doom News App any morn­ing in 2026 over your morn­ing cof­fee, and the only hon­est phrase that should come out of your mouth is, Oh, this is the Bad Place.” Because the world has gone truly mad. The pres­i­dent of the United States is run­ning a meme­coin out of the White House, and the top two hun­dred and twenty hold­ers were flown to his golf club for a pri­vate din­ner with the seat­ing chart arranged by pur­chase vol­ume. A fed­er­ally li­censed com­mod­ity ex­change is tak­ing re­tail bets on whether the U.S. mil­i­tary will as­sas­si­nate a for­eign head of state, and re­port­ing sug­gests the heav­i­est or­der flow is com­ing from ac­counts sit­ting in­side the kill chain. A shadow dol­lar sys­tem, newly blessed by fed­eral statute, is qui­etly mi­grat­ing the sav­ings of the global poor onto the bal­ance sheets of a hand­ful of opaque pri­vate com­pa­nies. Each one, taken alone, would have been a bleak, dystopian fever dream ripped from the pages of a William Gibson cy­ber­punk novel. Together they now ap­pear as the new nor­mal, and the vo­cab­u­lary we use to do pol­icy analy­sis is go­ing to have to up­date to match the in­ter­est­ing times, in the prover­bial sense, that we now in­habit.

A short note on the ti­tle be­fore we be­gin. In the first sea­son fi­nale of The Good Place, a whim­si­cal and philo­soph­i­cal sit­com about the af­ter­life, the pro­tag­o­nist Eleanor re­al­izes that the metic­u­lously de­signed par­adise she has been liv­ing in is in fact an en­gi­neered tor­ture cham­ber. The Bad Place is the show’s name for hell. The af­ter­life she oc­cu­pies will not let her swear, so her line on the dis­cov­ery comes out in the show’s comedic sub­sti­tu­tions. Holy moth­er­fork­ing shirt­balls,” she says, this is the Bad Place.” The im­plied joke of the show is that hell is not a fire pit. It is a world so re­lent­lessly, hi­lar­i­ously aw­ful in its ab­sur­di­ties that you can­not help laugh­ing, and the laugh­ing is what even­tu­ally clues you in that you are in hell. Like a world full of pre­dic­tion mar­ket con­tracts on whether our gov­ern­ment will ex­tra­ju­di­cially as­sas­si­nate the head of state of an­other coun­try, traded by in­sid­ers sit­ting in­side the kill chain, that is not worth re­port­ing on any­more be­cause it’s barely the cra­zi­est thing this week and it’s only Tuesday. We now live in this par­tic­u­lar form of hell. This is the Bad Place.

But be­fore any of that, let’s go back to first prin­ci­ples. Wind back to your Econ 101 class in the hal­cyon years of un­der­grad­u­ate naivety. You are nine­teen, hun­gover, half-asleep in the back of the lec­ture hall, and the pro­fes­sor at the chalk­board is ex­plain­ing what a mar­ket is. A mar­ket, she says, is a price dis­cov­ery mech­a­nism for goods and ser­vices whose value comes from out­side the mar­ket it­self. The price of wheat re­flects some­thing about the world. The price of a share in a pub­lic com­pany re­flects ex­pec­ta­tions about real cash flows. The price of an in­ter­est rate fu­ture re­flects col­lec­tive views about real mon­e­tary con­di­tions. In every case the mar­ket is a mea­sur­ing in­stru­ment for an un­der­ly­ing re­al­ity, and the par­tic­i­pants take po­si­tions on that re­al­ity. That is what makes mar­kets epis­tem­i­cally valu­able, and that is the prop­erty the crypto in­dus­try has spent fif­teen years ob­scur­ing in our dis­course.

The in­stru­ments that now con­sti­tute the so-called crypto mar­ket lack the prop­erty en­tirely. The price of Bitcoin mea­sures only the price of Bitcoin. The price of a meme coin re­flects only the col­lec­tive be­lief of meme coin hold­ers that they will be able to sell to a greater fool. The price of an Iran-strike con­tract re­flects only the trad­ing ac­tiv­ity of ac­counts with ac­cess to clas­si­fied plan­ning. The price of a TRUMP coin re­flects only the will­ing­ness of ac­cess seek­ers to pay for pres­i­den­tial time. A de­fender will say that gold is no dif­fer­ent, a price that refers only to it­self, and that we do not call gold a fraud; but gold car­ries a floor of in­dus­trial de­mand and a mon­e­tary role thou­sands of years old, and Bitcoin has nei­ther. These are self-ref­er­en­tial games whose prices con­tain no in­for­ma­tion about the world that any­one who lacks priv­i­leged ac­cess could find use­ful. They have nev­er­the­less been given the reg­u­la­tory rail, the in­sti­tu­tional dig­nity, and the le­gal vo­cab­u­lary of mar­kets. The pub­lic’s trust in mar­kets is fi­nite. Every dol­lar lost on a self-ref­er­en­tial game la­beled a mar­ket con­sumes a small piece of that fi­nite trust, and the con­sump­tion over fif­teen years has been con­sid­er­able.

One le­git­i­mate use de­serves ac­knowl­edg­ment be­fore it is set aside. A dis­si­dent un­der a hos­tile regime, a cit­i­zen of a coun­try whose bank­ing sys­tem has been turned into an in­stru­ment of po­lit­i­cal co­er­cion, a saver flee­ing cap­i­tal con­trols aimed at the gov­ern­men­t’s en­e­mies, these are real peo­ple for whom a cen­sor­ship-re­sis­tant pay­ment rail is a gen­uine good, and the strongest case for crypto has al­ways lived here. But this case jus­ti­fies al­most none of what fol­lows. It ar­gues for a nar­row tool avail­able at the mar­gins to peo­ple in ex­trem­ity, not for rout­ing lever­aged spec­u­la­tion and event-con­tract gam­bling to American re­tail through fed­er­ally blessed chan­nels. The in­dus­try in­vokes the dis­si­dent and sells to the fresh­man. This es­say is about the sec­ond trans­ac­tion, and the first does not re­deem it.

The pol­icy cor­re­late of the vo­cab­u­lary theft is equally clean. American fi­nance has al­ways car­ried high-risk in­stru­ments at its mar­gins, and the reg­u­la­tory tra­di­tion has han­dled them by keep­ing them in­side in­sti­tu­tional perime­ters where the par­tic­i­pants are os­ten­si­bly cap­i­tal­ized and so­phis­ti­cated enough to ab­sorb the risk. The defin­ing fea­ture of the crypto in­dus­try, the fea­ture that dis­tin­guishes it from every pre­vi­ous wave of fi­nan­cial com­plex­ity, is its sin­gle-minded fo­cus on bring­ing those high-risk in­stru­ments to the re­tail cus­tomer who has no busi­ness in any of them. The in­sti­tu­tional chan­nels for so­phis­ti­cated coun­ter­party trad­ing al­ready ex­ist un­der U.S. law and have ex­isted for decades. The in­dus­try has cho­sen to op­er­ate out­side them.

That choice, made over and over, is the sin­gle fact that or­ga­nizes the rest of this piece. The su­per­vised chan­nels are open and un­prof­itable, so the in­dus­try took the re­tail one. Aggregation fore­cast­ing for so­phis­ti­cated coun­ter­par­ties al­ready runs un­der the ex­ist­ing el­i­gi­ble-con­tract-par­tic­i­pant rules; the in­dus­try chose not to com­pete there. Dollar-denominated sav­ing al­ready runs through U.S. money mar­ket funds and off­shore de­posit prod­ucts; the in­dus­try chose not to com­pete there. Hedging on real com­mod­ity out­comes al­ready runs un­der the de­riv­a­tives frame­works the CFTC was built to ad­min­is­ter; the in­dus­try chose not to com­pete there. Every time, it chose the ver­sion of the prod­uct with no so­phis­ti­cated coun­ter­party on the other side of the trade, be­cause that is where the money is. The busi­ness was never ag­gre­ga­tion, or sav­ing, or hedg­ing. The busi­ness is sucker farm­ing: man­u­fac­tur­ing a prod­uct whose coun­ter­party is a re­tail cus­tomer who does not un­der­stand that he is the one be­ing farmed. It could have played by the ex­ist­ing rules. It has de­ci­sively cho­sen not to.

The choice is the ar­gu­ment.

What fol­lows is an in­ven­tory, then a pol­i­tics. The casino and the fi­nan­cial ni­hilism that feeds it. The so-called pre­dic­tion mar­kets. The dol­lar-de­nom­i­nated sta­ble­coins and the mon­e­tary sov­er­eignty they qui­etly trans­fer. The po­lit­i­cal-eco­nomic ma­chine that de­fends all three. And fi­nally, what a se­ri­ous pol­icy re­sponse would do, and what can be done to stop it.

The Casino Pipeline

Just as I warned years ago, the crypto econ­omy now func­tions as a high-through­put on­board­ing ramp for re­tail gam­bling. The pipeline op­er­ates in stages, each of which feels like a small step from the one be­fore. Meet Mike. Mike is a col­lege fresh­man who is ex­posed to crypto through so­cial me­dia. He down­loads Coinbase, buys ten dol­lars of CumRocket be­cause his friend group is in on it, watches the price move, and feels for the first time the dopamine rush of gam­bling on non-eco­nomic ran­dom walks. By his sopho­more year he is onto harder drugs: 0DTE op­tions on triple-lever­aged sin­gle-stock ETFs he does not un­der­stand, traded on a gam­i­fied bro­ker­age built to look like a video game. By twenty-two he has a Kalshi ac­count, be­cause bet­ting on the out­come of a pres­i­den­tial pri­mary or a re­al­ity tele­vi­sion show win­ner has been re­framed as par­tic­i­pa­tion in fi­nan­cial mar­kets. By twenty-four he has hit rock bot­tom in the sports­book, fir­ing off ten-leg par­lays on Tibetan ping-pong and third-di­vi­sion wa­ter polo at two in the morn­ing be­cause the games he has ac­tu­ally heard of no longer move fast enough to feel like any­thing. Mike be­lieves he is in­vest­ing. Mike is gam­bling. Mike is on the ex­press train to a gam­bling ad­dic­tion, and he is mean­ing­fully poorer at every stop along the way.

At no point in this pipeline does Mike’s cap­i­tal touch pro­duc­tive en­ter­prise. He has fi­nanced no fac­tory. He has funded no re­search pro­gram. He owns no share of a busi­ness that em­ploys peo­ple and pro­duces goods. He has spent five years re­hears­ing the cog­ni­tive habits of a de­gen­er­ate gam­bler un­der the steady im­pres­sion that he was learn­ing fi­nance. The nov­elty in 2026 is not gam­bling, which has al­ways ex­isted. The nov­elty is that the cog­ni­tive ar­chi­tec­ture of gam­bling has been im­ported into the ba­sic in­fra­struc­ture of American house­hold fi­nance and is now func­tion­ally in­dis­tin­guish­able from it.

The be­hav­ioral mech­a­nism is vari­able-ra­tio re­in­force­ment, an ef­fect well es­tab­lished in lab­o­ra­tory psy­chol­ogy and well known to every prod­uct man­ager in the in­dus­try. Unpredictable re­wards pro­duce the strongest habit for­ma­tion. Two decades of be­hav­ioral data have taught the in­dus­try how of­ten to de­liver the green can­dle to keep the user press­ing. The mech­a­nism it­self is decades old. The nov­elty is that crypto is the first prod­uct class to ap­ply it at the scale of an en­tire gen­er­a­tion’s in­tro­duc­tion to fi­nan­cial mar­kets.

Financial Nihilism

The pipeline does not work on its own. It works be­cause the con­di­tions of young eco­nomic life in 2026 make it work. The co­hort be­ing on­boarded into the casino is the same co­hort that can­not af­ford a starter home in any ma­jor met­ro­pol­i­tan area, that is car­ry­ing his­tor­i­cally high stu­dent debt loads, that watches the cost of gro­ceries climb faster than wages, and that has been told for fif­teen years that the tra­di­tional path of pa­tient ac­cu­mu­la­tion through in­dex funds is a fool’s game com­pared with the asym­met­ric up­side of spec­u­la­tion. The eco­nomic pre­car­ity that crypto pur­ports to solve is the same pre­car­ity that makes the cus­tomer base re­cep­tive to crypto. The in­dus­try har­vests the anx­i­ety, re­fines it into a spec­u­la­tive to­ken, and sells the to­ken back to the anx­ious as the so­lu­tion to the anx­i­ety.

The tech­ni­cal name for the re­sult­ing dis­po­si­tion is fi­nan­cial ni­hilism. The worker does not be­lieve the sys­tem will re­ward pa­tience, the saver does not be­lieve the sav­ings will re­tain value, and the in­vestor does not be­lieve that the tra­di­tional mea­sures of fun­da­men­tal worth are op­er­a­tive any­more. Under those con­di­tions the casino reads as the ra­tio­nal ex­pres­sion of a co­her­ent dis­be­lief in the al­ter­na­tives rather than as a de­par­ture from ra­tio­nal­ity. The in­dus­try un­der­stands this per­fectly well. Its mar­ket­ing is cal­i­brated to it. Its prod­uct sur­face is de­signed for it. Every on­board­ing flow is an im­plicit ar­gu­ment that the con­ven­tional fi­nan­cial sys­tem has failed the user and that the only re­main­ing route to dig­nity is spec­u­la­tive.

Alienation, the residue that two cen­turies of in­dus­trial re­or­ga­ni­za­tion have de­posited in every work­ing life and that no po­lit­i­cal pro­ject of left or right has man­aged to dis­solve, has been pack­aged, priced, and sold back to the alien­ated as a fi­nan­cial in­stru­ment. And maybe sit with that for a sec­ond, be­cause it’s bleak.

Where Prediction Markets Fail

The pre­dic­tion-mar­kets case is the clean­est test of the struc­tural the­sis above, and it is the sec­tion in which the an­a­lyt­i­cal ar­gu­ment of this piece car­ries most of its weight.

The in­dus­try’s strongest de­fense of these prod­ucts is that mar­kets ag­gre­gate dis­persed in­for­ma­tion that polling and ex­pert pan­els can­not. Grant the claim its most fa­vor­able form, and it still does not get the in­dus­try where it needs to go. Whatever in­for­ma­tion a pre­dic­tion mar­ket pro­duces is a byprod­uct of the bet­ting, not a good any­one set out to make. The trad­ing builds noth­ing, fi­nances noth­ing, and em­ploys no one. It is zero-sum by con­struc­tion, a trans­fer from the traders who are wrong to the traders who are right, and af­ter the plat­form takes its cut it is neg­a­tive-sum, a trans­fer from every­one at the table to the house. The claimed pub­lic ben­e­fit, a mar­gin­ally sharper prob­a­bil­ity on a ques­tion a poll­ster could have asked, is spec­u­la­tive and the­o­ret­i­cal. The fee skimmed off every dol­lar of los­ing flow is con­crete and guar­an­teed. Strip away the lan­guage of price dis­cov­ery and the ac­tual prod­uct is a preda­tory rake on zero-sum spec­u­la­tion.

The deeper point mat­ters more. Where pre­dic­tion mar­kets do out­per­form other meth­ods, the out­per­for­mance is con­cen­trated in ex­actly the cases where the mar­ginal trader has non-pub­lic in­for­ma­tion. The Iran strike trades are not an aber­ra­tion but the pre­dictable equi­lib­rium. Wherever the un­der­ly­ing has a ma­te­r­ial in­sider pop­u­la­tion and no gen­uine in­sti­tu­tional hedg­ing de­mand on the other side of the book, ag­gre­ga­tion col­lapses into in­sider rent ex­trac­tion. That de­scribes sports out­comes, elec­tion out­comes, and the tim­ing of mil­i­tary op­er­a­tions alike, and in each the re­sult­ing price dis­cov­ery re­duces to a tax on un­in­formed coun­ter­par­ties. That tax is sucker farm­ing, the busi­ness this in­dus­try was built to run, now show­ing it­self on the or­der book. The ag­gre­ga­tion de­fense and the in­sider-trad­ing scan­dal de­scribe the same phe­nom­e­non in two reg­is­ters.

The stan­dard wel­fare de­fense of any spec­u­la­tive in­stru­ment de­pends on an ac­count­ing that the pre­dic­tion-mar­ket case can­not pass. The Pigouvian ac­count­ing re­quires that the so­cial ben­e­fits of an ac­tiv­ity be weighed against the ex­ter­nal­i­ties it im­poses on par­ties who never chose to par­tic­i­pate. Applied here the ac­count­ing col­lapses. The ben­e­fits, mod­est and the­o­ret­i­cal, ac­crue to a small set of so­phis­ti­cated coun­ter­par­ties who could equally well be served by closed in­sti­tu­tional mar­kets that al­ready ex­ist un­der ECP rules. The costs, con­crete and grow­ing, fall on third par­ties who never traded the con­tract. The re­tail cus­tomer sucker-farmed on the wrong side of an asym­met­ric bet. The elec­tion in­tegrity of a state whose re­sults are traded as a de­riv­a­tives po­si­tion by ac­counts in two for­eign ju­ris­dic­tions. The for­eign head of state whose con­tin­ued breath­ing is the un­der­ly­ing. The serv­ing sol­diers whose op­er­a­tional plan­ning is the al­pha. The polity whose in­for­ma­tion en­vi­ron­ment is cor­rupted by the pub­li­ca­tion of mar­ket-im­plied prob­a­bil­i­ties that are in fact re­flec­tions of in­sider po­si­tion. These are text­book neg­a­tive ex­ter­nal­i­ties, of the kind the reg­u­la­tory state was built to in­ter­nal­ize, and they are cat­e­gor­i­cally ex­cluded from any hon­est wel­fare de­fense of the prod­uct class. If the en­tire pre­dic­tion-mar­ket sec­tor were closed to­mor­row, no se­ri­ous ac­count­ing of ag­gre­gate U.S. wel­fare would reg­is­ter a loss.

Consider a sin­gle con­tract that ac­tu­ally ran on Polymarket through the end of last year. It was ti­tled Will Jesus Christ re­turn to Earth in 2025?” Settlement was sched­uled for December 31. The im­plied prob­a­bil­ity hov­ered around three per­cent for much of the year. The mar­ket drew roughly three mil­lion dol­lars in vol­ume be­fore set­tling no. A plat­form that the fed­eral reg­u­la­tory ap­pa­ra­tus has agreed to treat as ad­ja­cent to a de­riv­a­tives mar­ket listed, ran, set­tled, and paid out a bi­nary con­tract on the es­cha­to­log­i­cal re­turn of the Christian mes­siah. The same agency that su­per­vises price dis­cov­ery in corn, soy­beans, oil, and in­ter­est rates con­sid­ers this prod­uct an item in its reg­u­la­tory fam­ily. What hap­pened on that or­der book is sucker farm­ing in its purest form. The plat­form man­u­fac­tured a bi­nary propo­si­tion cheap enough for re­tail to take a flier on and ab­surd enough that the op­er­a­tor car­ried no real risk, dressed up the old­est casino me­chanic in fi­nance in the in­sti­tu­tional vo­cab­u­lary of de­riv­a­tives, and skimmed a fee on every dol­lar of the re­sult­ing flow. The op­er­a­tor will keep do­ing this for as long as the reg­u­la­tor con­tin­ues to treat each new ab­sur­dity as a mar­ginal ex­ten­sion of a le­git­i­mate cat­e­gory.

The deadly se­ri­ous ver­sion of the same phe­nom­e­non played out ear­lier this year on Polymarket in the weeks sur­round­ing the U.S. strikes on Iranian nu­clear fa­cil­i­ties. The stan­dard of ev­i­dence here mat­ters and de­serves to be stated ex­plic­itly. What fol­lows has been re­ported by CBS News and the New York Times rather than charged in an in­dict­ment, and the le­gal char­ac­ter­i­za­tion re­mains pend­ing. The re­ported pat­tern is that nine anony­mous wal­lets, cre­ated in the days im­me­di­ately be­fore the first American strike, went on to win an ex­tra­or­di­nary frac­tion of bets placed on the pre­cise se­quence of events that fol­lowed. They al­legedly called the date of the first strike. They al­legedly called the killing of Iran’s supreme leader. They al­legedly called the tim­ing of the cease­fire an­nounce­ment. Their com­bined re­ported win­nings ap­proached two and a half mil­lion dol­lars. The pat­tern is one that no plau­si­ble model of pub­lic in­for­ma­tion can ex­plain.

A sep­a­rate mat­ter is in the crim­i­nal record. A fed­eral grand jury has in­dicted Army Master Sergeant Gannon Ken Van Dyke for al­legedly us­ing clas­si­fied in­for­ma­tion about a U.S. op­er­a­tion tar­get­ing the Venezuelan gov­ern­ment to net more than four hun­dred thou­sand dol­lars in Polymarket prof­its. Sit with the sen­tence for a mo­ment. A serv­ing non-com­mis­sioned of­fi­cer of the United States Army, hold­ing an ac­tive se­cu­rity clear­ance, in a po­si­tion of trust above any rank most Americans will ever hold, al­legedly used the op­er­a­tional plan­ning of a U.S. mil­i­tary ac­tion against a for­eign gov­ern­ment to place win­ning bets on a CFTC-regulated plat­form whose re­tail coun­ter­par­ties had no idea they were trad­ing against the kill chain. The plat­form took its fee on every dol­lar of that flow. The fed­eral reg­u­la­tor that has agreed to call the plat­form a de­riv­a­tives ex­change has not, to date, sus­pended the con­tract class. The charge is on the docket. The prod­uct is still listed.

The hedg­ing de­fense, in the face of this record, fails in the sim­plest pos­si­ble terms. Nobody runs a house­hold busi­ness whose cash flows de­pend on whether the U.S. ex­tra­ju­di­cially as­sas­si­nates a head of state in an il­le­gal war. Nobody hedges their re­tire­ment port­fo­lio against whether the cen­ter­pieces at Taylor Swift’s wed­ding are white or cream.

At a re­cent Senate hear­ing the in­dus­try’s own wit­ness was un­able to ar­tic­u­late a co­her­ent hedg­ing use case for an event con­tract on whether a base­ball pitcher would throw a ball or a strike.

The hedg­ing ar­gu­ment is a fig leaf in­vented to jus­tify car­ry­ing these prod­ucts un­der CFTC de­riv­a­tives ju­ris­dic­tion rather than un­der state gam­ing reg­u­la­tors.

The CFTC it­self has a statu­tory rule against event con­tracts that con­sti­tute gam­ing. It is choos­ing not to en­force it. The agency has in­stead po­si­tioned it­self as the cheer­leader for an in­dus­try it was never built to reg­u­late, sign­ing an MOU with the NHL about the im­pact of pre­dic­tion mar­kets on the in­tegrity of pro­fes­sional hockey, and float­ing, in pub­lic re­marks by its lead­er­ship, the prospect of sim­i­lar agree­ments with other sports leagues. The fed­eral agency whose statu­tory pur­pose is the su­per­vi­sion of real de­riv­a­tives for so­phis­ti­cated coun­ter­par­ties with gen­uine hedg­ing needs is now draft­ing part­ner­ship doc­u­ments with sports leagues about game in­tegrity.

This mis­sion creep is hap­pen­ing at ex­actly the mo­ment the agency has been hol­lowed out. According to pub­lic tes­ti­mony and re­port­ing on the agen­cy’s head­count, the CFTC has shed roughly a quar­ter of its work­force since 2024, from more than seven hun­dred em­ploy­ees to about five hun­dred and thirty-five by early 2026, with the en­force­ment di­vi­sion con­tract­ing from one hun­dred and forty to roughly one hun­dred and five over the same pe­riod. The agency over­sees an over-the-counter de­riv­a­tives mar­ket the BIS pegged at eight hun­dred and forty-six tril­lion dol­lars in no­tional out­stand­ing as of mid-2025, the price dis­cov­ery layer that de­ter­mines what Americans pay for food, gaso­line, and elec­tric­ity. This is in­sti­tu­tional dere­lic­tion at the level of the worst SEC fail­ures of the 2000s, the ones the mod­ern com­pli­ance state was sup­pos­edly built to pre­vent from re­cur­ring. Every hour its en­force­ment staff spends on a Polymarket sub­poena is an hour not spent on the mar­kets that ac­tu­ally mat­ter to American house­holds.

There is also the ques­tion of whose son sits where. Donald Trump Jr. sits on Polymarket’s ad­vi­sory board and his ven­ture fund, 1789 Capital, holds an undis­closed eq­uity stake in the plat­form. The pres­i­den­t’s son is a ben­e­fi­cial owner of a com­pany whose cus­tomers in­clude serv­ing mil­i­tary per­son­nel bet­ting on the tim­ing of pres­i­den­tial mil­i­tary op­er­a­tions. Senators Merkley and Klobuchar have in­tro­duced the End Prediction Market Corruption Act to bar the pres­i­dent, vice pres­i­dent, and mem­bers of Congress from trad­ing on these plat­forms and to re­quire their im­me­di­ate fam­i­lies to dis­close such trades. House Oversight Chair Comer has opened an in­ves­ti­ga­tion. Neither ef­fort has yet cleared com­mit­tee. Which will come as a shock to no one un­der this ad­min­is­tra­tion, ob­vi­ously.

The line worth draw­ing is bright. Sophisticated in­sti­tu­tions al­ready trade in­stru­ments like these among them­selves. I am not go­ing to lit­i­gate here whether they should; there are sys­temic-risk con­cerns, but no worse than the ones de­riv­a­tives trad­ing al­ready car­ries. An event or weather or rate con­tract traded be­tween coun­ter­par­ties who can ab­sorb the loss is no more ex­otic than any other de­riv­a­tive, and it is not where the harm lives. The harm is the re­tail prod­uct, and re­tail has no busi­ness in any of it. Sports bet­ting, elec­tion bet­ting, and mil­i­tary op­er­a­tion bet­ting are gam­bling and should be reg­u­lated by the state gam­ing au­thor­i­ties who have spent a cen­tury build­ing ex­actly the con­sumer-pro­tec­tion ex­per­tise re­quired. The CFTC should be re­turned to its mis­sion of reg­u­lat­ing real de­riv­a­tives on real com­modi­ties mar­kets for in­sti­tu­tional in­vestors. The genuine hedg­ing in­ter­est” that is sup­posed to gate all this is, in de­riv­a­tives land, mostly a joke, and I am not shy about say­ing as much di­rectly.

Stablecoins and Outsourced Dollarization

The sec­ond front in the 2026 crypto land­scape is the for­mal in­te­gra­tion of dol­lar-de­nom­i­nated sta­ble­coins into the global mon­e­tary sys­tem through the GENIUS Act passed last year. I wrote about the risks of dig­i­tal dol­lar­iza­tion two years ago and the in­ter­ven­ing pe­riod has con­firmed the pes­simistic ver­sion of that analy­sis. The shadow Eurodollar sys­tem is no longer shadow. It is fed­er­ally blessed. The ad­min­is­tra­tion is press­ing the Fed to ex­tend pay­ment-ac­count ac­cess to the pri­vate com­pa­nies that is­sue these in­stru­ments. A slice of mon­e­tary pol­icy has been pri­va­tized and out­sourced to a small num­ber of cor­po­ra­tions cho­sen for their will­ing­ness to op­er­ate in reg­u­la­tory gray zones.

The in­dus­try’s pitch leans on a sym­pa­thetic fig­ure. A worker in Lagos, Buenos Aires, or Istanbul, watch­ing her lo­cal cur­rency lose pur­chas­ing power year af­ter year, saves in a U.S.-denominated sta­ble­coin be­cause the dol­lar is un­avail­able to her un­der any other route. The story is built to be unan­swer­able. It is also wrong on the facts. The worker is not sav­ing in dol­lars. She is sav­ing in a claim against an off­shore is­suer whose re­serve com­po­si­tion and au­dit his­tory fall well short of what any do­mes­tic reg­u­la­tor would tol­er­ate, and whose dol­lar off-ramps in her coun­try are in­ter­mit­tent at best. The ar­gu­ment that sta­ble­coins solve a real prob­lem for for­eign re­tail savers as­sumes a coun­ter­fac­tual in which she would oth­er­wise have no dol­lar ex­po­sure at all. The ac­tual coun­ter­fac­tual is the in­for­mal dol­lar econ­omy that has ex­isted in every soft-cur­rency coun­try for half a cen­tury. Physical USD chang­ing hands in the souk. Hawala net­works set­tling cross-bor­der bal­ances on trust. Dollar de­posits held at cor­re­spon­dent banks through di­as­pora rel­a­tives. Dollar-denominated re­mit­tance prod­ucts run by Western Union and its com­peti­tors. Stablecoins did not in­vent dol­lar ac­cess for the global poor. They in­serted an opaque coun­ter­party into a route that al­ready ex­isted, and they mar­ket the sub­sti­tu­tion as if it were the dol­lar it­self. The con­fla­tion of sta­ble­coin and dol­lar is the in­dus­try’s most suc­cess­ful piece of mar­ket­ing. It is also the ba­sis on which the rest of the pol­icy de­bate has been mis-framed.

The col­lec­tive con­se­quences of the sub­sti­tu­tion land harder than the in­di­vid­ual case. This is the fal­lacy of com­po­si­tion pro­jected onto mon­e­tary ge­og­ra­phy, and a Pigouvian ex­ter­nal­ity on a plan­e­tary scale. The pri­vate in­ter­est is gen­uine, a global mar­ket’s ap­petite for a fric­tion­less way to hold dol­lars, cap­tured by the saver who holds the to­ken and the is­suer who books the re­serves. The cost is paid by every­one out­side that trans­ac­tion. What looks ra­tio­nal for the in­di­vid­ual Nigerian saver is cor­ro­sive for Nigeria. When the Federal Reserve ad­justs in­ter­est rates to man­age U.S. do­mes­tic con­di­tions, those de­ci­sions now prop­a­gate into the sav­ings ac­counts of peo­ple in coun­tries whose economies may re­quire the op­po­site pol­icy. The lo­cal cen­tral bank loses its tools. The lo­cal gov­ern­ment loses the abil­ity to re­spond to lo­cal shocks. The lo­cal econ­omy be­comes a pro­cycli­cal am­pli­fier of de­ci­sions made by an in­sti­tu­tion that has no oblig­a­tion to con­sider its wel­fare. The mech­a­nism is out­sourced dol­lar­iza­tion, car­ried out one wal­let at a time, with­out a treaty and with­out the con­sent of the af­fected sov­er­eign. No co­er­cion is re­quired. Only the slow ero­sion of al­ter­na­tives.

The asym­me­try runs back the other way. The re­serves back­ing the largest sta­ble­coins con­sist pri­mar­ily of U.S. Treasury bills. As sta­ble­coin is­suance has scaled into the hun­dreds of bil­lions, these pri­vate com­pa­nies have be­come struc­turally im­por­tant hold­ers of U.S. gov­ern­ment debt. As of the most re­cent pub­lic dis­clo­sures, the com­bined Treasury hold­ings of the two largest is­suers ex­ceed those of most sov­er­eign hold­ers out­side the top tier. A run on a ma­jor sta­ble­coin would force a fire sale of those Treasuries, the con­ta­gion chan­nel I take up in de­tail be­low. The American fi­nan­cial sys­tem is now ex­posed to the op­er­a­tional risks of two pri­vate com­pa­nies whose in­ter­nal risk-man­age­ment prac­tices re­main opaque, whose ex­ec­u­tives have re­peat­edly demon­strated cav­a­lier at­ti­tudes to­ward re­serve dis­clo­sure, and whose busi­ness model de­pends on con­tin­ued growth of spec­u­la­tive crypto trad­ing. This is a new trans­mis­sion mech­a­nism for fi­nan­cial con­ta­gion, dressed up in the lan­guage of ef­fi­ciency.

The con­ta­gion mech­a­nism is not hy­po­thet­i­cal. In March 2023 the largest U.S.-domiciled sta­ble­coin, USDC, broke its dol­lar peg and traded as low as eighty-seven cents af­ter Silicon Valley Bank’s fail­ure ex­posed Circle’s unin­sured re­serve con­cen­tra­tion there, and the peg was re­stored only when Treasury and the FDIC in­voked the sys­temic risk ex­cep­tion to guar­an­tee SVB de­posits in full, an ac­tion that was, in op­er­a­tional sub­stance, a fed­eral res­cue of a nom­i­nally unin­sured pri­vate sta­ble­coin. The prece­dent now sits in the pol­icy record. Any is­suer of com­pa­ra­ble scale un­der run pres­sure knows the sys­temic risk ex­cep­tion is avail­able to it, and any fu­ture Treasury Secretary knows the cost of al­low­ing a ma­jor sta­ble­coin to fail in dis­or­der. The fed­eral back­stop for sta­ble­coins is, in ef­fect, al­ready in place.

The OCC has spent the year since the GENIUS Act ex­tend­ing the for­mal bank perime­ter fur­ther around the same firms. National trust char­ters have been granted or con­di­tion­ally ap­proved for the op­er­at­ing en­ti­ties of a grow­ing list of ma­jor U.S. crypto ex­changes, cus­to­di­ans, and sta­ble­coin is­suers, a char­ter ap­pli­ca­tion from World Liberty Financial was filed in January 2026, and a May 2026 ex­ec­u­tive or­der di­rected the OCC to ac­cel­er­ate crypto-firm char­ter­ing and in­structed the Federal Reserve to re­con­sider pay­ment-ac­count ac­cess for unin­sured in­sti­tu­tions, with the Fed pub­lish­ing a for­mal pro­posal sub­stan­tially in line with that di­rec­tion one day later. Each move brings crypto is­suers deeper in­side the fed­eral bank char­ter­ing ap­pa­ra­tus, which is to say deeper in­side the im­plicit fed­eral back­stop the SVB episode al­ready made op­er­a­tional, on the le­gal the­ory that the is­suance of re­deemable on-de­mand par-value claims is a fidu­ciary trust ac­tiv­ity, which it plainly is not.

The hon­est pol­icy po­si­tion is that sta­ble­coin is­suance is not a busi­ness model the fed­eral gov­ern­ment should li­cense as a sep­a­rate cat­e­gory. A re­deemable on-de­mand par-value claim against a Treasury and short-term-credit port­fo­lio is, in sub­stance, ei­ther a bank de­posit or a money mar­ket fund. Both perime­ters were built through hard ex­pe­ri­ence, the bank­ing frame­work over the bet­ter part of a cen­tury and the MMF frame­work through the 2008 cri­sis and the March 2020 dash for cash, and both work. There is no good rea­son to in­vent a new and weaker regime for an in­stru­ment that al­ready has two well-tested ones avail­able to it. A firm that wants to is­sue pay­ment-rail money can ap­ply for a na­tional bank char­ter and ac­cept the cap­i­tal, liq­uid­ity, su­per­vi­sion, and con­sumer-pro­tec­tion oblig­a­tions that come with one. A firm whose busi­ness model can­not sur­vive or­di­nary su­per­vi­sion should not be tol­er­ated as a go­ing con­cern, and the ap­pro­pri­ate re­sponse to its fail­ure to meet the stan­dard is an or­derly un­wind rather than a reg­u­la­tory ac­com­mo­da­tion. The house­hold de­mand the in­dus­try has tried to claim un­der the ban­ner of fi­nan­cial in­clu­sion is a real de­mand and de­serves a real pub­lic an­swer, not the mar­ket­ing of a spec­u­la­tive trad­ing rail as the sub­sti­tute.

The Sovereignty Question

The in­ter­na­tional pol­icy lit­er­a­ture has been clear-eyed about the stakes in a way the do­mes­tic de­bate has not. Staff pa­pers from the IMF have flagged dol­lar sta­ble­coin pro­lif­er­a­tion as a new vec­tor for cur­rency sub­sti­tu­tion in coun­tries with weak lo­cal cur­ren­cies, ac­cel­er­at­ing the cryp­toiza­tion of house­hold sav­ings in ways that com­pli­cate both mon­e­tary pol­icy trans­mis­sion and bal­ance-of-pay­ments man­age­ment, with the Fund’s December 2025 de­part­men­tal pa­per on sta­ble­coins mak­ing the struc­tural ar­gu­ment at length. Work at the BIS has tracked how sta­ble­coin flows move the price of safe as­sets in terms the U.S. Treasury mar­ket should find sober­ing, with a par­al­lel analy­sis of sta­ble­coin runs draw­ing the ob­vi­ous fi­nan­cial-sta­bil­ity con­clu­sions, and has reached the fur­ther con­clu­sion in its 2025 Annual Economic Report and in the BIS work on cryp­toas­set risks in emerg­ing mar­ket economies that the fi­nan­cial-sta­bil­ity ex­ter­nal­i­ties of dol­lar sta­ble­coin scale are in­ad­e­quately ad­dressed by the pru­den­tial frame­works un­der which the is­suers cur­rently op­er­ate. Both bod­ies of work are pub­licly avail­able and nei­ther has been se­ri­ously en­gaged by the U.S. pol­icy com­mu­nity re­spon­si­ble for the GENIUS frame­work.

The two largest non-U.S. mon­e­tary au­thor­i­ties have reached com­pat­i­ble con­clu­sions in dif­fer­ent in­sti­tu­tional lan­guages. The ECB has framed the dig­i­tal euro ini­tia­tive as an ex­plicit sov­er­eignty re­sponse, nam­ing dol­lar sta­ble­coin pro­lif­er­a­tion in mem­ber-state re­tail pay­ments as a strate­gic risk that jus­ti­fies a pub­lic-sec­tor al­ter­na­tive, and the ECB Financial Stability Review has made the cor­re­spond­ing point about cross-bor­der spillovers in the lan­guage European su­per­vi­sors use for these ques­tions. The PBoC has reached the same di­ag­no­sis through the dig­i­tal yuan pro­gram, and its gov­er­nor has been ex­plicit in nam­ing sta­ble­coins as a source of fragility in the global fi­nan­cial sys­tem and a threat to the mon­e­tary sov­er­eignty of smaller ju­ris­dic­tions, in do­mes­tic pol­icy doc­u­ments and BIS-hosted speeches more open about the fram­ing than its European coun­ter­part has been in English-language com­mu­ni­ca­tions. The two largest non-U.S. mon­e­tary au­thor­i­ties both in­ter­pret what the GENIUS Act blessed as a vec­tor for U.S. mon­e­tary pro­jec­tion that their cit­i­zens did not con­sent to. Their in­ter­pre­ta­tion is cor­rect, and the U.S. pol­icy com­mu­nity would be well served by en­gag­ing it in those plain terms.

There is a closer com­par­i­son for what a sta­ble­coin run would do to the Treasury mar­ket, and it is not a for­eign gov­ern­ment sell­ing off its bonds. It is the money-mar­ket-fund panic of March 2020. Money funds promise to pay you a dol­lar on de­mand, so when every­one wanted cash at once they had to dump their short-term Treasuries fast, and the Fed had to step in to stop the slide. The two biggest sta­ble­coin is­suers now sit on a pile of short-term Treasuries about the size of the money-fund book that set off that scram­ble. They are opaque pri­vate com­pa­nies whose rev­enue rides on crypto trad­ing vol­ume that can fall off a cliff in a sin­gle week. If ei­ther one faced a run, it would have to sell that pile in a hurry, into a mar­ket that re­searchers keep show­ing has less and less room to ab­sorb a big, con­cen­trated sale. We have watched that limit bite in the March 2023 bank fail­ures and in the hedge-fund ba­sis-trade buildup tracked through late 2024, and the gov­ern­men­t’s own Treasury-market re­silience re­port says the same. Drop a forced seller of that size into that mar­ket and you have a new way for a crypto panic to turn into a Treasury-market cri­sis, one no­body has stress-tested and the rule­book was never built to con­tain.

The Political Economy

The rea­son none of the above has been fixed is po­lit­i­cal. The crypto in­dus­try has built, over a decade, one of the most ef­fec­tive sin­gle-is­sue lob­by­ing op­er­a­tions in mod­ern American pol­i­tics, com­pa­ra­ble in dol­lar terms to the es­tab­lished gi­ants of the field and ar­guably more con­cen­trated in its tar­get­ing. The po­lit­i­cal ve­hi­cle is the Fairshake net­work of su­per PACs and af­fil­i­ated en­ti­ties. Fairshake and its af­fil­i­ates raised more than two hun­dred and sixty mil­lion dol­lars for the 2024 cy­cle and de­ployed roughly one hun­dred and thirty-three mil­lion dol­lars in out­side spend­ing against and for can­di­dates in House and Senate races. The tar­get­ing was openly trans­ac­tional. In the March 2024 California Senate pri­mary, Fairshake spent over ten mil­lion dol­lars at­tack­ing Representative Katie Porter, who had been a vo­cal critic of the in­dus­try on the House Financial Services Committee. Porter fin­ished third. In House races across the cy­cle the PAC went af­ter in­cum­bents on the wrong side of dig­i­tal-as­set reg­u­la­tion and el­e­vated friendly chal­lengers, while the ads them­selves al­most never men­tioned crypto, on the the­ory that what mat­ters is the com­po­si­tion of the cham­ber rather than the pub­lic salience of the is­sue. The strat­egy worked. The cham­ber was com­posed. The GENIUS Act and the broader mar­ket-struc­ture frame­work friendly to the in­dus­try’s pre­ferred reg­u­la­tory perime­ter fol­lowed.

The pres­i­den­t’s own crypto ven­ture sits at the apex of the re­sult­ing sys­tem. The epony­mous TRUMP to­ken, launched days be­fore the 2025 in­au­gu­ra­tion and traded on The Family’s plat­form along­side the World Liberty Financial sta­ble­coin and gov­er­nance to­ken, is the clean­est case in mod­ern American his­tory of a sit­ting pres­i­dent mon­e­tiz­ing the of­fice through an in­stru­ment that any wal­let in the world can hold. (The Family, cap­i­tal­ized and sin­gu­lar, in the man­ner of gang­ster movies.) Three doc­u­mented facts carry the ar­gu­ment. First, the to­ken was struc­tured around an ex­plicit ac­cess mech­a­nism. The largest hold­ers were in­vited to a pri­vate din­ner with the pres­i­dent at his Virginia golf club in May 2025, and the very top hold­ers to a sep­a­rate, more ex­clu­sive VIP re­cep­tion, with the leader­board pub­lished in real time on the pro­jec­t’s web­site. The price chart for a pres­i­den­tial meme coin and the seat­ing chart for pres­i­den­tial prox­im­ity were the same chart. Second, the buy­ers skewed heav­ily off­shore. Bloomberg’s analy­sis of the to­ken’s leader­board found that all but six of the top twenty-five wal­lets at the din­ner cut­off used off­shore ex­changes in­ac­ces­si­ble to U.S. cus­tomers, which is the strongest avail­able sig­nal that the mar­ginal buyer of pres­i­den­tial prox­im­ity was for­eign. Wall Street Journal re­port­ing, sum­ma­rized in sub­se­quent cov­er­age, doc­u­mented a sep­a­rate five-hun­dred-mil­lion-dol­lar in­vest­ment from an Aryam-branded Abu Dhabi ve­hi­cle backed by Sheikh Tahnoon bin Zayed Al Nahyan for a forty-nine per­cent stake in the af­fil­i­ated World Liberty Financial en­tity, and a sep­a­rate two-bil­lion-dol­lar Abu Dhabi state-fund in­vest­ment into Binance was later set­tled through World Liberty’s USD1 sta­ble­coin. Third, the scale is no longer am­bigu­ous. The House Judiciary Democratic staff re­port pub­lished in late 2025 doc­u­mented Trump-family crypto hold­ings that peaked above eleven bil­lion dol­lars and crypto-at­trib­ut­able in­come to The Family and its prin­ci­pals ex­ceed­ing eight hun­dred mil­lion dol­lars in the first half of 2025 alone. The TRUMP coin elim­i­nated the in­ter­me­di­ary that every pre­vi­ous in­flu­ence-buy­ing scheme has re­quired. There is no shell com­pany, no con­sult­ing con­tract, no off­shore real-es­tate trans­ac­tion in the chain. The price chart is the in­flu­ence-buy­ing mar­ket in real time, de­nom­i­nated in dol­lars, set­tled on a pub­lic ledger, open to any wal­let in the world.

The pipeline runs in both di­rec­tions. The in­dus­try ex­tracts wealth from re­tail par­tic­i­pants. A frac­tion of the ex­tracted wealth is con­verted into cam­paign con­tri­bu­tions through Fairshake and its af­fil­i­ates. Those con­tri­bu­tions buy a reg­u­la­tory en­vi­ron­ment that al­lows the ex­trac­tion to con­tinue. The Overton win­dow has been dragged so far that the ba­sic propo­si­tion that gam­bling on the death of a for­eign leader should be il­le­gal now reads as a fringe po­si­tion in­side a Senate com­mit­tee room. The loop has no in­ter­nal cor­rec­tion mech­a­nism. The only cor­rec­tion comes from out­side, through leg­is­la­tion writ­ten by mem­bers who do not need crypto money to win their pri­maries and ap­plied by reg­u­la­tors who have not been hol­lowed out by the same po­lit­i­cal ma­chine. That path is nar­row, and it is nar­row­ing fur­ther every cy­cle.

A Crypto Policy for the Democrats

One caveat be­fore the pre­scrip­tions and the po­lit­i­cal strat­egy that fol­low them. I am a soft­ware en­gi­neer, not a lawyer or po­lit­i­cal strate­gist, and what fol­lows is just my per­sonal opin­ion as a cit­i­zen. I am not go­ing to dress it up as a brief or pre­tend I can draft the statute. What I can do, af­ter a decade of watch­ing this in­dus­try up close, is tell you where its soft points are: which prod­ucts can­not sur­vive real su­per­vi­sion, which busi­ness mod­els ex­ist only in the gap where some ex­ist­ing rule is go­ing un­en­forced, and which threads a de­ter­mined reg­u­la­tor can pull un­til it all im­plodes. So read this as a tar­get map, not a memo. It is how you feed the crypto in­dus­try into the reg­u­la­tory wood­chip­per, and I am not shy about say­ing as such.

Every item be­low uses a power the gov­ern­ment al­ready has against an in­dus­try that grew up in the space where that power went un­used. None of it is novel. All of it is be­ing ig­nored.

Use the anti-gam­ing power the CFTC al­ready has, and get the agency out of the en­ter­tain­ment busi­ness. The law on the books al­ready lets the CFTC refuse event con­tracts that amount to gam­ing. The agency is sim­ply choos­ing not to use it. Draw the line where the hedg­ing stops. A nar­row set of con­tracts on eco­nomic out­comes, whether the Fed hikes at a given meet­ing, whether a data re­lease clears a pub­lished num­ber, are gen­uine hedges for so­phis­ti­cated play­ers and can stay. Everything else is gam­bling. Sports, elec­tions, re­al­ity-tele­vi­sion fi­nales, and the tim­ing of mil­i­tary strikes have no hedg­ing story that sur­vives a sec­ond ques­tion, and they be­long with the state gam­ing reg­u­la­tors who have spent a cen­tury learn­ing how to pro­tect the cus­tomer. Tear up the MOU with the NHL, and bar the agency from ever sign­ing an­other one with a sports league or an en­ter­tain­ment prop­erty. The fed­eral com­modi­ties cop has no busi­ness cer­ti­fy­ing en­ter­tain­ment bet­ting as a de­riv­a­tive, no busi­ness ref­er­ee­ing the in­tegrity of pro­fes­sional hockey, and no busi­ness burn­ing its scarce en­force­ment hours on ei­ther. And it can­not be done with a press re­lease. It takes a real rule­mak­ing to de­fine what counts as gam­ing, backed by cases filed against the plat­forms whose con­tract slates al­ready blew past any­thing the cur­rent pos­ture can de­fend.

Use the anti-gam­ing power the CFTC al­ready has, and get the agency out of the en­ter­tain­ment busi­ness. The law on the books al­ready lets the CFTC refuse event con­tracts that amount to gam­ing. The agency is sim­ply choos­ing not to use it. Draw the line where the hedg­ing stops. A nar­row set of con­tracts on eco­nomic out­comes, whether the Fed hikes at a given meet­ing, whether a data re­lease clears a pub­lished num­ber, are gen­uine hedges for so­phis­ti­cated play­ers and can stay. Everything else is gam­bling. Sports, elec­tions, re­al­ity-tele­vi­sion fi­nales, and the tim­ing of mil­i­tary strikes have no hedg­ing story that sur­vives a sec­ond ques­tion, and they be­long with the state gam­ing reg­u­la­tors who have spent a cen­tury learn­ing how to pro­tect the cus­tomer. Tear up the MOU with the NHL, and bar the agency from ever sign­ing an­other one with a sports league or an en­ter­tain­ment prop­erty. The fed­eral com­modi­ties cop has no busi­ness cer­ti­fy­ing en­ter­tain­ment bet­ting as a de­riv­a­tive, no busi­ness ref­er­ee­ing the in­tegrity of pro­fes­sional hockey, and no busi­ness burn­ing its scarce en­force­ment hours on ei­ther. And it can­not be done with a press re­lease. It takes a real rule­mak­ing to de­fine what counts as gam­ing, backed by cases filed against the plat­forms whose con­tract slates al­ready blew past any­thing the cur­rent pos­ture can de­fend.

Repeal the GENIUS Act and refuse to li­cense sta­ble­coin is­suance as its own busi­ness. Three things have to go: the brand-new, lighter-touch fed­eral li­cense GENIUS in­vented, the state-by-state char­ter­ing op­tion that sets off a race to the bot­tom on the model of the worst pre-2008 in­sur­ance reg­u­la­tion, and the sep­a­rate ex­ec­u­tive-branch drive, now ad­vanc­ing by or­der and a match­ing Fed pro­posal, to hand non-bank is­suers ac­cess to the cen­tral bank’s bal­ance sheet through pay­ment or mas­ter ac­counts. A sta­ble­coin is a bank de­posit or a money-mar­ket fund by an­other name. We al­ready have two well-tested rule­books for those, and there is no rea­son to write a third and weaker one. A firm that wants to is­sue pay­ment money against re­serves can go get a bank char­ter and take on the cap­i­tal, liq­uid­ity, su­per­vi­sion, de­posit-in­sur­ance bill, and con­sumer pro­tec­tions that come with it. A firm that can­not sur­vive that should not be al­lowed to run the knock­off, and an eigh­teen-to-twenty-four-month wind-down gives the in­cum­bents time to char­ter up or to leave the U.S. dol­lar sys­tem en­tirely. The un­banked-cus­tomer de­mand the in­dus­try waves around is real, and it de­serves a real pub­lic an­swer: postal bank­ing and a man­date-plus-sub­sidy that re­quires banks to of­fer free ac­counts to low-in­come cus­tomers with the gov­ern­ment cov­er­ing the car­ry­ing cost, on the same logic that built the pub­lic util­i­ties a cen­tury ago. A spec­u­la­tive trad­ing rail is not fi­nan­cial in­clu­sion, and the statute should stop pre­tend­ing it is.

Repeal the GENIUS Act and refuse to li­cense sta­ble­coin is­suance as its own busi­ness. Three things have to go: the brand-new, lighter-touch fed­eral li­cense GENIUS in­vented, the state-by-state char­ter­ing op­tion that sets off a race to the bot­tom on the model of the worst pre-2008 in­sur­ance reg­u­la­tion, and the sep­a­rate ex­ec­u­tive-branch drive, now ad­vanc­ing by or­der and a match­ing Fed pro­posal, to hand non-bank is­suers ac­cess to the cen­tral bank’s bal­ance sheet through pay­ment or mas­ter ac­counts. A sta­ble­coin is a bank de­posit or a money-mar­ket fund by an­other name. We al­ready have two well-tested rule­books for those, and there is no rea­son to write a third and weaker one. A firm that wants to is­sue pay­ment money against re­serves can go get a bank char­ter and take on the cap­i­tal, liq­uid­ity, su­per­vi­sion, de­posit-in­sur­ance bill, and con­sumer pro­tec­tions that come with it. A firm that can­not sur­vive that should not be al­lowed to run the knock­off, and an eigh­teen-to-twenty-four-month wind-down gives the in­cum­bents time to char­ter up or to leave the U.S. dol­lar sys­tem en­tirely. The un­banked-cus­tomer de­mand the in­dus­try waves around is real, and it de­serves a real pub­lic an­swer: postal bank­ing and a man­date-plus-sub­sidy that re­quires banks to of­fer free ac­counts to low-in­come cus­tomers with the gov­ern­ment cov­er­ing the car­ry­ing cost, on the same logic that built the pub­lic util­i­ties a cen­tury ago. A spec­u­la­tive trad­ing rail is not fi­nan­cial in­clu­sion, and the statute should stop pre­tend­ing it is.

Revoke the OCC trust char­ters handed to crypto firms. The cur­rent Comptroller has been grant­ing na­tional trust char­ters to the big crypto ex­changes, cus­to­di­ans, and sta­ble­coin is­suers, with a char­ter for World Liberty Financial and its peers in the queue, on the fic­tion that is­su­ing a sta­ble­coin or hold­ing to­kens in cus­tody is a trust” ac­tiv­ity. It is not. The next Comptroller can re­voke every char­ter granted on that the­ory, and frame it not as a par­ti­san re­ver­sal but as sim­ply en­forc­ing the law the cur­rent OCC stretched past break­ing. This is the cheap­est lever on the board: no tri­fecta, no Congress, no re­place­ment statute. It is a stroke-of-the-pen ac­tion avail­able on day one of the next ad­min­is­tra­tion.

Revoke the OCC trust char­ters handed to crypto firms. The cur­rent Comptroller has been grant­ing na­tional trust char­ters to the big crypto ex­changes, cus­to­di­ans, and sta­ble­coin is­suers, with a char­ter for World Liberty Financial and its peers in the queue, on the fic­tion that is­su­ing a sta­ble­coin or hold­ing to­kens in cus­tody is a trust” ac­tiv­ity. It is not. The next Comptroller can re­voke every char­ter granted on that the­ory, and frame it not as a par­ti­san re­ver­sal but as sim­ply en­forc­ing the law the cur­rent OCC stretched past break­ing. This is the cheap­est lever on the board: no tri­fecta, no Congress, no re­place­ment statute. It is a stroke-of-the-pen ac­tion avail­able on day one of the next ad­min­is­tra­tion.

Restore reg­u­la­tory ca­pac­ity and re­fo­cus the CFTC on its core mis­sion. Congress should re­store the staffing of the SEC and CFTC to pre-2024 lev­els and pro­vide both agen­cies with ad­di­tional re­sources suf­fi­cient to po­lice the crypto mar­ket at its cur­rent scale. The CFTCs core mis­sion is the su­per­vi­sion of an over-the-counter de­riv­a­tives mar­ket now mea­sured in the high hun­dreds of tril­lions of dol­lars, where the price dis­cov­ery for food, en­ergy, and in­ter­est rates ac­tu­ally hap­pens. Enforcement head­count and bud­get should be re­al­lo­cated ac­cord­ingly, away from chas­ing event-con­tract nov­elty and to­ward the mar­kets whose proper func­tion­ing American house­holds de­pend on. A hol­lowed-out agency is a cap­tured agency. The cur­rent re­source im­bal­ance be­tween reg­u­la­tors and in­dus­try is the sin­gle most im­por­tant en­abler of the abuses de­scribed above.

Restore reg­u­la­tory ca­pac­ity and re­fo­cus the CFTC on its core mis­sion. Congress should re­store the staffing of the SEC and CFTC to pre-2024 lev­els and pro­vide both agen­cies with ad­di­tional re­sources suf­fi­cient to po­lice the crypto mar­ket at its cur­rent scale. The CFTCs core mis­sion is the su­per­vi­sion of an over-the-counter de­riv­a­tives mar­ket now mea­sured in the high hun­dreds of tril­lions of dol­lars, where the price dis­cov­ery for food, en­ergy, and in­ter­est rates ac­tu­ally hap­pens. Enforcement head­count and bud­get should be re­al­lo­cated ac­cord­ingly, away from chas­ing event-con­tract nov­elty and to­ward the mar­kets whose proper func­tion­ing American house­holds de­pend on. A hol­lowed-out agency is a cap­tured agency. The cur­rent re­source im­bal­ance be­tween reg­u­la­tors and in­dus­try is the sin­gle most im­por­tant en­abler of the abuses de­scribed above.

Bring back the CFPB and point it at con­sumer crypto. Rehire the bu­reau to pre-2024 strength, re­open the con­sumer-com­plaints por­tal, and put the ma­jor re­tail crypto on-ramps un­der the same su­per­vi­sion the bu­reau al­ready runs over mort­gage ser­vicers and pay­day lenders. Go af­ter the de­cep­tive mar­ket­ing of re­tail yield prod­ucts, the buried fees and re­demp­tion traps on sta­ble­coins sold to Americans, and the con­sumer-lend­ing wreck­age of the Celsius, Voyager, and BlockFi fam­ily. There is noth­ing ex­otic here: a re­tail crypto on-ramp is a con­sumer fi­nan­cial prod­uct, and its pitch to re­tail cus­tomers is al­ready squarely the bu­reau’s busi­ness. The com­plaints data­base is the only real-time pub­lic read on how much re­tail harm is hap­pen­ing and where, and switch­ing it back on is the pre­con­di­tion for mea­sur­ing whether any of the rest is work­ing.

Bring back the CFPB and point it at con­sumer crypto. Rehire the bu­reau to pre-2024 strength, re­open the con­sumer-com­plaints por­tal, and put the ma­jor re­tail crypto on-ramps un­der the same su­per­vi­sion the bu­reau al­ready runs over mort­gage ser­vicers and pay­day lenders. Go af­ter the de­cep­tive mar­ket­ing of re­tail yield prod­ucts, the buried fees and re­demp­tion traps on sta­ble­coins sold to Americans, and the con­sumer-lend­ing wreck­age of the Celsius, Voyager, and BlockFi fam­ily. There is noth­ing ex­otic here: a re­tail crypto on-ramp is a con­sumer fi­nan­cial prod­uct, and its pitch to re­tail cus­tomers is al­ready squarely the bu­reau’s busi­ness. The com­plaints data­base is the only real-time pub­lic read on how much re­tail harm is hap­pen­ing and where, and switch­ing it back on is the pre­con­di­tion for mea­sur­ing whether any of the rest is work­ing.

Keep money is­suance walled off from com­merce and from elected of­fice. Extend the old bank­ing-and-com­merce sep­a­ra­tion to dig­i­tal money. No com­mer­cial com­pany gets to is­sue pay­ment money. No sit­ting elected of­fi­cial gets to is­sue or con­trol a trade­able to­ken. We built the wall be­tween own­ing a bank and own­ing every­thing else in the last cen­tury for rea­sons that only bite harder when the money is pro­gram­ma­ble and global.

Keep money is­suance walled off from com­merce and from elected of­fice. Extend the old bank­ing-and-com­merce sep­a­ra­tion to dig­i­tal money. No com­mer­cial com­pany gets to is­sue pay­ment money. No sit­ting elected of­fi­cial gets to is­sue or con­trol a trade­able to­ken. We built the wall be­tween own­ing a bank and own­ing every­thing else in the last cen­tury for rea­sons that only bite harder when the money is pro­gram­ma­ble and global.

Unwind the TRUMP coin. Congress passes a law, ap­plied go­ing for­ward, that gives any sit­ting elected of­fi­cial who holds, spon­sors, or takes roy­al­ties on a trade­able to­ken ninety days to di­vest. Until they do, the as­sets go into a court-su­per­vised es­crow and get sold off in a struc­tured sale that can­not qui­etly hand con­trol to a rel­a­tive, an af­fil­i­ated shell, or one of the orig­i­nal in­sid­ers on the other side of the is­suer.

Unwind the TRUMP coin. Congress passes a law, ap­plied go­ing for­ward, that gives any sit­ting elected of­fi­cial who holds, spon­sors, or takes roy­al­ties on a trade­able to­ken ninety days to di­vest. Until they do, the as­sets go into a court-su­per­vised es­crow and get sold off in a struc­tured sale that can­not qui­etly hand con­trol to a rel­a­tive, an af­fil­i­ated shell, or one of the orig­i­nal in­sid­ers on the other side of the is­suer.

Make crypto po­lit­i­cal money show its face. The FEC should re­quire any con­tri­bu­tion routed through crypto to come through a reg­is­tered ex­change or cus­to­dian that has run the same KYC check a bank runs on a wire of the same size. Money ar­riv­ing from an un­hosted wal­let, a mixer, or any­where out­side that perime­ter is in­el­i­gi­ble and gets re­turned. The draft­ing trick mat­ters: write it as a dis­clo­sure rule, not a ban. Courts strike down lim­its on who is al­lowed to give; they up­hold rules about dis­clos­ing who gave, and dis­clo­sure gets you to the same place. Right now crypto-aligned PACs are tak­ing in enor­mous sums whose real own­ers hide be­hind wal­lets, tum­blers, and off­shore ex­changes, money that would never clear the dis­clo­sure bar the rest of cam­paign fi­nance takes for granted.

Make crypto po­lit­i­cal money show its face. The FEC should re­quire any con­tri­bu­tion routed through crypto to come through a reg­is­tered ex­change or cus­to­dian that has run the same KYC check a bank runs on a wire of the same size. Money ar­riv­ing from an un­hosted wal­let, a mixer, or any­where out­side that perime­ter is in­el­i­gi­ble and gets re­turned. The draft­ing trick mat­ters: write it as a dis­clo­sure rule, not a ban. Courts strike down lim­its on who is al­lowed to give; they up­hold rules about dis­clos­ing who gave, and dis­clo­sure gets you to the same place. Right now crypto-aligned PACs are tak­ing in enor­mous sums whose real own­ers hide be­hind wal­lets, tum­blers, and off­shore ex­changes, money that would never clear the dis­clo­sure bar the rest of cam­paign fi­nance takes for granted.

Break up the ver­ti­cally in­te­grated crypto ex­change. Every crypto ex­change is a ver­ti­cally in­te­grated stack of con­flicts of in­ter­est. On a nor­mal ex­change the jobs are split among sep­a­rate firms, by law, so that none of them can trade against the cus­tomer: the ex­change that matches the or­ders, the bro­ker that rep­re­sents the cus­tomer, the mar­ket maker that quotes the prices, the clear­ing­house that set­tles the trades, the cus­to­dian that holds the as­sets, the is­suer whose se­cu­rity is listed, and the au­di­tor that checks the books are all dif­fer­ent com­pa­nies. No such sep­a­ra­tion ex­ists in crypto. One firm is the ex­change, the bro­ker, the mar­ket maker, the clear­ing­house, the cus­to­dian, the is­suer of its own coin, and of­ten its own au­di­tor, all at once, list­ing to­kens its in­sid­ers hold and quot­ing the prices on its own book while sit­ting on every cus­tomer’s as­sets. Two rules be­gin to pull that apart. No venue may list a to­ken its ex­ec­u­tives, own­ers, or their po­lit­i­cal pa­trons hold above a to­ken amount, the list­ing dis­ci­pline the SEC has run on the stock ex­changes for ninety years. And the firms mak­ing mar­kets on those venues must reg­is­ter like mar­ket mak­ers every­where else, with the cap­i­tal, sur­veil­lance, and ex­am­iner that crypto mar­ket mak­ing has got­ten rich avoid­ing. Every nor­mal venue al­ready lives un­der both. That crypto lives un­der nei­ther is the clear­est sin­gle tell that the over­sight is the­ater.

Break up the ver­ti­cally in­te­grated crypto ex­change. Every crypto ex­change is a ver­ti­cally in­te­grated stack of con­flicts of in­ter­est. On a nor­mal ex­change the jobs are split among sep­a­rate firms, by law, so that none of them can trade against the cus­tomer: the ex­change that matches the or­ders, the bro­ker that rep­re­sents the cus­tomer, the mar­ket maker that quotes the prices, the clear­ing­house that set­tles the trades, the cus­to­dian that holds the as­sets, the is­suer whose se­cu­rity is listed, and the au­di­tor that checks the books are all dif­fer­ent com­pa­nies. No such sep­a­ra­tion ex­ists in crypto. One firm is the ex­change, the bro­ker, the mar­ket maker, the clear­ing­house, the cus­to­dian, the is­suer of its own coin, and of­ten its own au­di­tor, all at once, list­ing to­kens its in­sid­ers hold and quot­ing the prices on its own book while sit­ting on every cus­tomer’s as­sets. Two rules be­gin to pull that apart. No venue may list a to­ken its ex­ec­u­tives, own­ers, or their po­lit­i­cal pa­trons hold above a to­ken amount, the list­ing dis­ci­pline the SEC has run on the stock ex­changes for ninety years. And the firms mak­ing mar­kets on those venues must reg­is­ter like mar­ket mak­ers every­where else, with the cap­i­tal, sur­veil­lance, and ex­am­iner that crypto mar­ket mak­ing has got­ten rich avoid­ing. Every nor­mal venue al­ready lives un­der both. That crypto lives un­der nei­ther is the clear­est sin­gle tell that the over­sight is the­ater.

Turn the OFAC sanc­tions ma­chine on the off­shore ex­changes, and stop treat­ing it as a tool of last re­sort. Every lever above pre­sumes a firm the United States can reach. The largest venues are built pre­cisely so that it can­not, in­cor­po­rated in a ju­ris­dic­tion that sells li­censes to any­one, set­tling through a chain of shells whose only pur­pose is to keep a sub­poena from ever ar­riv­ing. Against a firm struc­tured to be judg­ment-proof, a CFTC rule­mak­ing or an OCC re­vo­ca­tion is a let­ter to an ad­dress that does not ex­ist. There is one power in the fed­eral toolkit built for an ad­ver­sary be­yond the reach of or­di­nary process, the one Treasury has spent decades per­fect­ing against ter­ror fi­nanciers, car­tels, and hos­tile regimes. OFAC, un­der the emer­gency au­thor­ity Congress al­ready granted in IEEPA, can des­ig­nate an off­shore ex­change or opaque is­suer as an SDN, freeze every dol­lar as­set it touches, and make it a fed­eral crime for any American to trans­act with it. Because the dol­lar is the rail these firms ul­ti­mately set­tle on, that is not a fine to be lit­i­gated for a decade. It is the end of the com­pany. So let me put it as plainly as the lan­guage of fi­nan­cial reg­u­la­tion has been re­luc­tant to. An off­shore ex­change that know­ingly farms American re­tail, laun­ders the pro­ceeds of in­sider trad­ing on the death of for­eign heads of state, and con­verts a hos­tile sov­er­eign wealth fund’s cap­i­tal into in­flu­ence over a sit­ting pres­i­dent is not a reg­u­lated en­tity out of com­pli­ance. It is a hos­tile for­eign ac­tor op­er­at­ing against the United States and its cit­i­zens, and it should be treated as one. The in­stinct to hold the sanc­tions weapon in re­serve for the gravest emer­gen­cies be­longs to a world these firms have al­ready left. They have de­clared, by their own cor­po­rate struc­ture, that they in­tend to op­er­ate be­yond the law’s reach, and we should take them at their word. The ob­jec­tive is not to nudge their be­hav­ior or ex­tract a set­tle­ment. It is to des­ig­nate the worst of­fend­ers and sur­gi­cally de­stroy them as go­ing con­cerns, one SDN list­ing at a time, un­til the off­shore model it­self reads as a death sen­tence rather than an ar­bi­trage. Treasury al­ready does ex­actly this to en­ti­ties it has named en­e­mies of the state. The only thing miss­ing is the de­ci­sion to put these com­pa­nies where they have long since earned their place. And the de­ci­sion is the President’s alone. Like the OCC re­vo­ca­tion, this needs no tri­fecta and no new statute: a Democratic pres­i­dent can de­clare the na­tional emer­gency that IEEPA re­quires, the same in­stru­ment that an­chors the Iran, Russia, and car­tel pro­grams, and di­rect Treasury to be­gin des­ig­nat­ing on day one. That it does not wait on Congress does not mean it goes un­chal­lenged. This is the most ag­gres­sive item on the list, and it would be fought hard, on First Amendment grounds, on due process, and un­der the ma­jor-ques­tions doc­trine. The Tornado Cash lit­i­ga­tion, where the Fifth Circuit held that im­mutable smart-con­tract code was not property” OFAC could block, is the prece­dent a chal­lenger would build on, and the line be­tween sanc­tion­ing a com­pany and sanc­tion­ing soft­ware is ex­actly where that fight gets de­cided. None of this is dis­qual­i­fy­ing; it means the des­ig­na­tions have to be drawn around en­ti­ties and con­duct rather than code, and the ad­min­is­tra­tion has to be pre­pared to lit­i­gate them. It is the rare item on this list that does not wait on Congress at all, even if it does wait on the courts.

Turn the OFAC sanc­tions ma­chine on the off­shore ex­changes, and stop treat­ing it as a tool of last re­sort. Every lever above pre­sumes a firm the United States can reach. The largest venues are built pre­cisely so that it can­not, in­cor­po­rated in a ju­ris­dic­tion that sells li­censes to any­one, set­tling through a chain of shells whose only pur­pose is to keep a sub­poena from ever ar­riv­ing. Against a firm struc­tured to be judg­ment-proof, a CFTC rule­mak­ing or an OCC re­vo­ca­tion is a let­ter to an ad­dress that does not ex­ist. There is one power in the fed­eral toolkit built for an ad­ver­sary be­yond the reach of or­di­nary process, the one Treasury has spent decades per­fect­ing against ter­ror fi­nanciers, car­tels, and hos­tile regimes. OFAC, un­der the emer­gency au­thor­ity Congress al­ready granted in IEEPA, can des­ig­nate an off­shore ex­change or opaque is­suer as an SDN, freeze every dol­lar as­set it touches, and make it a fed­eral crime for any American to trans­act with it. Because the dol­lar is the rail these firms ul­ti­mately set­tle on, that is not a fine to be lit­i­gated for a decade. It is the end of the com­pany. So let me put it as plainly as the lan­guage of fi­nan­cial reg­u­la­tion has been re­luc­tant to. An off­shore ex­change that know­ingly farms American re­tail, laun­ders the pro­ceeds of in­sider trad­ing on the death of for­eign heads of state, and con­verts a hos­tile sov­er­eign wealth fund’s cap­i­tal into in­flu­ence over a sit­ting pres­i­dent is not a reg­u­lated en­tity out of com­pli­ance. It is a hos­tile for­eign ac­tor op­er­at­ing against the United States and its cit­i­zens, and it should be treated as one. The in­stinct to hold the sanc­tions weapon in re­serve for the gravest emer­gen­cies be­longs to a world these firms have al­ready left. They have de­clared, by their own cor­po­rate struc­ture, that they in­tend to op­er­ate be­yond the law’s reach, and we should take them at their word. The ob­jec­tive is not to nudge their be­hav­ior or ex­tract a set­tle­ment. It is to des­ig­nate the worst of­fend­ers and sur­gi­cally de­stroy them as go­ing con­cerns, one SDN list­ing at a time, un­til the off­shore model it­self reads as a death sen­tence rather than an ar­bi­trage. Treasury al­ready does ex­actly this to en­ti­ties it has named en­e­mies of the state. The only thing miss­ing is the de­ci­sion to put these com­pa­nies where they have long since earned their place. And the de­ci­sion is the President’s alone. Like the OCC re­vo­ca­tion, this needs no tri­fecta and no new statute: a Democratic pres­i­dent can de­clare the na­tional emer­gency that IEEPA re­quires, the same in­stru­ment that an­chors the Iran, Russia, and car­tel pro­grams, and di­rect Treasury to be­gin des­ig­nat­ing on day one. That it does not wait on Congress does not mean it goes un­chal­lenged. This is the most ag­gres­sive item on the list, and it would be fought hard, on First Amendment grounds, on due process, and un­der the ma­jor-ques­tions doc­trine. The Tornado Cash lit­i­ga­tion, where the Fifth Circuit held that im­mutable smart-con­tract code was not property” OFAC could block, is the prece­dent a chal­lenger would build on, and the line be­tween sanc­tion­ing a com­pany and sanc­tion­ing soft­ware is ex­actly where that fight gets de­cided. None of this is dis­qual­i­fy­ing; it means the des­ig­na­tions have to be drawn around en­ti­ties and con­duct rather than code, and the ad­min­is­tra­tion has to be pre­pared to lit­i­gate them. It is the rare item on this list that does not wait on Congress at all, even if it does wait on the courts.

The hon­est goal, stated or not, is the out­come that has fol­lowed every time a reg­u­la­tory perime­ter fi­nally closes around an in­dus­try built on break­ing the rules: most of it does not sur­vive con­tact with real su­per­vi­sion, and that is the point, not a side ef­fect. The last ad­min­is­tra­tion’s mis­take was to try and draw the perime­ter so that some firms could sur­vive in­side it. Maybe we should­n’t do that next time.

What Can Be Done Soon

All of which pre­sup­poses the po­lit­i­cal con­di­tions un­der which any of it can be en­acted, and none of those con­di­tions cur­rently ex­ist. The full plat­form would, in the end, take uni­fied gov­ern­ment. But that should not be the or­ga­niz­ing as­sump­tion, be­cause the tri­fecta is the least re­li­able thing to plan around and most of what mat­ters does not wait on it. A Democratic House alone, a Democratic Senate alone, or ei­ther cham­ber’s com­mit­tees, opens a spe­cific set of levers the cur­rent Congress is choos­ing not to touch. None of them sub­sti­tutes for the com­pre­hen­sive bill. Each com­pounds in the mean­time, and each makes that bill eas­ier to pass if the day for it ever comes.

Committee over­sight is the most un­der­used lever and the one with the short­est ac­ti­va­tion time­line. A Democratic House re­stores Financial Services, Oversight, and Judiciary ju­ris­dic­tion over the TRUMP coin, The Family’s sta­ble­coin op­er­a­tions, the Binance USD1 set­tle­ment, and the chain of for­eign-wal­let pur­chasers iden­ti­fied in the pub­lic re­port­ing. Subpoenas can com­pel the records the cur­rent ma­jor­ity has cho­sen not to re­quest. Depositions can put Family mem­bers and coun­ter­par­ties un­der oath on ques­tions of ben­e­fi­cial own­er­ship, pay­ment for ac­cess, and for­eign-source funds. The in­ves­tiga­tive record built in 2027 and 2028 be­comes the doc­u­men­tary base a fu­ture ad­min­is­tra­tion will draw on, and it ex­ists whether or not this House chooses to act on it.

The House alone orig­i­nates ap­pro­pri­a­tions, and even a one-cham­ber ma­jor­ity gives Democrats real lever­age over spe­cific agency con­duct. Riders deny­ing fund­ing for the CFTCs ac­com­mo­da­tion of event-con­tract plat­forms, con­di­tion­ing the SECs bud­get on the re­sump­tion of the crypto cases the cur­rent chair has dropped, and bar­ring Treasury from spend­ing ap­pro­pri­ated funds on the worst pieces of GENIUS Act im­ple­men­ta­tion are all avail­able at the bill-orig­i­na­tion stage and tend to sur­vive con­fer­ence ne­go­ti­a­tion, be­cause the al­ter­na­tive is a con­tin­u­ing res­o­lu­tion or a shut­down the ma­jor­ity is not in a po­si­tion to want.

Senate con­fir­ma­tion is the only check on per­son­nel that does not re­quire new leg­is­la­tion. A Democratic Senate, or even a Democratic mi­nor­ity ca­pa­ble of hold­ing nom­i­nees in com­mit­tee, de­nies the ad­min­is­tra­tion the peo­ple it needs to ex­tend the reg­u­la­tory ac­com­mo­da­tion fur­ther. The rel­e­vant Treasury, bank­ing-reg­u­la­tor, and SEC and CFTC seats turn over on stag­gered sched­ules through the re­main­der of the term. A Senate that uses the role with the se­ri­ous­ness Senate Republicans showed against Obama-era nom­i­nees will pro­duce a mea­sur­able slow­down in the rate at which crypto-friendly ap­pointees clear the cham­ber.

A hand­ful of pieces of the com­pre­hen­sive agenda are, in the­ory, move­able through the cur­rent Congress on a bi­par­ti­san ba­sis if nar­rowly drawn, al­though the po­lit­i­cal con­di­tions for bi­par­ti­san ac­tion on any­thing that em­bar­rasses the pres­i­dent are un­likely to ma­te­ri­al­ize on the time­line any­one needs. A stand­alone bill pro­hibit­ing any sit­ting elected of­fi­cial from is­su­ing, spon­sor­ing, or re­ceiv­ing roy­al­ties on a trade­able to­ken, paired with the di­vesti­ture re­quire­ment de­scribed in the plat­form plank, polls in the high sev­en­ties and would, in a health­ier in­sti­tu­tional en­vi­ron­ment, at­tract the hand­ful of Republican sen­a­tors who face com­pet­i­tive 2028 re­elec­tions and whose con­stituents do not per­son­ally ben­e­fit from de­fend­ing The Family’s prod­ucts. The FEC dis­clo­sure rule on crypto con­tri­bu­tions be­longs in the same cat­e­gory. The con­flict-of-in­ter­est rule on ex­change self-deal­ing is harder. None of these need White House sup­port if they can be at­tached to a must-pass ve­hi­cle, and the Defense Authorization Act and the year-end ap­pro­pri­a­tions om­nibus are the ob­vi­ous can­di­dates each cy­cle, but the re­al­is­tic ex­pec­ta­tion is that the only bills that will ac­tu­ally move are the ones that sur­vive the test of be­ing un­em­bar­rass­ing to The Family.

A Democratic House or Senate alone is also suf­fi­cient to pre­vent the next round of GENIUS-style leg­is­la­tion from be­ing en­acted. The in­dus­try is prepar­ing a 2027 push to ex­tend the frame­work to ad­di­tional dig­i­tal-as­set classes, and the ex­ist­ing GENIUS pro­vi­sions are them­selves a tar­get for fur­ther ex­pan­sion. Single-chamber con­trol is suf­fi­cient to deny those ve­hi­cles the votes they re­quire. Holding the line is it­self a sub­stan­tive pol­icy vic­tory.

The com­pre­hen­sive bill is a dif­fer­ent mat­ter, and here I will be hon­est about the odds. Full re­peal of the GENIUS Act and the rest of the plat­form takes uni­fied gov­ern­ment, but uni­fied gov­ern­ment is the easy part to imag­ine. The hard part is a Democratic Party that stays uni­fied long enough to use it. Picture the ide­al­ized ver­sion: a tri­fecta in 2029, the whole party lined up be­hind a sin­gle co­her­ent crypto plank, lead­er­ship will­ing to spend real cap­i­tal on it in the first hun­dred days. I have watched this party long enough to doubt it can sum­mon that kind of dis­ci­pline. Its na­tive con­di­tion is di­vi­sion, and a fi­nan­cial-reg­u­la­tion fight with se­ri­ous money on the other side is ex­actly the sort of thing it talks it­self out of. But I am not go­ing to rule it out, be­cause par­ties do oc­ca­sion­ally find unity and lead­er­ship in the same decade, and when they do the agenda above is sit­ting there ready. Until then the hon­est path is par­tial: de­fund the worst of GENIUS through ap­pro­pri­a­tions, build the record through the over­sight com­mit­tees, and use both to make the case the com­pre­hen­sive bill will even­tu­ally need.

The work that does not need a tri­fecta holds the line and builds the con­stituency for the work that does. The po­lit­i­cal case is harder to as­sem­ble than the tech­ni­cal one, but the ma­te­ri­als are pre­sent. Every voter in this coun­try knows a Mike. He is the nephew who put his life sav­ings into a meme coin on a friend’s rec­om­men­da­tion and watched it go to zero in a week­end, and who has since con­cluded that the con­ven­tional fi­nan­cial sys­tem is rigged against him and that the only re­main­ing path to dig­nity is one more lever­aged bet. The Mike of the open­ing pages was a com­pos­ite; by now he sits in American fam­i­lies across every in­come bracket and every re­gion, and the con­stituency for restor­ing the reg­u­la­tory perime­ter is cor­re­spond­ingly broader than the polling on crypto pol­icy sug­gests, be­cause the polling asks the wrong ques­tion. It asks about to­ken reg­u­la­tion. The right ques­tion is what should be done about an in­dus­try that has con­verted the house­hold fi­nan­cial sys­tem into a slot ma­chine, and the an­swer to that ques­tion polls dif­fer­ently. A party that builds its po­lit­i­cal case from that con­stituency earns the in­sti­tu­tional lat­i­tude re­quired to do the tech­ni­cal work in the com­mit­tee rooms and agency desks where con­se­quen­tial fi­nan­cial reg­u­la­tion gets writ­ten.

Each of these mea­sures ap­plies an ex­ist­ing reg­u­la­tory prin­ci­ple to in­stru­ments that have es­caped it for too long. They have not been en­acted be­cause the po­lit­i­cal econ­omy of the crypto in­dus­try has, for the mo­ment, made them po­lit­i­cally im­pos­si­ble. That po­lit­i­cal econ­omy can be un­blocked, but only by a coali­tion will­ing to name what it sees and to make the case in the lan­guage of the val­ues the in­dus­try has spent a decade steal­ing from us. Pro-markets. Pro-democracy. Anti-corruption. A coali­tion that sup­plies all three wins, and the casino closes.

A Democratic Party that re­takes uni­fied gov­ern­ment, and stays uni­fied long enough to use it, will find this plat­form al­ready aligned with the con­stituency it needs to mo­bi­lize. That con­stituency has been told for too long that the fi­nan­cial­iza­tion of every re­main­ing cor­ner of or­di­nary life is in­no­va­tion, while gro­ceries cost more un­der the pres­i­den­t’s tar­iffs, gaso­line costs more un­der his wars, and sons’ fu­tures are lost on meme coins. We don’t have to live an era of cen­trally-planned Soviet-style five-minute plans is­sued by Truth Social post. The an­swer to this un­bri­dled mad­ness from the Democratic Party should be quite clear: Close the casino. Restaff the reg­u­la­tory agen­cies. Unwind the TRUMP coin. Differentiate mar­kets from gam­bling. We don’t have to live in the Bad Place any­more.

FUTO Swipe

swipe.futo.tech

Fast, ac­cu­rate swipe typ­ing sys­tem. Use it to­day in FUTO Keyboard, our fully of­fline Android key­board app. Or down­load the mod­els and build with it.

This is a server­side demo to keep this web­page small. In pro­duc­tion, it runs on-de­vice, with much lower la­tency.

For a long time, good mo­bile swipe typ­ing was locked be­hind pri­vacy-in­va­sive key­board apps or un­li­censed pri­vate li­braries.

FUTO Swipe is our fam­ily of open mod­els and al­go­rithms that aims to solve this prob­lem. We de­vel­oped this pri­mar­ily for FUTO Keyboard, but we also wel­come the broader com­mu­nity to make use of the FUTO Swipe mod­els. As this has been a long-term in­vest­ment for us, we ask that an at­tri­bu­tion is made vis­i­ble to end-users. Read li­cense

Dataset

In August 2024, we launched a dataset col­lec­tion ef­fort on the swipe.futo.org do­main to col­lect QWERTY English swipes. Users would vol­un­tar­ily visit the web­page on their mo­bile phone and be given in­struc­tions and in­for­ma­tion about the dataset. After con­sent­ing, they would be given sen­tences, pri­mar­ily from Wikipedia, and would be asked to swipe them word-by-word.

In the end, this pro­duced over 1 mil­lion swipes. We fil­tered out a small set of low-qual­ity swipes. In March 2025, we re­leased a dataset of 1 mil­lion swipes un­der the MIT li­cense, and it is avail­able to­day on HuggingFace.

We made heavy use of this data to train our mod­els and to eval­u­ate dif­fer­ent swipe typ­ing sys­tems.

Models

Our ar­chi­tec­ture in­cludes three model types.

The Encoder model is a uni­ver­sal lay­out-ag­nos­tic and lan­guage-ag­nos­tic, and is used for mak­ing swipe typ­ing pre­dic­tions in the gen­eral case. However, it does not of­fer cut­ting-edge ac­cu­racy.

The ContextLM model is a very small lan­guage model that is trained for a sin­gle lan­guage. It’s used to im­prove the qual­ity of pre­dic­tions by elim­i­nat­ing non­sen­si­cal words given the pre­ced­ing words in the sen­tence. It only re­quires text data for train­ing.

Finally, the de­coder is a lan­guage-spe­cific and lay­out-spe­cific model that learns lay­out’s pe­cu­liar­i­ties and achieves lead­ing ac­cu­racy. As it re­quires swipe typ­ing data for a spe­cific lay­out and lan­guage for train­ing, we only have a QWERTY English de­coder for now.

With all 3 mod­els and with a beam width of 300, we achieve a top-4 fail rate of only ~4% on our test set. Ignoring out-of-vo­cab­u­lary cases, the er­ror rate is be­low 1%.

Note: These num­bers heav­ily de­pend on the bench­mark, so real-world use may vary, but we be­lieve we match big tech’s key­boards.

Footprint

The en­coder model is just 635,140 pa­ra­me­ters, and the de­coder is 304,155 ex­tra. The biggest one is the ContextLM at 1.5 mil­lion, but 1.1 mil­lion of that is just em­bed­dings. This brings us to 1,364,271 ac­tive pa­ra­me­ters, or 2,494,767 to­tal pa­ra­me­ters.

This means the foot­print of the mod­els are very small, and the model can run on low-end de­vices in mil­lisec­onds. In ad­di­tion, the en­vi­ron­men­tal costs in­volved in train­ing the mod­els were also very low, be­cause we never needed more than 1 work­sta­tion GPU!

C++ Library

The mod­els them­selves are only half of the story when go­ing from a swipe to word pre­dic­tions. The model pre­dic­tions are not very use­ful on their own and it’s nec­es­sary to per­form a dic­tio­nary-con­strained beam search to score a set of words and find the most likely can­di­dates.

For this, we re­lease swipe-li­brary, a li­brary writ­ten in C++ that han­dles the en­tire in­fer­ence, de­cod­ing, and beam search part so you can eas­ily go from swipe paths to word pre­dic­tions.

Make some­thing cool!

…or on a lap­top track­pad

Want to build with FUTO Swipe?

The FUTO Swipe mod­els are avail­able un­der the FUTO Model License, and the in­fer­ence li­brary is un­der GPL. We are work­ing on a pa­per that will de­tail more on the train­ing and ar­chi­tec­ture.

The Map — Jerry's Map

www.jerrysmap.com

Landing

The Map

Exhibitions

Videos

Sales

About/Contact

.

What is it?

In the sum­mer of 1963 Jerry be­gan draw­ing a map of an imag­i­nary city. The work started as a doo­dle done in the spare time he had while work­ing at a te­dious job. He con­tin­ued to add to that map through the years un­til, in 1983, he set it aside to put his free time to other use.

It was stored in the at­tic of his home in Cold Spring, New York. It gath­ered dust. Jerry’s son, Henry, found it one day while rum­mag­ing around. He brought it down and asked what it was. Seeing it then trig­gered Jerry to dust it off and con­tinue the pro­ject.

Years later, the Map is now a two-di­men­sional virtual world” art pro­ject which is now com­prised of over 4000 in­di­vid­ual eight by ten inch pan­els. When as­sem­bled, these pan­els form an ap­prox­i­mate cir­cle. The panel lo­ca­tions are de­fined by N, S, E, and W co­or­di­nates that orig­i­nate at the cen­ter of the cir­cle. The lo­ca­tions in the ma­trix do not change, but the pan­els them­selves are con­tin­u­ally re­vised based on in­struc­tions drawn from the artist’s cus­tom deck of cards.

Its ex­e­cu­tion, in acrylic, marker, col­ored pen­cil, ink, col­lage, and inkjet print on heavy pa­per, is dic­tated by the in­ter­play be­tween an elab­o­rate set of rules and ran­domly gen­er­ated in­struc­tions.

Jerry main­tained a blog about the pro­ject for many years. He no longer up­dates it, but the old posts are still avail­able on Blogger. And also be sure to check out r/​jer­rymap­ping,  an in­ter­est­ing sub­red­dit de­voted to map mak­ing in the style of Jerry’s Map.

Time lapse show­ing 20 years of changes to an 8 by 16 panel por­tion of the map. Sharp eyes will note that there are not ac­tu­ally 20 changes in this an­i­ma­tion. This is be­cause for some of those years, no cards were drawn that called for changes on these par­tic­u­lar pan­els.

The Creative Process

The Card Deck

The en­tire process is dri­ven by in­struc­tions on a card drawn from a spe­cial deck cre­ated by the artist. Each cy­cle be­gins only when the artist’s tasks from the pre­vi­ous card are com­plete. This could take any­where from a few min­utes to a few days.

The cards were first in­tro­duced as a sim­ple ran­dom num­ber gen­er­a­tor. When Jerry was first cre­at­ing the map it was sim­ple enough to work sheet to sheet, but as the map grew to hun­dreds of in­di­vid­ual pan­els it be­came very te­dious to make his way through the set.

I wanted to move through the stack faster, and the eas­i­est ran­dom num­ber sys­tem I could come up with was a deck of cards. I’d draw a card and move down that many pan­els in the stack.”

As Jerry be­gan work­ing on ways of sys­tem­atiz­ing the process of work­ing on the map he be­gan to in­cor­po­rate in­struc­tions on the cards. The con­tem­po­rary deck of cards has been adapted from play­ing cards and the to­tal num­ber varies as cards have been added, re­vised, and re­moved. Cur­rently there are ap­prox­i­mately 100 cards.

Sometimes I have feel­ings about the deck of cards. There’s a mes­sage in those cards. There’s no big man with a beard who has or­dered the cards, but I’m very in­ter­ested in see­ing what comes out of it. There’s a re­al­ity in there wait­ing to get out. It’s the map’s fu­ture pre­dic­tor and as it is al­ways chang­ing its alive…My hand puts the paint on the pa­per, I’ll step back and look at the sheets as though I was­n’t the per­pe­tra­tor but merely the ob­server.”

Interpreting the Cards

The in­struc­tions on each card have these three el­e­ments:

Card in­struc­tions for the Artist are in these five gen­eral cat­e­gories:

Next higher di­men­sion (void, red, black, zig­gu­rat)Spat­ter paint four con­tigu­ous pan­els (current panel plus the 3 clos­est to the cen­ter of that panel)Cre­ate a new seed pan­elMix a new paint col­orScreen print the 9 con­tigu­ous pan­els (current panel plus 8 sur­round­ing pan­els)

Next higher di­men­sion (void, red, black, zig­gu­rat)

Next higher di­men­sion (void, red, black, zig­gu­rat)

Spatter paint four con­tigu­ous pan­els (current panel plus the 3 clos­est to the cen­ter of that panel)

Spatter paint four con­tigu­ous pan­els (current panel plus the 3 clos­est to the cen­ter of that panel)

Create a new seed panel

Create a new seed panel

Mix a new paint color

Mix a new paint color

Screen print the 9 con­tigu­ous pan­els (current panel plus 8 sur­round­ing pan­els)

Screen print the 9 con­tigu­ous pan­els (current panel plus 8 sur­round­ing pan­els)

Update and copy the mas­ter (map el­e­ment) on the top of the stack of mas­tersCopy the cur­rent panel on la­bel pa­per so por­tions can be used in col­lage

Update and copy the mas­ter (map el­e­ment) on the top of the stack of mas­ters

Update and copy the mas­ter (map el­e­ment) on the top of the stack of mas­ters

Copy the cur­rent panel on la­bel pa­per so por­tions can be used in col­lage

Copy the cur­rent panel on la­bel pa­per so por­tions can be used in col­lage

Use a patch­work of re-used printed pa­per­board (e.g ce­real boxes)Use a photo from the artist’s file­sUse a lu­men print (objects scanned and printed)

Use a patch­work of re-used printed pa­per­board (e.g ce­real boxes)

Use a patch­work of re-used printed pa­per­board (e.g ce­real boxes)

Use a photo from the artist’s files

Use a photo from the artist’s files

Use a lu­men print (objects scanned and printed)

Use a lu­men print (objects scanned and printed)

Add or sub­tract from the num­ber on a spec­i­fied num­ber cards (e.g. add 3 to the num­ber on the last 2 cards”)Elim­i­nate a card from or add a card to the deck (eliminated cards are retired” for­ever, but the in­struc­tions are kept on a list for pos­si­ble re-use on a fu­ture card)Copy and re­tire the last 9 cards (physical cards are re­tired but the copies stay in the deck)Shuf­fle the deck

Add or sub­tract from the num­ber on a spec­i­fied num­ber cards (e.g. add 3 to the num­ber on the last 2 cards”)

Add or sub­tract from the num­ber on a spec­i­fied num­ber cards (e.g. add 3 to the num­ber on the last 2 cards”)

Eliminate a card from or add a card to the deck (eliminated cards are retired” for­ever, but the in­struc­tions are kept on a list for pos­si­ble re-use on a fu­ture card)

Eliminate a card from or add a card to the deck (eliminated cards are retired” for­ever, but the in­struc­tions are kept on a list for pos­si­ble re-use on a fu­ture card)

Copy and re­tire the last 9 cards (physical cards are re­tired but the copies stay in the deck)

Copy and re­tire the last 9 cards (physical cards are re­tired but the copies stay in the deck)

Shuffle the deck

Shuffle the deck

Do a blog en­tryDo a jour­nal en­try (also print and make col­lage ma­te­r­ial of the en­try)Do a Reddit post­Cal­cu­late the sales value of the en­tire set of pan­els (based lat­est eBay sale)

Do a blog en­try

Do a blog en­try

Do a jour­nal en­try (also print and make col­lage ma­te­r­ial of the en­try)

Do a jour­nal en­try (also print and make col­lage ma­te­r­ial of the en­try)

Do a Reddit post

Do a Reddit post

Calculate the sales value of the en­tire set of pan­els (based lat­est eBay sale)

Calculate the sales value of the en­tire set of pan­els (based lat­est eBay sale)

Card in­struc­tions for the Artist’s Helper are re­lated to:

The card in­di­cates the num­ber of pan­els to be scanned and added to the dig­i­tal li­brary.

The card in­di­cates the num­ber of pan­els to be scanned and added to the dig­i­tal li­brary.

The card in­di­cates the num­ber of pan­els to be scanned and added to the dig­i­tal li­brary.

The card asks the helper to sort re­tired pan­els and archive them.

The card asks the helper to sort re­tired pan­els and archive them.

The card asks the helper to sort re­tired pan­els and archive them.

The helper makes copies of the num­ber of cur­rent pan­els in­di­cated on the card, and the orig­i­nal pan­els are re­tired and archived.

The helper makes copies of the num­ber of cur­rent pan­els in­di­cated on the card, and the orig­i­nal pan­els are re­tired and archived.

The helper makes copies of the num­ber of cur­rent pan­els in­di­cated on the card, and the orig­i­nal pan­els are re­tired and archived.

The card asks the helper to up­date the in­ven­tory of the archives.

The card asks the helper to up­date the in­ven­tory of the archives.

The card asks the helper to up­date the in­ven­tory of the archives.

A TYPICAL DAY’S WORK

Jerry draws a card and works through the tasks it de­fines. This video gives some in­sight into what a typ­i­cal day’s work looks like.

The Principles

These are the in­struc­tions and rules which guide the Artist in the cre­ation of the map:

Each card has a large black or red num­ber in an up­per cor­ner. A task” is de­fined as the com­ple­tion of the num­ber of work units as spec­i­fied by the num­ber on the card that is drawn. A work unit is the num­ber of one inch squares to be cov­ered. The num­ber drawn and the ef­fort re­quired can be highly vari­able, so a day’s work could con­sist of one card’s work units, or just a por­tion of one. Work on an in­com­plete work unit con­tin­ues at the next work ses­sion.

Each card has a large black or red num­ber in an up­per cor­ner. A task” is de­fined as the com­ple­tion of the num­ber of work units as spec­i­fied by the num­ber on the card that is drawn. A work unit is the num­ber of one inch squares to be cov­ered. The num­ber drawn and the ef­fort re­quired can be highly vari­able, so a day’s work could con­sist of one card’s work units, or just a por­tion of one. Work on an in­com­plete work unit con­tin­ues at the next work ses­sion.

When a card is drawn you must fol­low the spe­cific in­struc­tions on the card, but those in­struc­tions may be changed for the next time that card is drawn.

When a card is drawn you must fol­low the spe­cific in­struc­tions on the card, but those in­struc­tions may be changed for the next time that card is drawn.

Work di­rec­tion is de­ter­mined by color of the drawn card - black is clock­wise, red is counter-clock­wise.

Work di­rec­tion is de­ter­mined by color of the drawn card - black is clock­wise, red is counter-clock­wise.

Every page has a center” point from which the work em­anates. The center” of the new page is the same as the par­en­t’s.

Every page has a center” point from which the work em­anates. The center” of the new page is the same as the par­en­t’s.

New pan­els are gen­er­ated by draw­ing a new panel” card, or a new panel is re­quired to com­plete a sec­tion of art.

New pan­els are gen­er­ated by draw­ing a new panel” card, or a new panel is re­quired to com­plete a sec­tion of art.

When a new page is added, the new page will use the color of the day”.

When a new page is added, the new page will use the color of the day”.

The lo­ca­tion of the new page is de­ter­mined by plac­ing a com­pass point in the center” of the par­ent page and de­ter­min­ing the clos­est edge of the map (this keeps the map roughly cir­cu­lar and grow­ing gen­er­ally equally in all di­rec­tions).

The lo­ca­tion of the new page is de­ter­mined by plac­ing a com­pass point in the center” of the par­ent page and de­ter­min­ing the clos­est edge of the map (this keeps the map roughly cir­cu­lar and grow­ing gen­er­ally equally in all di­rec­tions).

Master map shows the lo­ca­tions of the pan­els as de­fined by co­or­di­nates.

Master map shows the lo­ca­tions of the pan­els as de­fined by co­or­di­nates.

Colors are more ab­stract and do not nec­es­sar­ily rep­re­sent the phys­i­cal world. Colors may be ap­plied with ei­ther paint or mark­ers, or by us­ing col­lage. The 42 col­ors are con­tin­u­ally remixed to en­sure a spec­trum of paints.

Colors are more ab­stract and do not nec­es­sar­ily rep­re­sent the phys­i­cal world. Colors may be ap­plied with ei­ther paint or mark­ers, or by us­ing col­lage. The 42 col­ors are con­tin­u­ally remixed to en­sure a spec­trum of paints.

The Coming Loop

lucumr.pocoo.org

writ­ten on June 23, 2026

I don’t prompt Claude any­more. I have loops run­ning that prompt Claude and fig­ur­ing out what to do. My job is to write loops. — Boris Cherny

I don’t prompt Claude any­more. I have loops run­ning that prompt Claude and fig­ur­ing out what to do. My job is to write loops.

— Boris Cherny

Over the last months I have watched more and more peo­ple build some­thing on top of cod­ing agents that feels mean­ing­fully dif­fer­ent from just us­ing a cod­ing agent. Some of this hap­pens on top of Pi which is cool to see for sure! The pat­tern is the same every­where though: work is put into a queue of sorts, a ma­chine picks it up, at­tempts it, stops, and then some har­ness de­cides whether that was ac­tu­ally the end.

If not, the har­ness con­tin­ues the same ses­sion, in­jects an­other mes­sage, starts a fresh ses­sion with mod­i­fied con­text, or sends the task to an­other ma­chine. The task stays alive be­yond the point where the model by it­self would nor­mally have said: I am done.”

I think about that type of loop more than I want to ad­mit.

There is al­ready an agent loop in­side every cod­ing agent. The model calls a tool, in­cor­po­rates the re­sult, calls an­other tool, reads a file, ed­its a file, runs tests, and even­tu­ally pro­duces some an­swer. That loop is one we have been quite fa­mil­iar with for a long time. The other loop is the har­ness level loop: the loop out­side the agent loop. That loop is also not new. We have been do­ing ver­sions of this since early Claude Code days, but that loop is be­com­ing ever more pre­sent in agen­tic en­gi­neer­ing and in re­cent weeks it has started to dom­i­nate the Twitter dis­course.

I Am Not Good At This Yet

My cur­rent sta­tus is that I have not had much suc­cess with this way of work­ing for code I deeply care about which turns out to be quite a lot of code.

Part of that is taste and part of it is con­trol. I at­tempt to set a high bar for what I want code to look like, and I want to un­der­stand the code I ship. Under pres­sure, or in a dis­cus­sion with an­other hu­man, I want to be able to ex­plain what the sys­tem does with­out first hav­ing to ask a clanker to ex­plain it to me. Now there is ob­vi­ously a ques­tion if this de­sire to un­der­stand the code is one that I will still have a few years from now. For now I have not moved past the point of com­pre­hen­sion be­ing im­por­tant to me.

Given this de­sire, there is some­thing I lack with my ex­pe­ri­ence of code writ­ten with­out me pay­ing at­ten­tion, par­tic­u­larly from loops. Present-day mod­els tend to pro­duce code that is too de­fen­sive, too com­plex, too lo­cal in its rea­son­ing. They avoid strong in­vari­ants. They add fall­backs in­stead of mak­ing bad states im­pos­si­ble. They du­pli­cate code, in­vent bad ab­strac­tions, and pa­per over un­clear de­sign with more ma­chin­ery. Worse though: I so far see very lit­tle progress of this im­prov­ing. If any­thing, on that front it feels to me that we might even be mak­ing steps in the wrong di­rec­tion. At least for my taste, pre­sent-day hands-off har­nesses like Claude Code with ul­tra­code pro­duce worse code than what we were pro­duc­ing last au­tumn. That’s be­cause Claude Code, with Fable for in­stance will be work­ing un­in­ter­rupted on a prob­lem for thirty min­utes or more, when pre­vi­ously the process would have been much more hu­man in the loop.

Furthermore it’s well un­der­stood that mod­els tend to ob­serve some lo­cal fail­ure and add a lo­cal de­fense. Karpathy men­tioned how they are mortally ter­ri­fied of ex­cep­tions”. In sys­tems with im­por­tant in­vari­ants, es­pe­cially per­sisted data for­mats or core in­fra­struc­ture, the right fix is not handle every mal­formed case.” The right fix is to make the mal­formed case un­rep­re­sentable or im­pos­si­ble to write in the first place. Yet even with a lot of man­ual steer­ing, that type of code does not come out of LLMs nat­u­rally, and even if the code comes out nat­u­rally like that, they will still at­tempt to han­dle now im­pos­si­ble er­rors.

When you take that be­hav­ior and you put it be­hind loops, you tend to am­plify it. If each it­er­a­tion adds an­other small de­fense, the sys­tem slowly be­comes less un­der­stand­able while ap­pear­ing more ro­bust. The more hands-off you are, the more that hap­pens. It also teaches re­ally bad prac­tices when tools like this are given to ju­niors with­out clear guid­ance. Because if you ask them, why they are do­ing all that, they will con­vinc­ingly ar­gue their case.

Where Loops Work

At the same time, it would be dis­hon­est to pre­tend the loop pat­tern does not work be­cause it al­ready works as­ton­ish­ingly well in some do­mains.

Porting code one of them. There are al­ready im­pres­sive ex­am­ples of large au­to­matic port­ing ef­forts, in­clud­ing the re­ported work around mov­ing parts of Bun from Zig to Rust. I have used it with suc­cess my­self to port MiniJinja to Go. Performance ex­plo­rations are an­other case where this works beau­ti­fully. A ma­chine can try ex­per­i­ments, bench­mark them, dis­card fail­ures, and keep search­ing. Security scan­ning fits nat­u­rally too and so does al­most any type of re­search: ask­ing a sys­tem to ex­plore a com­plex prob­lem space and re­port back with­out nec­es­sar­ily com­mit­ting last­ing code. One thing that many of these have in com­mon is that they ei­ther do not gen­er­ate new code, but trans­form code that al­ready ex­ists, or they pro­duce code that in­ten­tion­ally does not have a long shelf life. They ei­ther pro­duce proof of con­cepts or ideas, sur­face find­ings or are more akin to mech­ni­cal trans­for­ma­tion.

I be­lieve that loops that pro­duce ar­ti­facts with­out ne­ces­sity of longevity or that cre­ate some form of clearly ver­i­fi­able mech­ni­cal trans­la­tion mat­ters more than the gen­eral abil­ity of a har­ness to me­chan­i­cally mea­sure a goal. Many suc­cess­ful ap­pli­ca­tions of loops use an­other LLM as a judge or as an or­ches­tra­tor. The mech­ni­cal trans­la­tion case can be ver­i­fied with a bi­nary test case, but it can also be judged by an LLM in­stead!

Claude Code, for in­stance, is in­creas­ingly good at cre­at­ing en­tire ex­per­i­men­tal work­flows that it will then ex­e­cute. Sure, the code it pro­duces is slop, but that’s more the fault of the model than the har­ness not be­ing a good judge on if a step in the work­flow re­sulted in a net im­prove­ment or com­ple­tion.

The har­ness just needs some sig­nal that lets it con­tinue. It does not have to be ob­jec­tive or bi­nary, it just has to be use­ful enough to drive an­other it­er­a­tion.

I ab­solutely love loops al­ready that take the bor­ing parts out of my day to ex­per­i­ment and mea­sure and to give me ideas.

Software As Organism

On the other hand us­ing that same loop­ing method­ol­ogy to write last­ing code does not yet sit well with me. The metaphor I like to reach for is one of mov­ing from soft­ware as a de­ter­min­is­tic ma­chine to soft­ware as an or­gan­ism.

I be­came a soft­ware en­gi­neer in an en­v­iorn­ment that en­cour­aged me to un­der­stand the ma­chine. There was al­ways a layer you could peel off to deepen your un­der­stand­ing. Machines that did not ex­hibit de­ter­min­is­tic ob­serv­able be­hav­ior were maybe ac­cepted, but gen­er­ally seen as not ex­actly op­ti­mal. Software ar­chi­tec­ture-wise, I saw it as de­sire­able to push fur­ther to­wards more de­ter­min­ism rather than less. Likewise the abil­ity to un­der­stand the code has been an un­de­ni­able goal. In prac­tice not al­ways pos­si­ble we still took pride in writ­ing code so that it be­came pos­si­ble even for new en­gi­neers to nav­i­gate com­plex code bases through clever ar­chi­tec­ture. On well de­signed sys­tems there were al­ways en­gi­neers that knew where the in­vari­antes lived, which parts were load-bear­ing and which changes were safe. Ideally all of that was also well doc­u­mented. Where that un­der­stand­ing was lack­ing, it was gen­er­ally re­garded as some­thing to im­prove upon.

Obviously that ideal has al­ways been strained. Many soft­ware sys­tems, es­pe­cially very suc­cess­ful ones had pe­ri­ods where en­gi­neers on the team were able to keep them clean. Large soft­ware sys­tems are not in­fre­quently too big, too dy­namic and too de­pen­dent on ex­ter­nal ser­vices to fit into any­one’s head. Even with­out LLMs we al­ready di­ag­nose dis­trib­uted sys­tems some­what like doc­tors in that we ob­serve symp­toms, form hy­pothe­ses, order more tests”, try some reme­dies, and ob­serve again.

Yet with LLMs we’re push­ing much fur­ther in that di­rec­tion and much quicker. We use them to write the code and we also use them for di­ag­no­sis and rem­edy. There are plenty of en­gi­neers that al­ready live in a world in which the first step af­ter the oc­cur­rence of a pro­duc­tion is­sue is fol­lowed by hav­ing a clanker read logs, pro­pose root causes and proac­tively put up a patch. The re­sult­ing patch is then of­ten picked up by an­other ma­chine that re­views, some­times even land­ing it on main with­out any hu­man su­per­vi­sion.

Obviously that is pow­er­ful and I can­not deny that it sounds ap­peal­ing. But giv­ing in to that idea, par­tic­u­larly with less and less hu­man over­sight means ac­cept­ing that we may no longer un­der­stand the whole sys­tem in the same way. We treat it, we mon­i­tor it, we sta­bi­lize it, but we do not nec­es­sar­ily com­pre­hend it.

I have no doubts that for some soft­ware, that is okay. Not every line of code de­serves hu­man au­thor­ship and worse code might have been writ­ten in the past.

But do I want all soft­ware to be au­thored this way?

You Cannot Quite Opt Out

What’s very un­com­fort­able is that opt­ing out of this fully ma­chine-dri­ven fu­ture may not be an op­tion.

Security is the clear­est ex­am­ple to­day. Even if you do not use loops to build your soft­ware, other peo­ple will use loops against your soft­ware. Attackers will run ma­chines con­tin­u­ously and even if it’s not at­tack­ers, then se­cu­rity re­searchers will and some of that au­to­mated work will throw up dust but also find real is­sues. And both the sig­nal and the noise will come your way at a vol­ume that makes it al­most im­pos­si­ble to deal with un­less you your­self throw a ma­chine at the prob­lem.

Daniel Stenberg’s post about curl’s sum­mer of bliss is a good ex­am­ple of the pres­sure main­tain­ers are al­ready un­der. As far as I know, AI does not play a tremen­dous role in the core de­vel­op­ment of curl to­day. Yet de­spite all of this, main­tain­ers are over­whelmed by re­ports, most of which are now AI-generated ones.

If at­tack­ers and re­porters loop, de­fend­ers will even­tu­ally need to loop too to keep up. Maybe not to write patches di­rectly, maybe just to triage and re­pro­duce and pres­sure will in­crease.

The same is true com­pet­i­tively as some teams will out-build oth­ers through raw speed. Some pro­jects will sud­denly move faster be­cause a tiny group fig­ures out how to or­ches­trate ma­chines ef­fec­tively. Some star­tups will do with five peo­ple what used to re­quire fifty. Some peo­ple might lit­er­ally put a ma­chine against your prod­uct in a loop and ask it to make it like the other one.” And if their users are happy, does it re­ally mat­ter?

Not all soft­ware will be equally af­fected. Some do­mains will pun­ish slop­pi­ness and de­mand trust and re­spon­si­bil­ity, but a lot of soft­ware lives in a world where raw speed, quick ex­per­i­men­ta­tion, and vast cov­er­age mat­ter enor­mously.

Building New Dependencies

The scari­est part to me is that we be­come de­pen­dent on these new ma­chines in new ways. Software has al­ways de­pended on tools. I re­mem­ber the time when I had to pay for com­pil­ers. These new tools are a flash­back to times where cre­at­ing soft­ware came with real costs. But now it’s no longer a one-time pay­ment, it’s a con­stant de­pen­dency. Not just a de­pen­dency on a filled wal­let, but also a cog­ni­tive de­pen­dency.

If a code­base is pro­duced by loops, re­viewed by loops, patched by loops, and kept alive by loops, what hap­pens when you no longer have ac­cess to the same class of sys­tems? What hap­pens when some trade re­stric­tions take away ac­cess to the most pow­er­ful mod­els? What if just the cost be­comes un­bear­able? What if you and your team just lose the last re­main­ing abil­ity to un­der­stand the code with­out us­ing the ma­chine?

We may cre­ate code­bases that are not merely hard to main­tain by hu­mans, but that as­sume ma­chine par­tic­i­pa­tion as part of their main­te­nance model. This is al­ready hap­pen­ing! It’s not hap­pen­ing every­where, and it might not even be hap­pen­ing in ways that are seen as prob­lem­atic, but we see more and more of it. People more and more merge code they can­not fully ex­plain. People lose their abil­ity to cre­ate is­sue re­ports or dis­cuss things in chat, with­out aug­ment­ing or rephras­ing their mes­sages with the con­text pro­vided by a clanker. Too many peo­ple in­creas­ingly rely on a ma­chine to sum­ma­rize or con­tex­tu­al­ize it. More and more do I en­counter peo­ple who con­verse with me through the in­di­rec­tion of an LLM.

Again, maybe that is not even go­ing to be wrong, but it’s a mas­sive change to how we did things.

Future Harnesses

I have lit­tle doubt that this is where things are go­ing but go­ing there will re­quire us to do some­thing about our tool­ing every­where, and not just in the cod­ing agents.

Just or­ches­trat­ing more loops won’t be enough. Better vi­su­al­iza­tions of changes or or­ches­tra­tion or agents will not re­store our un­der­stand­ing. Either we need to find clever ways to jolt the hu­man back into the loop and make the changes of the loops leg­i­ble long term, or we need to find bet­ter ways to com­pose these ever more com­plex sys­tems.

This is also where my think­ing about the role of Pi is chang­ing. Pi has been cau­tious, and I think that cau­tion is good. I do not want a fu­ture where every in­ter­ac­tion turns into an un­con­trolled swarm of ma­chines mak­ing changes I can­not fol­low. I would not want Pi to be­come an un­main­tain­able mess in an ef­fort to win the race to­wards soft­ware that writes it­self and I would not want Pi to pro­mote this type of en­gi­neer­ing ei­ther. At the same time Pi is a har­ness and har­nesses are at the cen­ter of peo­ple run­ning these new types of ex­per­i­ments.

Task queues for cod­ing tasks, or­ches­tra­tion of agents, sub­agents, durable ses­sions will mat­ter more and more. Even those of us who have their reser­va­tions and are not blindly em­brac­ing loops will have to start do­ing those ex­per­i­ments. We need to, be­cause we need to un­der­stand how to make this fu­ture bounded and sur­viv­able.

Controlling Loops

As you can read from this post, I’m very un­easy about this fu­ture. Not cause of fear, but be­cause of cau­tion given ex­pe­ri­ences with this tech­nol­ogy so far.

Adopting the idea of har­ness loops means that the har­ness de­cides when work is fin­ished. In the agent loop, the model even­tu­ally says done” and I re­view. Even be­fore that, I usu­ally steer along the way. I am in­volved and I en­joy learn­ing along the way. In the har­ness op­er­ated loop I’m not sure what my role even is. Even the done” sig­nal loses all mean­ings and just be­comes com­mu­ni­cated to yet an­other ma­chine that judges. My role is re­duced to that of a mes­sen­ger.

Today I do not like much of the code that I see from sys­tems built that way and nei­ther do I en­joy in­ter­act­ing with too much of soft­ware built with AI as­sis­tence. Looping is pow­er­ful but it re­moves re­spon­si­bil­ity more and more, and it at least to­day very much en­cour­ages us to give in to the ma­chine.

And yet I have no doubts that this loop­ing fu­ture is go­ing to be our fu­ture de­spite the fact that I presently re­sent it. I al­ready see as­ton­ish­ingly small teams build­ing at im­pos­si­ble speed and I see code­bases turn­ing more and more into ob­scure and con­fus­ing or­gan­isms that can only be di­ag­nosed by more ma­chines. Those code­bases are si­mul­tan­iously use­ful and messy.

So I guess I’m com­ing to terms with that the ques­tion is not whether we will loop be­cause clearly we will. Maybe the ques­tion is that in a fu­ture of loops, how do we don’t ab­di­cate judg­ment, how we can re­tain rules of good en­gi­neer­ing, how we can en­sure that re­spon­si­ble hu­man can con­tinue to su­per­vise, how we need to re-think how we ar­chi­tect code to re­tain san­ity along the way.

This en­try was tagged

ai and pi

copy as / view mark­down

TikZ Editor

tikz.dev

To add this web app to your iOS home screen tap the share button and select "Add to the Home Screen".

10HN is also available as an iOS App

If you visit 10HN only rarely, check out the the best articles from the past week.

Visit pancik.com for more.