Crownridge Economics
Status: proposed parameters — require founder + independent economic-review sign-off before any deployment. This document defines the V1 token economics precisely (spec §140 requires it, and forbids inventing them). Every number below marked (param) is a deployment configuration value in
contracts/.env.example, not a hardcoded constant.
1. Assets & units
| Symbol | Decimals | Role | |
|---|---|---|---|
| Reserve | USDG | 6 | The only recognized reserve asset. Canonical 0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168, verified on-chain. |
| Protocol token | CRWN | 18 | Issued against reserves. Simple ERC-20 (burnable, permit). |
All on-chain accounting is in raw integer units. USD values are 1e18 fixed point. USDG is treated
as 1:1 USD — an assumption, not a guarantee (see §8, depeg risk). Cross-decimal math normalizes
6↔18 explicitly (CrownridgeMath.reserveToWad), floor-rounded in the Treasury's favor.
2. Backing — what backs CRWN
CRWN is backed by the recognized USDG reserve held in the Treasury. "Recognized" is an explicit
accounting quantity, always ≤ USDG.balanceOf(Treasury) (the conservation invariant). Unsolicited
transfers are excess, not backing, until swept by an authorized (timelocked) operation.
CRWN is not redeemable for the reserve in V1 — there is no redemption mechanism, and no guaranteed floor. Backing determines NAV; it is not a claim.
3. NAV
NAV = recognizedReserve, normalized to 1e18 USD (V1 liabilities = 0)
circulating = CRWN.totalSupply() − CRWN held by protocol contracts
NAV per CRWN = NAV × 1e18 / circulating (0 when circulating = 0 → "N/A")
Protocol contracts excluded from circulating: Treasury, Buyback, MintController, LiquidityManager, FounderController. The Uniswap pool is NOT excluded — pool-held CRWN counts as circulating. This is deliberately conservative: it lowers NAV per token rather than flattering it, and it sidesteps the CRWN/Treasury circularity. Protocol-owned liquidity is valued at zero in NAV.
4. Genesis — issuance formula
The only way CRWN enters circulation. Deterministic, atomic (deposit → recognize → mint, all-or-nothing):
deposit gross USDG (≥ minDeposit, within cap, within per-wallet cap, window open)
fee = gross × feeBps / 10_000 (retained in Treasury as reserve — see §5)
net = gross − fee
CRWN = net (normalized 6→18) × rate / 1e18 (floor; dust favors the Treasury)
recognize the FULL gross as reserve; mint CRWN to the depositor
Proposed parameters (param — sign-off required):
| Parameter | Proposed V1 value | Bound |
|---|---|---|
rate (immutable) |
1e18 — 1 CRWN per 1 USDG net |
> 0 |
feeBps (immutable) |
50 — 0.50% |
≤ 100 (1.00% hard cap) |
cap (timelock-adjustable) |
250,000e6 — 250,000 USDG |
— |
minDeposit |
10e6 — 10 USDG |
— |
maxPerWallet |
0 (unlimited) — revisit vs Sybil/MEV analysis |
— |
| window | set at deploy; conservative first | end > start |
At rate 1e18 and fee 50 bps, a 10,000 USDG deposit mints 9,950 CRWN, recognizes 10,000 USDG,
and lifts NAV/CRWN to ≈ $1.005 — the retained fee is backing for every holder, not a siphon.
Initial supply / max supply: there is no pre-mint and no fixed max supply. Total supply equals the sum of all Genesis issuance minus burns. There is no founder/team/investor CRWN allocation and no vesting in V1 — the founder's economic interest is expressed through the Treasury controller (§7), not through allocated tokens. (If any allocation is desired it must be added here and signed off before deploy; the contracts have no allocation path today.)
5. Protocol revenue
The Genesis fee is the only V1 revenue source. It is retained in the Treasury as recognized reserve
— there is no separate revenue router or EOA. Effect: minted CRWN < deposited USDG, so backing per
circulating token rises. cumulativeProtocolRevenue is tracked for reporting only and is not
double-counted into NAV (it is already inside recognizedReserve). Future LP fees route the same way:
the USDG side is recognized as reserve, the CRWN side is burned.
6. Buybacks & burning
When CRWN trades sufficiently below NAV, the Treasury may buy CRWN on Uniswap v3 and burn it,
raising NAV per remaining token. This is gated by a risk engine, not if price < NAV then buy:
- minimum discount to NAV (param: 1000 bps = 10%), TWAP window (1800s), spot-vs-TWAP deviation cap (200 bps), min pool liquidity, min observation cardinality (60), slippage floor (100 bps), cooldown (3600s), per-tx / per-day / max-Treasury-%-per-day (200 bps) caps.
- Accretion is enforced on measured deltas: after the swap, USD spent ÷ CRWN received must be ≤ NAV/CRWN, else the transaction reverts. A buyback can never be dilutive.
- Fail closed: any oracle staleness/zero/deviation → revert. Ships disabled; enabling is a timelocked action after the market and oracle have a usable history (spec §41).
Worked example (spec §14): Treasury $1,000,000, supply 1,000,000, NAV $1.00, market $0.80. Spend $80,000 → buy 100,000 CRWN → burn. Treasury $920,000, supply 900,000, NAV ≈ $1.0222. Covered by a test.
7. Founder Treasury authority — dilution / withdrawal mechanics
The Founder Treasury Controller can withdraw the reserve asset from the Treasury (spec §112–120). Its economics:
founder withdraws X USDG → recognizedReserve ↓ X NAV ↓ NAV/CRWN ↓ CRWN supply UNCHANGED
It never mints CRWN (no hidden inflation), never touches CRWN or protocol liquidity, and emits a
dedicated event. Modes (param — sign-off required): CAPPED (per-withdrawal / rolling-window /
minimum-floor / cooldown limits) or UNCAPPED (up to the full recognized reserve). The chosen mode and
its parameters are published in the deployment manifest and on the public transparency page — this is a
disclosed trust assumption, not a hidden power. See docs/RISK.md.
8. Failure scenarios (economic)
| Scenario | Behavior |
|---|---|
| USDG depeg / impairment | NAV is overstated until a timelocked writeDownRecognized reduces recognized reserve. Genesis should be paused; buybacks fail closed on price sanity. |
| DEX liquidity disappears | Buybacks fail closed (min-liquidity + cardinality checks). Genesis/Treasury unaffected. |
| Oracle failure / manipulation | Buyback reverts (TWAP + deviation + cardinality). No automated action on bad price. |
| Market price collapse | NAV unchanged (it is reserve-based, not market-based); buybacks may become attractive but remain capped and accretive. |
| Founder-key compromise | Guardian pauses the founder-withdraw path immediately; timelock revokes the controller (durable follow-up). See docs/INCIDENT_RESPONSE.md. |
| Contract exploit | Subsystem pauses; immutable core limits blast radius; incident response engaged. |
9. What V1 deliberately does not do
No staking, rebasing, leverage, lending, governance, bonds, strategies, or yield. No guaranteed returns, floor, or redemption. No fake APY. These are future phases (V2, see the spec) and are not implied anywhere in the product.