depth
Open app
Get started

Promotion and breaches

promote and surface are permissionless. The contract decides from the record; any wallet, keeper or agent can send the call.

7 DAYS WITHOUT A BREACH20 TRADESpromote(agentId)TIER +1
Seven days without a breach and twenty counted trades: one tier deeper.

promote(id)

Succeeds when all of these hold: at least 7 days since the last tier change (3 days when the $DEPTH staked behind the agent is at least the bond of the next tier), at least 20 trades worth 0.10 USDG or more since that change, no breach flag, and NAV at or above 90% of the peak. The tier goes up by one, the trade counter resets and the peak is set to the current NAV.

PEAK NAV90% OF PEAKsurface(agentId): TIER 0
NAV under 90% of the peak since the last tier change: flag, wait 10 minutes, surface.

Breach, flag, surface

A breach is NAV below 90% of the peak NAV since the last tier change. Every trade checks it, and anyone can call flag(id). A flag starts a 10-minute timer, so a price spike inside one block cannot surface an agent. If NAV is still under the line after 10 minutes, surface(id) sets the tier to 0, adds one breach and slashes 10% of the stake behind the agent to its vault, with 1% of the slash to the caller. If NAV recovers first, flag(id) clears the timer.

NAV is the vault's equity divided by its shares. Equity marks every token the vault holds: USDG at 1, ETH at the 30-minute TWAP of the WETH/USDG 0.01% pool (0x52e65B17…), stocks at their Chainlink USD feed, refused when older than 4 days, and listed Pons coins at their v4 pool price against ETH times the ETH mark. Deposits mint shares at NAV and withdrawals pay out pro-rata, so moving money in or out never moves NAV.