On July 16, 2026, a quiet financial event rippled through the football world. Manchester United, according to a report from Crypto Briefing, stands to gain €15.7 million from Atletico Madrid’s offer for Mason Greenwood. The trigger? A sell-on clause locked into his previous transfer from Old Trafford to Getafe. The number is neat, the logic familiar to any football executive, yet the mechanism behind it—a conditional future payout based on a secondary transaction—is a financial derivative more complex than most crypto-native royalty contracts. And it is executed entirely off-chain, relying on legal agreements, human verification, and the goodwill of two billion-dollar organizations.
This is not a story about Manchester United’s financial resilience. It is a story about the gap between what we call "smart" and what we call "trusted." As a Layer2 research lead, I have spent the last four years dissecting how blockchains attempt to codify conditional value transfer. The Greenwood sell-on clause is a perfect stress test for that ambition.
Tracing the gas leak in the untested edge case – the sell-on clause is that edge case, hiding in plain sight in the most traditional of industries.
Context: The Sell-On Clause as a Financial Primitive
A sell-on clause (or "percentage of future transfer fee") is a contractual right retained by the selling club when a player is transferred. If the player is later sold to a third club, the original seller receives a pre-agreed percentage of the fee, often 10-20%. In the Greenwood case, when Manchester United transferred him to Getafe in 2023, they inserted such a clause. Now Atletico Madrid triggers it, and United collects €15.7M.
The mechanics are deceptively simple: an off-chain event (transfer registration with FIFA) triggers a payment obligation from Atletico to United. The verification relies on the integrity of club accounting and the legal enforceability of the contract. There is no atomic settlement; the payment can be delayed, disputed, or avoided in the case of insolvency. The system works because the participants are regulated entities with reputational skin in the game.
But from a technical perspective, this is a clear example of conditional value transfer with an oracle requirement. The sell-on clause is a financial contract with a state machine: - State 0: Player is at Club B. Sell-on clause dormant. - State 1: Club C submits a binding offer to Club B. - State 2: Offer accepted. - State 3: Player signs for Club C. - State 4: Payment to Club A is due.

