Work Writing About Work with me

Stablecoins: Past, Present and FutureChapter 5 of 11

Under the hood the contract is only half of it

A dollar token has a public contract and a private banking day. Mint waits for a wire; transfer then runs without the issuer; burn and the dollar payout are days apart. This chapter walks that lifecycle, compares who can freeze, pause or replace the code on USDC, USDT, DAI/USDS and USDe, and separates a native claim on the issuer from a wrapped claim on a bridge.

What you'll learn

  • Trace mint, transfer, burn and redemption across the contract and the bank, and say which of those steps is atomic.
  • Name what USDC and DAI add to ERC-20 that USDT refuses to add, and what that refusal costs in gasless payments.
  • Compare freeze, pause, upgrade and admin keys across four tokens without treating a freeze as a burn.
  • Tell a native issuer obligation from a lock-and-mint wrap and from a burn-and-mint transfer.
  • Apply the Multichain failure of July 2023 as the case where the wrapped token died and the issuer's reserve did not.
In this chapter

Mint waits for the bank

A fiat-backed stablecoin's life runs on two layers at every step. On-chain, a contract maps addresses to balances. Off-chain, a bank confirms dollars, a compliance desk clears a name, and a reserve manager rolls bills. Neither layer is the product by itself.

Mint is the on-chain call that increases totalSupply after the issuer's bank has confirmed incoming fiat. For USDC the operator who may call it is a minter sitting under a masterMinter limit; for USDT the call is issue, from the same 3-of-6 multisig that does everything else. The contract does not watch a bank. A human confirms the wire, then an authorized key hits mint. Until that confirmation exists, no tokens appear.

Burn is the matching call that destroys tokens and decreases supply. Redemption is the off-chain payout of dollars to the verified client who sent those tokens in. Burn and payout are not one transaction. The sources put the gap at T+0 to T+5 of banking. A token can be gone on-chain on Monday while the dollars are still a wire in a queue.

Transfer is the step that does not wait. Once an address holds a balance and is not blocked, transfer is ordinary ERC-20: no issuer signature, no bank, no desk. Gasless variants exist for some tokens and are the next section. The issuer re-enters only if the address has been placed on a blacklist, in which case the call reverts.

USDC's FiatToken splits those jobs on purpose. masterMinter sets who may mint and how much; minter mints and burns inside that cap; pauser can halt transfers; blacklister can freeze an address; rescuer can pull stray ERC-20 tokens out of the contract. Circle cannot, in this design, unilaterally destroy a frozen balance. Tether's destroyBlackFunds can. That gap is the whole of the freeze section below, not a wording difference.

Reserve management never touches the token contract. Bills, repo and cash roll on a custodian's books. Those books are the 95% reserve-income line of the business chapter. Mint has to wait because the chain will not invent the dollar the bank has not posted.

What a dollar token adds to ERC-20

A plain ERC-20 needs two on-chain steps for a spender to move someone else's tokens: approve, then transferFrom, each a paid transaction. Retail payments cannot live with that. Two Ethereum standards close the gap, and they are why USDC can sit in a gasless checkout and USDT on Ethereum cannot.

Permit, EIP-2612, finalized in March 2020, lets a holder set an allowance by signing an off-chain EIP-712 message instead of sending approve. The spender submits that signature with the transfer. One on-chain transaction, one gas bill, and the holder never pays for the approval. USDC, DAI and USDS implement it. Most ERC-20s issued after 2021 do too.

A gasless transfer, EIP-3009 (transferWithAuthorization / receiveWithAuthorization), goes further. The signature authorizes a one-time, addressed transfer and never writes an allowance at all. A relayer can pay the gas in ETH while the holder signs on a phone. Circle shipped both standards together in FiatToken v2. That pair is what protocols such as x402 require for HTTP-native micropayments in USDC. USDT implements neither, and Tether has said it will not. The USDT contract on Ethereum is upgradeable, so the refusal is a product choice. On TRON the TRC-20 USDT contract has no signature-based transfer authorization of any kind, so gasless payments do not exist there in any form.

