Join Nostr
2026-03-10 11:32:58 UTC

hodlonaut on Nostr: Spent some time researching this ...

Spent some time researching this

There's a narrative circulating that Citrea had nothing to do with the OP_RETURN uncap.

This article explores what the people who pushed the change actually said.


Starting with Peter Todd. He filed PR #32359. The OP_RETURN removal PR that started the public controversy.

On Stacker News he wrote:

"This pull-req wasn't my idea. I was asked to open it by an active Core dev because entities like Citrea are using unprunable outputs."


Todd: "And yes, that's the thing that has changed since."

He's explaining why the PR was reopened after years of dormancy.

The thing that changed: Citrea. Named explicitly, by the man who filed the PR, as the reason it was filed.


Before Todd filed anything, Poinsot had already published a mailing list post arguing for relaxing the limits.

Poinsot confirmed this himself at the May 1 IRC meeting: "I explained the rationale on the mailing list. Todd only opened the PR days after that."

The argument was Poinsot's. The name on the PR was Todd's.


Antoine Poinsot of Chaincode Labs names Citrea Citrea explicitly on his own blog, described their specific technical situation in detail.

How the Clementine bridge needs to pass 144 bytes, writing that "it was recently brought to my attention that Citrea faced this situation."


On April 29, 2025, the day the PR was locked for being "too heated", Matt Corallo wrote publicly:

"The entire reason for this debate is removing a filter that is going to result in a project (Citrea) shipping a product that generates material UTXO bloat."

His words. Public record.


Moving on to the May 1st Bitcoin Core IRC meeting, the inner circle session where the strategy was set.

Citrea was named three times, by three separate participants.


Greg Sanders (instagibbs, Spiral/Block) set the meeting agenda and framed the options.

At 16:44: "You don't have to love Citrea's design, but actively reducing harm should be the default where possible."

The agenda-setter frames the entire change as harm reduction for Citrea's use case.


Poinsot at 16:54: "Also, to be clear this type of transaction in Citrea is very unlikely to end up onchain. I raised the point because it illustrates an issue with our policy."

He names Citrea as the motivating case. Five weeks before the merge.


Pieter Wuille (sipa) at 16:57: "there is very good probability that citrea, or whatever individual project, just doesn't take off."

The most technically eminent figure in the room also names Citrea.

Three participants. Zero disputes Citrea as the live motivating case.


At the same meeting, instagibbs explains why he prefers unlimited over a targeted increase:

"I'm fine enough with 2, but prefer 3 out of humility of not knowing the next zk proof size people want to use."

ZK proof size. The exact technical requirement of the corporate entity named throughout the meeting.

Alsno note How Gloria Zhao frames opposition as "drama".


The day after that meeting, on May 2nd, instagibbs opens PR #32406, the PR that actually got merged.

He files it and immediately posts in IRC: "fanquake please lock for now."

Locked before any outside comment is possible. This is the PR Gloria Zhao merges on June 9.


PR #32406 was unlocked on May 5, but critics who wanted to engage technically had been muted.

Luke Dashjr: muted.

BitcoinMechanic: muted. Luke Dashjr: muted.

BitcoinMechanic: muted.


On May 12, Gloria Zhao closes PR #32359, the commissioned PR Todd filed, naming Citrea in his own words as the reason.

The replacement: PR #32406, filed by instagibbs the day after the inner circle IRC meeting, locked before any outside comment.

Zhao closes one. Zhao later merges the other on June 9.


AJ Towns on May 14, in a public X reply to Poinsot:

"Oh man, don't call direct relay to miners/pools a 'bridge', especially when the conversation started with citrea..."

A Core insider publicly stating that the conversation started with Citrea.


Matt Corallo on April 29, the day of peak public opposition:

"The entire reason for this debate is removing a filter that is going to result in a project (Citrea) shipping a product that generates material UTXO bloat."


Jason Hughes (VP, Ocean Mining), after the merge:

"52 days. That's all it took for a non-Bitcoin project to co-opt Bitcoin Core's development and direction."

He counted the days from when Citrea's need was raised to when the change was merged.


Now here's where it gets even more interesting.

Jameson Lopp is one of the most vocal public defenders of the merge.

He publicly defended muting Luke Dashjr and BitcoinMechanic on the PR. He wrote articles attacking critics.

