Reserve Infrastructure
Every dollar accounted for.
StableMMF maps the money market funds behind stablecoins — from T-Bill maturity schedules to real-time NAV attestation. Reserve transparency, not trust.
T2 · Reserves & Vaults
How deep does reserve verification run?
The big picture: Reserve verification is migrating from quarterly PDF attestations (policy-enforced, L5) toward on-chain NAV oracles (code-enforced, L3–L4). This Stack Diagram shows the compliance depth across three issuers.
Why it matters
$150B in reserves. One question: where is it?
The big picture: Stablecoin issuers hold more U.S. Treasuries than most sovereign nations. Money market funds are the vehicle — but transparency varies wildly.
- Circle (USDC) — reserves in the Circle Reserve Fund managed by BlackRock. Weekly attestations, SEC-regulated 2a-7 fund
- Tether (USDT) — quarterly attestation by BDO Italia. Mix of T-Bills, repo, secured loans. No single-fund structure
- Paxos (PYUSD / USDP) — 100% cash and T-Bill equivalents. Monthly attestation. NYDFS-regulated trust
- The gap: No unified standard for reserve composition disclosure, NAV tracking, or real-time proof of reserves
Reserve Composition
What backs the dollar peg.
Each issuer structures reserves differently. StableMMF normalizes the data into a comparable framework.
U.S. Treasury Bills
Short-duration sovereign debt
T-Bills with ≤ 90-day maturity. The safest, most liquid collateral. Preferred by GENIUS Act and MiCA frameworks.
Overnight Reverse Repo
Fed RRP facility access
Overnight collateralized lending to the Federal Reserve. Zero duration risk. Available to 2a-7 funds.
U.S. Agency Debt
FHLB & FFCB bonds
Government-sponsored enterprise debt. Slightly higher yield than T-Bills, minimal credit risk. Small portfolio allocation.
Cash Deposits
FDIC-insured bank accounts
Demand deposits at systemically important banks. Immediate liquidity for redemption spikes. Subject to FDIC limits.
S4 · Negotiation
Reserve verification journey — agentic mint route.
How it works: An AI agent initiates a USDC mint, passes identity verification, clears the reserve oracle gate, and receives tokens — all before an attestation obligation fires.
- S1 Intent — agent requests mint via Circle API
- S2 Identity — Verite credential check (AccreditedInvestor)
- S4 Negotiation — Chainlink PoR oracle confirms 1:1 backing (T2 dominant stage)
- S7 Facilitation — ERC-20 mint on Base, reserve fund receives fiat
- S8 Finality — attestation obligation fires (GENIUS Act §4)
Regulatory Landscape
What the law requires.
What to know: Two major frameworks are converging on reserve quality requirements for stablecoin issuers.
- GENIUS Act (U.S.) — requires 1:1 reserves in cash, T-Bills, or insured deposits. Monthly public disclosure. Issuer-level licensing
- MiCA (EU) — mandates 60% minimum in bank deposits across diversified credit institutions. EMI or credit institution license required
- NYDFS Trust Charter — Paxos model. 100% reserve ratio, monthly attestation by independent auditor, strict asset composition limits
- SEC Rule 2a-7 — governs money market funds holding stablecoin reserves. Weighted average maturity ≤ 60 days, weekly liquid assets ≥ 30%
GENIUS Act
United States
Federal stablecoin framework. 1:1 reserve mandate with approved asset classes. Expected enforcement 2026.
MiCA
European Union
Markets in Crypto-Assets Regulation. Live since June 2024. EMT reserve rules for euro-referenced tokens.
NYDFS
New York
Trust company charter for Paxos, Gemini. State-level reserve and attestation standard since 2018.
Stablecoin Supply Tracker
What it does: A Cloudflare Worker calls the DeFiLlama /stablecoins API and returns normalized circulating supply data for USDC, USDT, and PYUSD across all chains. The page calls the Worker and renders the live response below.
/**
* POC 01 — Stablecoin Supply Tracker
* Cloudflare Pages Function
*
* Calls DeFiLlama /stablecoins and returns normalized
* supply data for USDC, USDT, PYUSD across chains.
*
* Deploy: Drop into /functions/api/stablecoin-supply.js
* No auth required — DeFiLlama API is public.
*/
const STABLECOINS_URL =
'https://stablecoins.llama.fi/stablecoins?includePrices=true';
const TARGETS = {
USDC: { id: '1', name: 'USDC', issuer: 'Circle' },
USDT: { id: '2', name: 'USDT', issuer: 'Tether' },
PYUSD: { id: '115', name: 'PYUSD', issuer: 'Paxos' },
};
export async function onRequest(context) {
const headers = {
'Content-Type': 'application/json',
'Access-Control-Allow-Origin': '*',
'Cache-Control': 'public, max-age=300',
};
try {
const resp = await fetch(STABLECOINS_URL);
if (!resp.ok)
throw new Error(`DeFiLlama returned ${resp.status}`);
const data = await resp.json();
const peggedAssets = data.peggedAssets || [];
const result = {};
for (const [symbol, meta] of Object.entries(TARGETS)) {
const asset = peggedAssets.find(
(a) => a.symbol === symbol || a.id === meta.id
);
if (!asset) {
result[symbol] = { error: 'not found' };
continue;
}
const chains = asset.chainCirculating || {};
const chainBreakdown = {};
let totalCirculating = 0;
for (const [chain, amounts] of Object.entries(chains)) {
const current = amounts?.current?.peggedUSD || 0;
if (current > 1_000_000) {
chainBreakdown[chain] = Math.round(current);
totalCirculating += current;
}
}
const sortedChains = Object.entries(chainBreakdown)
.sort(([, a], [, b]) => b - a)
.reduce((acc, [k, v]) => ({ ...acc, [k]: v }), {});
result[symbol] = {
issuer: meta.issuer,
totalCirculating: Math.round(totalCirculating),
price: asset.price ?? 1.0,
chains: sortedChains,
topChain: Object.keys(sortedChains)[0] || 'unknown',
chainCount: Object.keys(sortedChains).length,
};
}
return new Response(
JSON.stringify({
source: 'DeFiLlama',
timestamp: new Date().toISOString(),
data: result,
}),
{ status: 200, headers }
);
} catch (err) {
return new Response(
JSON.stringify({ error: err.message }),
{ status: 502, headers }
);
}
} USDC On-Chain Reserve Ratio
What it does: A Cloudflare Worker reads USDC totalSupply() on Base and Ethereum via public RPCs, plus the Chainlink USDC/USD price feed on Ethereum. No API keys required — all public on-chain data.
- Base USDC:
0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 - Ethereum USDC:
0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 - Chainlink USDC/USD:
0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6
/**
* POC 02 — On-Chain USDC Reserve Ratio
* Cloudflare Pages Function
*
* Reads USDC totalSupply on Base + Ethereum via public RPC,
* plus the Chainlink USDC/USD price feed, to compute a live
* reserve confidence indicator.
*
* Deploy: Drop into /functions/api/reserve-ratio.js
* No API keys — uses public RPCs only.
*/
const USDC_BASE = '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913';
const USDC_ETH = '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48';
const CL_USDC = '0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6';
const RPC_BASE = 'https://mainnet.base.org';
const RPC_ETH = 'https://eth.llamarpc.com';
const TOTAL_SUPPLY = '0x18160ddd'; // totalSupply()
const LATEST_ROUND = '0xfeaf968c'; // latestRoundData()
async function ethCall(rpc, to, data) {
const resp = await fetch(rpc, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
jsonrpc: '2.0', id: 1,
method: 'eth_call',
params: [{ to, data }, 'latest'],
}),
});
const json = await resp.json();
if (json.error)
throw new Error(`RPC: ${json.error.message}`);
return json.result;
}
function hexToBigInt(hex) {
if (!hex || hex === '0x') return 0n;
return BigInt(hex);
}
export async function onRequest(context) {
const headers = {
'Content-Type': 'application/json',
'Access-Control-Allow-Origin': '*',
'Cache-Control': 'public, max-age=60',
};
try {
const [baseSup, ethSup, priceHex] = await Promise.all([
ethCall(RPC_BASE, USDC_BASE, TOTAL_SUPPLY),
ethCall(RPC_ETH, USDC_ETH, TOTAL_SUPPLY),
ethCall(RPC_ETH, CL_USDC, LATEST_ROUND),
]);
const baseSupply = Number(hexToBigInt(baseSup)) / 1e6;
const ethSupply = Number(hexToBigInt(ethSup)) / 1e6;
const pd = priceHex.slice(2);
const price = Number(hexToBigInt('0x' + pd.slice(64, 128))) / 1e8;
const updatedAt = Number(hexToBigInt('0x' + pd.slice(192, 256)));
return new Response(
JSON.stringify({
source: 'on-chain',
timestamp: new Date().toISOString(),
data: {
base: { totalSupply: Math.round(baseSupply) },
ethereum: { totalSupply: Math.round(ethSupply) },
combined: {
totalSupply: Math.round(baseSupply + ethSupply),
},
chainlinkPrice: {
pair: 'USDC/USD',
price,
updatedAt: new Date(updatedAt * 1000).toISOString(),
},
reserveIndicator: {
value: price,
interpretation: price >= 0.999
? 'Peg holding' : 'Below peg',
},
},
}),
{ status: 200, headers }
);
} catch (err) {
return new Response(
JSON.stringify({ error: err.message }),
{ status: 502, headers }
);
}
} The platform
Part of the Stablecoin Atlas ecosystem.
StableMMF is the reserve transparency layer. Each sibling site covers a different dimension of the stablecoin infrastructure.
StablecoinAtlas
Physical, logical, and visual diagrams of the stablecoin infrastructure layer. The transit map.
Stable402
x402 agentic payment protocol. Reference implementations on Cloudflare Workers.
StableMMF
This site. Reserve composition, NAV attestation, and money market fund transparency.
StableHQLA
High-quality liquid assets. Basel III classification and stablecoin reserve overlap analysis.
StableCharter
Charter types, licensing pathways, and regulatory jurisdiction mapping for stablecoin issuers.
StableKYA
Know Your Agent. Credential architecture and compliance framework for autonomous agents.