The other addition is administrative. Freeze, pause and upgrade are not in the ERC-20 spec. USDC and USDT put them in the contract because a payments issuer that cannot stop an address cannot satisfy a sanctions request. DAI never did. USDe put the emergency halt on mint and redeem, not on transfers. Chapter 3 introduced that axis as a question. This chapter names the functions.

USDT's extras all hang off one owner. USDC's extras hang off named roles. Sky's DAI hung extras off a wards mapping and never put a freeze in the token. Ethena put extras on the Minting Contract and left the USDe token itself closer to plain ERC-20. Same asset class, four permission systems.

Four tokens, four control architectures

A blacklist, also called a freeze, is a contract permission that stops an address from sending. USDC's function is blocklist. Tokens at a frozen USDC address stay there; Circle can unfreeze. USDT's functions are addBlackList and, separately, destroyBlackFunds. A USDT freeze can be escalated to a permanent burn. Counting them as the same control compares a paused balance with a deleted one.

A pause stops transfers for everyone, not for one address. USDC's pauser role can do it. USDT's owner can do it. DAI has no token-level pause. USDe's GATEKEEPER role can disable mint and redeem; that is a halt of the primary window, not of transfers of existing USDe.

Proxy upgradeability is a small contract that stores the address of the logic and forwards every call to it, so the code can be replaced while balances stay put. USDC is an OpenZeppelin upgradeable proxy (FiatTokenProxy). USDT uses an older pattern of Tether's own (deprecate plus UpgradedStandardToken). DAI is not upgradeable at all; control sits in a wards mapping, and reaching USDS required a migration. USDe's token is not upgradeable; the Minting Contract's admin role is.

A multisig is a wallet that executes only when a set number of named signers approve, written as X of Y. Tether's issuance, redemption, blacklisting, clawback and pausing all sit in one 3-of-6 multisig. That is a least-privilege miss: the key that pauses is the key that mints. USDC separates masterMinter, minter, pauser, blacklister and rescuer. How many signers control Circle's proxy-admin key is not in these sources. How many signers hold Ethena's DEFAULT_ADMIN_ROLE is not in these sources either. Both are unlocated, not zero.

Four tokens, four control architecturesFreeze, pause, upgrade and admin-key arrangements for USDC, USDT, DAI/USDS and USDe. Circle's proxy-admin signer count and Ethena's DEFAULT_ADMIN signer count are not in the sources. DAI has no token-level freeze. USDT can escalate a freeze to a permanent burn. The DAI/USDS freeze cell is mixed: chapter 3 records that USDS added a freeze DAI never had, while the Polish architecture table groups both as without a token-level blacklist.Four tokens, four control architecturesUSDCUSDTDAI/USDSUSDeFreezeFreeze · USDC: yes, no burnyes, no burnFreeze · USDT: yes, can burnyes, can burnFreeze · DAI/USDS: ~~Freeze · USDe: nonenonePausePause · USDC: pauser rolepauser rolePause · USDT: ownerownerPause · DAI/USDS: nonenonePause · USDe: GATEKEEPERGATEKEEPERUpgradeUpgrade · USDC: OZ proxyOZ proxyUpgrade · USDT: own old proxyown old proxyUpgrade · DAI/USDS: DAI noDAI noUpgrade · USDe: mint onlymint onlyMultisigMultisig · USDC: n unknownn unknownMultisig · USDT: 3-of-63-of-6Multisig · DAI/USDS: SKY + 48hSKY + 48hMultisig · USDe: n unknownn unknownPolish research edition table in content/blog/stablecoins/biznes.md and brief stablecoins-05.md (knowledge-base module 07 table 07.2), 2026. Signer counts marked unknown are unlocated, not zero. Mixed freeze cell explained in the chapter.
Freeze, pause, upgrade and admin-key arrangements for USDC, USDT, DAI/USDS and USDe, 2026. The DAI/USDS freeze cell is mixed: a later USDS freeze sits next to DAI, which had none. Signer counts marked unknown are unlocated.

DAI and USDS have to be read as two objects that share a column. Chapter 3 recorded that USDS added a freeze function DAI never had. The Polish architecture table groups DAI/USDS as without a token-level blacklist. Both statements are in the sources. They are not averaged into a single yes or no. The matrix marks that cell mixed on purpose.