The transition from State 2 to 3 requires an external truth – did the transfer happen? The transition to State 4 requires a valuation – is the fee above a certain threshold? In blockchain terms, we need an oracle for the transfer event and a price feed for the fee.
Core: Code-Level Analysis – Encoding the Sell-On as a Smart Contract
Let’s attempt to formalise the Greenwood clause in Solidity, ignoring legal nuances. We have three parties: ClubA (Manchester United), ClubB (Getafe, but in the scenario the clause is triggered when Atletico buys, so ClubB becomes Atletico? Actually, the sell-on is usually between the original seller and the intermediary buyer. But for simplicity, assume ClubA is the original seller, ClubB is the current owner, and ClubC is the new buyer. The clause is between ClubA and ClubB. When ClubB sells to ClubC, ClubB pays ClubA a percentage.
We can represent this as a smart contract where ClubB deposits a bond or the entire transfer fee into a escrow, and the contract splits according to the clause. However, the transfer fee is not an on-chain asset. It is fiat money settled in bank accounts. So we need a wrapper – perhaps a stablecoin representation. Let’s assume a fully on-chain scenario, where players are tokenized as soulbound NFTs representing their registration rights. A transfer is an NFT transfer. The sell-on clause is attached to the NFT as a royalty mechanism, similar to ERC-2981 but with conditional logic.
ERC-2981 defines a standard for royalties on NFT sales. But it is unconditional: it pays per sale, regardless of price. A sell-on clause typically only triggers if the selling price exceeds a threshold, or if the player is sold to a certain club type. We need a more complex condition. For example: - Only applicable if the sale price > 50 million. - Or only applicable if the buyer is not a specific club.
In Solidity, we can implement a sellOnClause function that checks the condition. But the condition itself must be verified by an oracle. How do you trust the oracle? In my audit of a cross-chain bridge in 2025, I discovered a reentrancy vulnerability in the optimistic verification module. The same pattern applies here: if the oracle is compromised, the clause can be bypassed.
Modularity isn’t a silver bullet – even if we separate the oracle from the settlement layer, the oracle design remains the weakest link.
Let’s dive deeper. We can use a zkOracle to prove that a transfer event occurred on FIFA’s database without revealing the fee details. That solves privacy but adds latency and cost. In a bear market, gas fees might be low, but for a €15.7M payout, the transaction cost of verifying a ZK-proof is negligible. The real issue is the off-chain to on-chain bridging of the event. FIFA’s Transfer Matching System (TMS) is a centralised database. To make it oracle-compatible, we need a trusted party to attest to the event. That could be a consortium of clubs or an independent auditor. But that reintroduces trust.
We can use a optimistic challenge period: a proposer submits the transfer event, and any challenger can dispute by providing evidence. This is similar to the optimistic rollup model. However, the dispute resolution would require an on-chain judge, which is impractical for subjective events. For binary events (did the tie break?), we can use a prediction market or Schelling point mechanism. For a sell-on clause, the event is complex: the exact fee, the player’s identity, and the contract terms. It is multi-dimensional.
This is where the concept of "data availability" becomes critical. The sell-on clause relies on data that is not inherently public. In football, transfer fees are often undisclosed. So a blockchain-based sell-on clause would require clubs to reveal fee information to the blockchain, which they are reluctant to do. Data availability is not just a problem for modular blockchains; it is a problem for any financial primitive that depends on real-world data.
From my 2022 research on Celestia’s DAS, I learned that data availability sampling works well for linear blocks but fails for high-dimensional or private data. The sell-on clause is high-dimensional and private. So either we accept a permissioned oracle or we design a zero-knowledge protocol that proves the fee is above a threshold without revealing the exact number. That is possible with range proofs, but expensive to verify on Ethereum mainnet. Layer2 rollups, especially ZK-rollups, can handle such complex proofs efficiently. For example, a ZK-rollup could batch hundreds of sell-on clause validations in a single proof, reducing cost per transaction.
I have personally optimized circom circuits for batch ERC-20 transfers, reducing proof time by 15% after six weeks of work. That experience taught me that even small circuit optimizations have huge implications for gas costs. Assuming we can encode the sell-on clause logic in a snark, the prover cost would be dominated by the oracle data commitment. But if we use a state machine rollup like Arbitrum or Optimism, the verifier cost is low, but the challenge period introduces settlement delay. For a sell-on clause, the payment is due immediately after the transfer is registered, so a delay of 7 days might be acceptable given the typical transfer window.
Let’s build a prototype architecture:
- A registry of player tokens (ERC-721 with metadata linking to real-world identity).
- A sell-on clause module that accepts a condition (e.g., percentage, threshold, excluded clubs).
- An oracle aggregator that collects data from FIFA TMS and other sources, signs it with a threshold signature.
- A Layer2 rollup that processes the logic: when an oracle report triggers the condition, it executes a payment from ClubB’s wallet to ClubA in a stablecoin.
- Dispute mechanism: a challenger can submit proof of false oracle data within a window, funded by a bond.
This is technically feasible, but the problem is bootstrapping the oracle network. Who will run the oracles? Clubs have incentives to manipulate. FIFA could be the sole oracle, but that centralizes control. A DAO of clubs could work, but then we are back to off-chain governance.
Optimizing the prover until the math screams – but the real bottleneck is the human coordination layer, not the circuit.
Contrarian: The Blind Spots of On-Chain Automation
Now, the counter-narrative that most blockchain enthusiasts ignore. The Greenwood sell-on clause worked because it was embedded in a web of human relationships, legal precedents, and mutual financial interests. Manchester United did not need a smart contract to collect €15.7M; they needed a lawyer and a bank account. The blockchain alternative introduces complexity that may not be justified for most transfers.
First, cost: For a €15.7M payment, the legal fees are a fraction of a percent. On-chain settlement using stablecoins might incur gas costs under $1 million today on Ethereum, but on Layer2 it could be under $100. Over a decade, the savings are minor compared to the risk of smart contract bugs. The reentrancy attack in the verification module I found in 2025 could have drained funds. Why expose a $15.7M payment to a buggy contract when a traditional bank transfer is safe?
Second, flexibility: Sell-on clauses are often renegotiated. Clubs might agree to a lower percentage for an upfront payment. Smart contracts are immutable; changing them requires a new contract or a proxy upgrade, adding governance overhead. In football, deals change quickly; a rigid on-chain contract could hinder negotiations.
Third, privacy: Clubs do not want to reveal the exact fee. On-chain transparency is a feature of public blockchains, but football clubs are private entities. They can use private rollups (like Aztec or Polygon Miden), but then the verification is limited to participants. That defeats the purpose of a public, trustless settlement.
Fourth, jurisdictional compliance: Transfer payments cross borders. Stablecoins may not be legal tender in all jurisdictions. The counterparty (Atletico) may want to pay in fiat. The on-chain system would require a fiat ramp, reintroducing centralised exchanges.
From my analysis of the AI-agent identity protocol in 2026, I saw how soundness errors in ZK proofs can lead to Sybil attacks. The same applies here: a subtle bug in the sell-on condition verification could allow ClubC to manipulate the fee declaration and avoid the clause. The complexity is not worth the benefit for a €15.7M deal, let alone smaller transfers.
The code is a hypothesis waiting to break – and the sell-on clause is a high-value target.
Takeaway: The Future Is Hybrid, Not Purely On-Chain
The Greenwood sell-on clause is a beautiful example of a financial primitive that could benefit from blockchain efficiency, but not from blockchain ideology. The future of football transfers will not be fully on-chain. Instead, we will see hybrid models: a legal agreement with a digital trigger. For example, a smart contract that is activated only when an oracle attests to a signed FIFA TMS document. The settlement can be in fiat, but the clause enforcement is automated through a Layer2 oracle network that is fast, cheap, and only occasionally disputed.
This is the path I advocate for in my research: modularity applied to real-world assets, but with humility. The sell-on clause is not a problem waiting for a blockchain solution. It is a lesson in how trust, law, and finance already work. The blockchain’s job is to make that trust easier to verify, not to replace it.
As I write this, I think back to the 2020 Uniswap V2 audit where I found an integer overflow in a liquidity edge case. That bug was in the code that thousands of users trusted. The same trust is placed in football’s legal system. Until we can prove that a ZK-rollup can secure a €15.7M payout with the same reliability as a bank guarantee, the sell-on clause will stay off-chain. And that is not a failure of technology. It is a recognition that some edge cases are better left untested.