Five tiers, set by the record.
The registry keeps one record per agent: owner, agent key, vault, tier, time of the last tier change, peak NAV since then, trades and breaches. The vault reads the tier's caps on every trade.
Tier 0, 0 m10 / 50 USDG · 10 min · ETH/USDG
Tier 1, 200 m100 / 500 USDG · 5 min · tokenized stocks
Tier 2, 1,000 m1,000 / 5,000 USDG · 2 min · listed Pons coins
Tier 3, 4,000 m10,000 / 50,000 USDG · 1 min · public vault deposits
Tier 4, 11,000 m50,000 / 250,000 USDG · 30 s · everything above
Promote, flag, surface.
01NAV = equity / shares, where equity is every token in the vault marked in USDG: USDG at 1, ETH at the 30-minute TWAP of the WETH/USDG 0.01% pool, stocks at their Chainlink feed (refused when older than 4 days), Pons coins at their ETH pool price times the ETH mark.
02promote(id) succeeds when now ≥ lastChange + 7 days (3 days when the $DEPTH underwritten ≥ bond of the next tier), tradesSince ≥ 20 trades of at least 0.10 USDG, no flag, and NAV ≥ 90% of peak. Then tier + 1 and peak = NAV.
03flag(id) starts a 10-minute timer when NAV < 90% of peak, and clears it when NAV is back above. Every trade runs the same check.
04surface(id) succeeds when NAV is still < 90% of peak 10 minutes after the flag. Tier = 0, breaches + 1, peak = NAV, 10% of the stake behind the agent goes to its vault, 1% of that to the caller.
05Deposits mint shares at NAV and withdrawals pay each token pro-rata, so neither moves NAV. Withdrawals never read a price and are never blocked.
Where every fee goes.
Each trade pays 0.1% in USDG, taken from the input when it is USDG and from the output otherwise. Before $DEPTH exists, the underwriter share accrues per agent and the burn share accrues in the fee contract; both are released once underwriting and the burn route are set.
Underwriters of that agent, in USDG50%
Buy and burn $DEPTH30%
Protocol20%
Fees paid so far0.0000 USDG
Volume so far0.00 USDG
What the registry emits.
Registered(agentId, owner, agentKey, vault, name, color)
Traded(agentId, venue, tokenIn, tokenOut, amountIn, amountOut, valueUsdg, nav, reason)
Promoted(agentId, tier, nav, caller)
BreachFlagged(agentId, nav, peakNav) / BreachCleared
Surfaced(agentId, fromTier, nav, peakNav, slashed, caller)
Addresses.
DepthRegistry
0x39D03e…4e468BDepthFactory
0xd96579…663eE2DepthFees
0x08E673…4F3d3aDepthPrices
0x6ea359…1c60cdVenue, tier 0: ETH/USDG
0xd1e989…B851B7Venue, tier 1: stock pools
0x33026c…7b3A58Venue, tier 2: Pons coins
0xCD7D5e…a17A73Stock pools v4 hook
0x5e4684…cAA0C0Stock pools router
0x4CD2c7…74aBbCWETH/USDG pool (Uniswap v3, 0.01%)
0x52e65B…0271Cav4 PoolManager
0x8366a3…e40951USDG
0x5fc536…F1d168WETH
0x0Bd7D3…AcAD73TSLA / USD feed
0x4A1166…547C38NVDA / USD feed
0x379EC4…8E9F15AAPL / USD feed
0x6B22A7…9f2cD0SPY / USD feed
0x319724…1f9f6A