The GENIUS Act requires a technical ability to block, freeze and reject on authority request. It does not require destroyBlackFunds, and it does not require a 3-of-6. Tether shipped a blacklist in 2017, years before that statute. Circle's reactive, order-driven use of blocklist is a policy choice sitting on the same statutory floor.

Company keys, a DAO timelock, and a capped multisig

Governance is who is allowed to use the powers above, and how long the rest of the market has to notice.

Circle is a company. Roles are assigned corporately. No public timelock sits in front of a FiatToken upgrade in these sources. The signer count on the proxy-admin key, as already noted, is unlocated.

Tether is a company with one 3-of-6. No public timelock is documented for USDT either. The architecture section already named the privilege problem. The operational fact is simpler: five functions share a threshold.

Sky is a DAO with a delay. A winning "spell" passes DSChief voting and then sits in the Governance Security Module for 48 hours before it can execute. A routine July 2026 edit passed with 7,023,129,526 SKY votes. That 48-hour window is the only documented timelock in this four-token set. Who holds the keys is the parallel chapter on the RWA side: BUIDL, OUSG and BENJI, read on 4–5 September 2026, put no timelock in front of seizure or upgrade. Sky does. Circle and Tether, on the public record used here, do not.

Ethena is a hybrid. Minting is limited to whitelisted "Mint Users" through an EIP-712 order. The Minting Contract's admin is upgradeable. The loss cap is the interesting number: a compromised role could mint up to 100,000 USDe uncovered and drain up to about 200,000 USD of collateral, a 300,000 USD maximum loss, before GATEKEEPER disables mint and redeem. That is a designed bound, not a promise that the admin key is safe. The signer count behind DEFAULT_ADMIN_ROLE remains unlocated.

USDe is not a payment stablecoin. DAI and USDS are not payment stablecoins. The GENIUS Act's freeze-on-demand intuition sits awkwardly on a 48-hour timelock and on a token with no freeze at all. Whether that pushes DAO-governed dollar tokens out of the US payment-stablecoin box is a later regulatory chapter. The engineering fact is already visible: real-time freeze and a 48-hour delay are different machines.

Native and bridged are different claims

A native token is a direct, separately redeemable issuer obligation on that chain. Native USDC on Arbitrum is Circle's liability, mintable and burnable against Circle's reserve, and it appears in Circle's published reserve accounting. A bridged token is a claim on a bridge that holds the original elsewhere. It is not a legal claim on the issuer. Historical USDC.e on Arbitrum, the wrapped token from before Circle launched native USDC there in June 2023, is the classroom example. Redeeming it meant burning plus a seven-day canonical-bridge withdrawal, and it did not appear in Circle's published reserves.

Circle's Bridged USDC Standard, dated 21 November 2023, is the conversion hatch: a third-party bridged contract can be formally upgraded to native issuance without breaking holders. Native USDC deployments grew from 11 chains in early 2024 to 28 in April 2026. The current count of chains on Circle's CCTP itself is given as 11 in one reading and 13+ in another; that present-tense count is not established here. The 11-to-28 native-issuance path is.

Six ways exist to move a token across chains: a canonical bridge, lock-and-mint, burn-and-mint, a liquidity network, an intent or solver route, and messaging plus a token standard. Two of them decide the claim.

Lock-and-mint locks the original in a contract on the source chain and mints a wrapped token on the destination. The locked pool is a honeypot. Wormhole-style bridges do this. Tether's USDT0 does this: real USDT sits in an Ethereum lockbox, and a wrapped claim is issued elsewhere under LayerZero's OFT standard, run by licensed operator Everdawn Labs rather than by Tether itself. USDT0 facilitated over 70 bn USD in under twelve months, which prompted a Tether Investments stake in LayerZero on 10 February 2026. The volume is real. So is the pool.

Burn-and-mint destroys the token on the source chain and mints an equivalent native token on the destination. No locked pool sits in between, because the token exists on one chain at a time. Circle's Cross-Chain Transfer Protocol, CCTP, launched in 2023 and shipped V2 on 11 March 2025, is this design. Fast Transfers settle in about 8–20 seconds. Cumulative volume was over 110 bn USD and 5.3 million transfers by 14 November 2025, per Circle. A secondary tracker put the figure at 140 bn USD on 12 June 2026. Both sit here. They are not averaged.

