DMF Architecture for deterministic
on-chain money.

EVERY USAGE → USDC RESERVES → BACKING RISES
USDC BACKING
RESERVES
DMF Architecture
Smart Contract
dmfUSD_base.sol — Base (8453)
StandardERC-20 + ERC-4626 + Permit
Decimals6 (matching USDC)
Backing assetUSDC (Base native)
Reserve trackingLive USDC.balanceOf(this)
ReentrancynonReentrant + CEI
Static analysisSlither ✅ Aderyn ✅
Formal verificationCertora ✅ rules proved
Fee Model
0.25% Variable Fee (Capped at $20)
Total feemin(amount × 0.25%, $20)
Operations fee (10 bps)Handled by fee-recipient logic
Backing fee (15 bps)Strengthens USDC reserve
Transfers0%, always free
RoundingDown (max 0.000001)
Security Model
11 Verified Invariants (Forge + Certora Proved)
Reentrancy impossible — buy/refund guarded by nonReentrant + CEI
Fee never exceeds $20 per transaction — proved via Certora
Fee split integrity, Operations (10/25) + backing (15/25) = total, proved via Certora
Supply never underflows — totalSupply ≥ totalMinted − totalBurned
Operations fees do not come from the USDC backing reserve, structural invariant verified across all paths
route-only paths gated for configured callers (restricted + nonReentrant)
Static analysis clean, Slither: 0 findings | Aderyn: 0 High
Access Control
Minimal — No Admin Mint, Freeze, or Pause
buy() / refund()Anyone
deposit() / redeem()Route-only (gated)
route setupOwner
setDevFeeRecipients()Owner
FeesHardcoded (immutable)
Admin mint❌ Impossible
Token freeze❌ Impossible
Transaction Flow
How a Buy/Sell Executes On-Chain
Buy dmfUSD
1.User approves USDC → dmfUSD contract
2.Contract pulls USDC via transferFrom
3.Fee computed: min(amount × 0.25%, $20)
4.Backing fee (15 bps) stays as excess USDC in contract
5.Operations fee handled by fee-recipient logic
6.dmfUSD minted to buyer: amount − totalFee
Sell dmfUSD (Refund)
1.User calls refund(tokenAmount)
2.Contract burns dmfUSD tokens
3.Fee computed: same formula (0.25%, $20 cap)
4.USDC sent to user: tokenAmount − totalFee
5.Backing fee retained in USDC reserve
6.Operations fee handled by fee-recipient logic
Backing Economics
Why Backing Always Rises
Backing Ratio
USDC.balanceOf(this) ÷ totalSupply
Starts at 100%. Every fee adds excess backing via retained USDC.
Reserve Accounting
Live balanceOf(this)
No separate accounting variable. Any USDC sent here is instantly backing.
Verification
getBackingPerToken()
Anyone can call on-chain. No off-chain oracle needed.
DMF Swap → dmfUSD: 100% Revenue Pipeline
1.Users swap tokens via DMF Swap app
2.0.04% of swap volume is redirected to the dmfUSD contract as USDC
3.dmfUSD's live USDC.balanceOf(this) instantly rises
4.getBackingPerToken() increases for all holders: every swap strengthens every dmfUSD holder's backing
Every DMF Swap transaction makes every dmfUSD token more strongly backed, even if you never touch dmfUSD yourself.
Backing rises with every interaction — even from others