Lopp is an investor in Citrea. This was not disclosed in any of it.


In February 2026, Lopp published "A Layman's Guide to BIP-110", defending Citrea's reputation in the controversy.

He quotes his own X posts: "Citrea's bridge does not need larger OP_RETURNs to operate."

He is an investor publicly defending his portfolio company.


Putting the timeline together.

April 17: After learning of Citrea's situation, publishes mailing list campaign arguing for relaxing limits

April 27: Todd files PR #32359, names Citrea as the reason

April 30: PR #32359 locked because "too heated"

May 1: Inner circle IRC meeting: Citrea named 3x

May 2: instagibbs opens PR #32406, locked immediately

May 5: PR #32406 unlocked, critics immediately muted

May 12: Zhao closes #32359

June 9: Zhao merges #32406


Every step of that sequence is on the public record.

IRC logs. GitHub. Stacker News. DMs. Blog posts. Tweets from the people who did it.

Documented on the public record by the principals themselves.


But now, retroactively, the argument is: "Citrea had nothing to do with it."

Adam Back says the limit doesn't matter, you could set it with dice.

Lopp says Citrea uses witness data anyway.


Here's the problem with that.

If the specific limit level was arbitrary.

Dice-tossable even.

Then the choice to go unlimited, over unprecedented community opposition wasn't driven by technical necessity.

It was driven by something else.


PR #32381, Poinsot's own smaller PR, got Concept NACKs from 5 reviewers.

Poinsot's response to the NACKs: close it. "We should do #32359 instead." The full uncap.


At the May 1 IRC meeting, when the choice was between a modest increase and unlimited:

instagibbs chose unlimited because of ZK proof size uncertainty, so they wouldn't have to "revisit this again."

Future-proofing for ZK rollup clients. On the record.


Instagibbs authored a public gist speaking "for the project" on the change.

It contains no mention of:

  • Citrea

  • PR #32359

  • the commissioned PR

  • Luke's rejected patch

  • The CVE filed when Luke's patch was rejected

The public document presents a history from which the entire origin story was removed.

It said the change had "earned broad, though not perhaps unanimous, support."


So: did Citrea have something to do with it?

Peter Todd says yes, named them as the reason he filed.

Poinsot's blog says yes, describes their technical situation in detail.

Corallo says yes, "the entire reason for this debate."

instagibbs says yes, "you don't have to love Citrea's design."

Towns says yes, "the conversation started with citrea."


One more thing.

The jesterhodl comment that got him blocked from PR #32381:

He named Citrea. Described their specific technical requirements accurately. Proposed a proportionate alternative.

Poinsot blocked him.

Corallo called it clearing "stupid drama."


Sources for all of this:

https://x.com/lopp/status/1968366951442596170 https://groups.google.com/g/bitcoindev/c/d6ZO7gXGYbQ https://x.com/adam3us/status/2024224207698067797 https://x.com/adam3us/status/2024851801455947794 https://stacker.news/items/971297 https://antoinep.com/posts/relay_policy_drama/ https://antoinep.com/posts/relay_policy_drama/ https://x.com/TheBlueMatt/status/1917220829890502702 https://erisian.com.au/bitcoin-core-dev/log-2025-05-01.html https://erisian.com.au/bitcoin-core-dev/log-2025-05-02.html https://x.com/ajtowns/status/1922647411710652467 https://x.com/TheBlueMatt/status/1917220829890502702 https://x.com/wk057/status/1932099385975771486 https://x.com/lopp/status/1917591792754778226 https://x.com/lopp/status/1917012647804801226 https://x.com/lopp/status/1917691277681770662 https://blog.lopp.net/knot-a-serious-project/ https://x.com/lopp/status/1919105071213666464 https://blog.lopp.net/a-laymans-guide-to-bip-110/ https://x.com/ajtowns/status/1921931361549697173 https://groups.google.com/g/bitcoindev/c/d6ZO7gXGYbQ https://github.com/bitcoin/bitcoin/pull/32359 https://protos.com/moderators-censor-bitcoin-devs-as-op_return-war-rages-on/ https://x.com/adam3us/status/2023732882544472424 https://github.com/bitcoin/bitcoin/pull/32381 https://gist.github.com/instagibbs/c436110890ab25aa9997b13c2270d5ce


Thank you for reading.