Ripple chose a third native path for RLUSD: Wormhole's Native Token Transfers, aiming at one canonical token across 40+ chains rather than a family of wraps. That is a native-multichain bet, not a Circle CCTP clone, and it belongs in a later who's-who chapter as a company choice.

Native claim, burn-and-mint, and lock-and-mint are three different objectsA native token on a chain is a direct issuer obligation, minted there. Circle's CCTP burns on the source chain and mints on the destination, so no locked pool sits in between. Lock-and-mint (USDT0, Wormhole, historical bridges) locks the original and issues a wrapped claim against that pool.Native claim, burn-and-mint, and lock-and-mint are three different objectsNative issuance: issuer obligation on that chainBurn-and-mint (CCTP): no locked poolLock-and-mint (USDT0): locked poolmint on Bmint wrappedNative USDC on B: Circle mints hereNative USDC on BCircle mints hereNative USDC on A: Circle obligationNative USDC on ACircle obligationBurn on A: then mint on BBurn on Athen mint on BNative USDC on B: same issuer claimNative USDC on Bsame issuer claimLock USDT on A: Ethereum lockboxLock USDT on AEthereum lockboxLocked pool: the honeypotLocked poolthe honeypotWrapped token on B: claim on the bridgeWrapped token on Bclaim on the bridgeBrief stablecoins-05.md (knowledge-base modules 07 and 14) and content/blog/stablecoins/technologie.md. Circle CCTP, 2023 and V2 on 11 Mar 2025; USDT0 / LayerZero OFT, Tether.io 10 Feb 2026. Native vs bridged definitions from module 14.
A native mint is Circle's own obligation on that chain; CCTP burns on the source and mints on the destination with no locked pool; USDT0 and older bridges lock the original and issue a wrapped claim against that pool, 2023–2026.

When the bridge fails, the issuer's reserve does not help

Lock-and-mint fails in a way burn-and-mint cannot copy. If the locked pool is stolen, the wrapped token is an IOU on an empty box. The underlying native token, sitting at the issuer, is untouched.

Multichain's collapse in July 2023 drained more than 120 mn USD from its Fantom bridge. Bridged USDC on Fantom traded at about 22% of face. Underlying USDC on Ethereum stayed fully backed. Circle froze 63 mn USD tied to the exploit and had no way to restore value to the wrapped token. The freeze hit addresses Circle could see. It could not mint the Fantom wrap back to 1.00 USD, because Circle had never owed that wrap.

That is the diagnostic. A ticker that says USDC is Circle's liability only when the token is native. The three-layer test in chapter 1, pointed at a bridge, asks whose claim the holder has. Native: the issuer. Wrapped: the bridge. If the bridge is empty, the issuer's attestation of reserves is a true statement about a different object.

Lock-and-mint bridges lost a combined 2.66–2.8 bn USD to exploits in 2022–2023 (DefiLlama via CoinDesk, July 2023; Spark.money, 2026). CCTP cannot lose a pool it does not keep. USDT0 keeps one. The market has used both at tens of billions of dollars of flow. Volume is not a verdict on the claim.

Freeze scale is the last number this chapter has to carry without blending clocks. BlockSec, on 26 July 2026, had Tether blocking 9,597 addresses on Ethereum and Tron and freezing 5.69 bn USD. A 2023–2025 window in the same knowledge-base module puts Tether at 3.3 bn USD across 7,268 wallets and Circle at 109 mn USD across 372 addresses (AMLBot, 30 January 2026). Only 3.6% of blocked addresses were ever unblocked, in that material. Among Tether's 2025 blocked addresses, 84.2% (3,506) were on Tron, for 853 mn USD. Those are four readings, three windows, two issuers. They are not a single Tether total and they are not a Circle-versus-Tether rate.

