Stablecoin reserve attestation
Every USDC in circulation must have $1 backing it. The ledger proves it.
By Solomon Ajayi · Free to read, no signup
You issue a stablecoin (or you're a fintech that holds a large position in one). The stablecoin promises 1:1 backing by reserves, every $1 of issued tokens corresponds to $1 of bank deposits, T-bills, or commercial paper held by the issuer (Circle for USDC, Tether for USDT, your own treasury if you issue your own). Monthly or quarterly, an attesting auditor publishes a RESERVE ATTESTATION showing the breakdown. Your ledger has to support that attestation: separate accounts for issued-tokens-outstanding and reserves-by-asset-class, with a daily reconciliation that screams if the two get out of sync. This lesson posts the issuance of stablecoin tokens against a corresponding reserve deposit.
A stablecoin is a promise: every token in circulation can be redeemed for a dollar, because a real dollar of reserves sits behind it. The entire category's trust rests on that one-to-one invariant holding true at all times. Your ledger is what proves it. The tokens you have issued are a liability, money you owe holders on redemption, and the reserves backing them are assets, split across bank deposits, short-term T-bills, and commercial paper.
Minting is the clean expression of the invariant: a user wires in a million dollars, you credit Tokens Issued as a liability and debit Reserves: Bank Deposits as an asset, and the one-to-one relationship is established for that million. Moving reserves between asset classes for yield, say seven hundred thousand from bank deposits into T-bills, is a pure asset reclassification: the token liability does not change and the reserves still sum to a million. Burning on redemption reverses the mint, dropping both the liability and a matching reserve.
The attestation an auditor publishes monthly is nothing more exotic than a snapshot of this invariant grouped by reserve class. That is why the per-class accounts matter: they let you report how much of the backing is cash versus T-bills versus commercial paper, which is exactly what the market scrutinises for liquidity risk. The daily check that tokens-issued equals reserves-summed is the assertion that proves you can attest at all.
Worked example, step by step
User deposits $1,000,000 to mint stablecoin tokens
User wires $1M to your bank account; you mint $1M of stablecoin tokens to their on-chain wallet. The token issuance creates a liability (you OWE the user $1M back on redemption). The cash IN the bank funds the matching reserve.
| Account | Debit | Credit |
|---|---|---|
| Reserves: Bank Deposits (1710) | ₦1,000,000.00 | |
| Tokens Issued (Outstanding Liability) (2300) | ₦1,000,000.00 |
Reserves: Bank Deposits UP $1,000,000 (debit, asset). Tokens Issued UP $1,000,000 (credit, liability). Two-line entry; the 1:1 invariant is now in effect for this $1M.
Treasury moves $700K from bank to short-term T-bills
Yield management. The cash earns close to nothing in checking; T-bills earn 4-5%. You move $700K of reserves into 3-month T-bills, keeping $300K liquid for redemptions.
| Account | Debit | Credit |
|---|---|---|
| Reserves: Short-Term T-Bills (1720) | ₦700,000.00 | |
| Reserves: Bank Deposits (1710) | ₦700,000.00 |
Reserves: Short-Term T-Bills UP $700,000 (debit). Reserves: Bank Deposits DOWN $700,000 (credit). Pure asset reclassification. The TOKEN LIABILITY is unchanged, still $1M outstanding, and the TOTAL RESERVES still sum to $1M. The 1:1 invariant holds.
Daily attestation check: liability vs reserves
Run the daily attestation query: Tokens Issued (liability) sum = Reserves sum. Today: $1M vs ($300K bank + $700K T-bills) = $1M. ✓ The attestation report grouped by reserve class can be published to satisfy regulators.
| Account | Debit | Credit |
|---|---|---|
| Reserves: Bank Deposits (1710) | ₦0.01 | |
| Tokens Issued (Outstanding Liability) (2300) | ₦0.01 |
No journal entry, this is the SHADOW assertion that proves the invariant holds. We post a marker so the lesson advances; in production this is a query result piped to an alerting dashboard.
Takeaway
Stablecoin reserve attestation is the BEDROCK trust mechanism of the entire stablecoin category. The ledger pattern is: one liability account per token type, one asset account per reserve class, and the invariant `sum(tokens outstanding) = sum(reserves by class)` enforced on every issuance, burn, or reserve reshuffle. The attestation that an auditor publishes monthly is just a snapshot of this invariant grouped by reserve class. If the invariant ever breaks, even by a dollar, the auditor refuses to attest and the stablecoin's peg risk shoots up. Build the invariant check as a hard-fail constraint in your reserve-management tooling.
Practice this on a real ledger
Reading is half of it. Open this lesson in the lab to post the entries yourself against a real Postgres-backed double-entry ledger, with the validation on. Free, your sandbox is yours.