Tether and Circle freeze figures sit on different clocksThree published freeze readings that must not be averaged. Tether: 5.69 bn USD across 9,597 addresses on 26 July 2026. Tether: 3.3 bn USD across 7,268 wallets in a 2023–2025 window. Circle: 0.109 bn USD across 372 addresses in a 2023–2025 window. Address counts belong to those windows and are not plotted on this axis.Tether and Circle freeze figures sit on different clocksbn USD frozen0.11Tether 26 Jul 2026: 5.69 bn USD5.69Tether 26 Jul 2026Tether 2023–2025: 3.3 bn USD3.3Tether 2023–2025Circle 2023–2025: 0.11 bn USD0.11Circle 2023–2025Brief stablecoins-05.md citing knowledge-base module 07: Tether 9,597 addresses / 5.69 bn USD (BlockSec, 26 Jul 2026); Tether 3.3 bn USD / 7,268 wallets vs Circle 109 mn USD / 372 addresses (2023–2025). Polish edition content/blog/stablecoins/technologie.md and biznes.md (AMLBot, 30 Jan 2026). Windows and methods differ; values are not averaged.
Tether froze 5.69 bn USD across 9,597 addresses on 26 Jul 2026, and a separate 2023–2025 window puts Tether at 3.3 bn USD across 7,268 wallets against Circle at 0.109 bn USD across 372 addresses. The windows are not averaged.

Key takeaways

  1. Mint requires an off-chain fiat confirmation before an operator calls mint or issue; burn of the token and the dollar payout are separated by T+0 to T+5 and are not atomic.
  2. USDC's FiatToken separates masterMinter, minter, pauser, blacklister and rescuer; USDT puts issuance, redemption, blacklisting, clawback and pause in one 3-of-6 multisig.
  3. EIP-2612 (March 2020) and EIP-3009 let USDC, DAI and USDS do gasless approvals and transfers; USDT implements neither, on Ethereum or on TRC-20, and has said it will not.
  4. USDC can freeze and unfreeze but cannot unilaterally destroy tokens; USDT's destroyBlackFunds can turn a freeze into a permanent burn.
  5. DAI is not upgradeable; USDC uses an OpenZeppelin proxy; USDT uses its own older upgradeable pattern; USDe's token is not upgradeable and its Minting Contract admin is, with a designed 300,000 USD maximum loss before GATEKEEPER halts mint and redeem.
  6. Sky's changes pass a 48-hour Governance Security Module timelock after a vote (7,023,129,526 SKY on a routine July 2026 spell). Circle's proxy-admin signer count and Ethena's DEFAULT_ADMIN signer count are not in these sources.
  7. Native USDC on a chain is Circle's redeemable obligation; USDC.e on Arbitrum before June 2023 was a bridged claim with a seven-day withdrawal, absent from Circle's published reserves.
  8. CCTP (burn-and-mint, V2 on 11 March 2025) had over 110 bn USD / 5.3 million transfers by 14 November 2025 per Circle, against a 140 bn USD secondary reading on 12 June 2026. USDT0 (lock-and-mint) facilitated over 70 bn USD in under twelve months to 10 February 2026. Multichain's July 2023 Fantom drain left bridged USDC at about 22% of face while Ethereum USDC stayed backed; Circle froze 63 mn USD and could not restore the wrap.

Glossary

Mint / burn / redemption
on-chain increase or decrease of supply after (mint) or before (burn) the banking step. Redemption is the off-chain dollar payout, not atomic with burn (T+0 to T+5).
Permit (EIP-2612)
off-chain signature that sets an ERC-20 allowance, so approve need not be a separate paid transaction. Finalized March 2020.
EIP-3009
one-time, addressed transfer authorized by a signature, with no allowance. Basis for USDC gasless payments.
Blacklist / freeze
contract flag that stops an address from sending. USDC: blocklist, reversible. USDT: addBlackList, which can escalate to destroyBlackFunds.
Pause
a halt of transfers (USDC, USDT) or of mint/redeem (USDe GATEKEEPER). DAI has no token-level pause.
Proxy upgradeability
logic contract replaceable behind a fixed token address. USDC: OpenZeppelin. USDT: own older pattern. DAI: none.
Multisig
X-of-Y signer wallet. Tether: one 3-of-6 for all admin. Circle and Ethena signer counts: unlocated.
Native token
issuer obligation minted on that chain, redeemable at the issuer.
Bridged / wrapped token
claim on a bridge's locked pool, not on the issuer. USDC.e is the named case.
Lock-and-mint / burn-and-mint
lock the original and wrap (USDT0, Wormhole) versus burn on source and mint native on destination (CCTP). Only the first builds a honeypot pool.

Go deeper

  • How each kind of stablecoin holds its peg: the freeze question as one of four that cut across families, including the DAI versus USDS split.
  • What one USDC actually equals: Circle Mint as the gated par window that mint and redemption in this chapter actually serve.
  • Who holds the keys: the same permission-reading job on BUIDL, OUSG and BENJI, including a timelock that those three products also lack.
  • 🟢 Circle FiatToken / CCTP documentation: role separation, Bridged USDC Standard (21 November 2023), CCTP V2 (11 March 2025), volume post 14 November 2025.
  • 🟢 Ethereum EIPs 2612 and 3009; Sky Governance Security Module documentation.
  • 🟢 Tether.io, 10 February 2026: USDT0 volume and LayerZero stake.
Sources

🟢 primary · 🟡 credible secondary · 🔴 tertiary (never used to cite a number)

  • 🟢 Author's knowledge base, modules 07 and 14 (lifecycle table, FiatToken roles, EIP-2612/3009, freeze versus destroy, freeze-scale readings, 3-of-6 versus role separation, upgradeability table, Sky 48-hour GSM and July 2026 vote, Ethena 300k USD cap, native versus bridged, USDC.e, six cross-chain mechanisms, CCTP and USDT0 volumes, Multichain/Fantom, 11-to-28 native chains, Bridged USDC Standard).
  • 🟢 Polish research edition, content/blog/stablecoins/biznes.md (architecture comparison table, freeze philosophy, GENIUS Act freeze capability versus destroy) and content/blog/stablecoins/technologie.md (EIP-2612/3009, CCTP and USDT0, native versus bridged, freeze scale, Bridged USDC Standard).
  • 🟢 Brief content/blog/en/briefs/stablecoins-05.md: portable extract of modules 07 and 14.
  • 🟢 Circle.com/blog: CCTP launch 2023, V2 11 March 2025, Fast Transfer 8–20 seconds, >110 bn USD / 5.3 million transfers to 14 November 2025; Bridged USDC Standard, 21 November 2023.
  • 🟢 Tether.io, 10 February 2026: USDT0 >70 bn USD in under twelve months; Tether Investments stake in LayerZero the same day.
  • 🟢 Ethereum Improvement Proposals: EIP-2612 (March 2020), EIP-3009, ERC-4337 (March 2023) as cited in the Polish edition.
  • 🟢 GENIUS Act (P.L. 119-27), signed 18 July 2025: technical ability to block, freeze, reject; not a mandate of destroyBlackFunds.
  • 🟡 BlockSec USDT Freeze Tracker, 26 July 2026: 9,597 addresses, 5.69 bn USD.
  • 🟡 AMLBot, 30 January 2026: Circle 109 mn USD, 372 addresses; 2023–2025 Tether 3.3 bn USD / 7,268 wallets versus that Circle reading, per the brief.
  • 🟡 Knowledge-base module 07: 3.6% of blocked addresses ever unblocked; Ethena 100k uncovered mint plus ~200k USD drain.
  • 🟡 Eco.com, July 2026: native USDC 11 chains (early 2024) to 28 (April 2026).
  • 🟡 Secondary CCTP tracker, 12 June 2026: 140 bn USD cumulative, recorded next to Circle's 14 November 2025 figure.
  • 🟡 Multichain / Fantom, July 2023: >120 mn USD drained; bridged USDC ~22% of face; Circle freeze of 63 mn USD, no restoration of the wrap.
  • 🟡 DefiLlama via CoinDesk, July 2023, and Spark.money 2026: lock-and-mint exploits 2.66–2.8 bn USD in 2022–2023.
  • 🟡 Polish edition: 84.2% of Tether's 2025 blocked addresses on Tron (3,506 addresses, 853 mn USD).
  • 🟡 Ripple / knowledge-base module 14: Wormhole Native Token Transfers, 40+ chains.

All chapters of "Stablecoins: Past, Present and Future" →