Documentation

Coverage

Coverage is what the vault holds for a coin divided by what that coin owes its holders, published on-chain as a number anyone can read. At 100% the vault could redeem every coin in circulation at the index. The target is 100%, the number is computed on-chain per coin from live feeds every time it is read, and it is a measurement rather than a promise — it moves with prices, and it can be under 100%.

The formula

coverageBps = (vaultUsd + vaultDiem × diemPrice + pegBidUsd) × 1e4 / (outstanding × coinPrice)

Three things back a coin, and one thing is owed.

Term What it is
vaultUsd USDC the RedemptionVault holds for that coin, in 6 decimals
vaultDiem × diemPrice the coin's DIEM inventory valued at the DIEM TWAP
pegBidUsd USDC sitting in that coin's V3 peg bid, $10,000 at launch
outstanding × coinPrice the liability, at the published index

outstanding(coin) is totalSupply minus what the PegManager still holds unsold — its ask inventory plus any idle balance. Coin that has never been bought is not a liability, so it is not counted. The figure is off by V3 rounding dust at the wei level.

Reserves are per coin. INT coverage is INT's own USDC, INT's own DIEM and INT's own peg bid against INT's own outstanding supply. One coin's redemptions cannot reach another coin's reserve.

coverageBps never reverts. It reads both prices through a non-reverting call, so a stale coin price makes the liability zero and a stale DIEM price makes that part of the backing zero. Zero liability returns type(uint256).max, which the interface shows as no outstanding supply rather than as infinite coverage. Because DIEM is read live from the Aerodrome TWAP, a dead DIEM feed lowers the reported coverage and halts DIEM payouts, and nothing else: USDC redemption keeps working.

What moves it

The coin's own price. Coverage is a ratio with the coin price in the denominator. Every coin was sold into the ask at the feed price of the day it was sold. If frontier output gets cheaper, the liability shrinks against reserves that were collected when it was dearer, and coverage rises. If inference gets more expensive, the liability grows against the same reserves and coverage falls. Inference prices have fallen consistently, which is why the design expects coverage to drift up — but the direction is an expectation about the market and not a property of the contract.

The DIEM price. Between 20% and 40% of each coin's reserve is DIEM by value. A fall in DIEM lowers the backing side directly, in proportion to that share.

Redemptions. A redemption burns coin and pays out its index value, which removes roughly equal amounts from both sides. Above 100% coverage a redemption lowers the ratio slightly; below 100% it raises it slightly. Redemptions are capped at 20% of the coin's seed amount per day across all wallets and 5% per wallet, so the ratio cannot be moved by more than that in a day through the vault.

New sales. Every dollar paid into the ask above the $10,000 bid target is forwarded to the vault at the next placement, adding backing at the same moment it adds liability.

Top-ups. See below.

The DIEM band

The vault keeps DIEM between 20% and 40% of each coin's reserve by value, aiming for 30%. diemShareBps(coin) reports the current share and needsRebalance(coin) is true when it is outside the band, the DIEM feed is fresh, and five minutes have passed since the last move. Anyone may then call rebalance(coin), which buys or sells one tranche — trancheUsd, $2,000 by default — at no worse than the DIEM TWAP minus 4%. The coverage page shows the share against its band and a Rebalance button when a call would do something. DIEM has the detail.

The 110% floor

Surplus above 110% is protocol revenue and the owner can withdraw it with sweepSurplus(coin, usd, to). The function debits the reserve first and then recomputes coverage, reverting with CoverageFloor if the result would be below SURPLUS_FLOOR_BPS, which is 11,000 bps. There is no path that takes a coin below 110% through a sweep, and only the owner can sweep at all.

Top-ups

While a coin's coverageBps is below 100%, anyone may call Treasury.topUpVault(token, coin, amount), which spends protocol-share coin from a market's ledger: the coin is converted to USDC through the router, floored at the index minus 2%, and the proceeds are funded into that coin's reserve. Because the router redeems through the vault when it can, the conversion burns coin as well, so a top-up adds backing and removes liability in the same transaction. At or above 100% the call reverts with CoverageNotBelowTarget, so nobody can move protocol money into a vault that does not need it.

Top-ups are limited by what the protocol share actually holds. A coin can sit below 100% for as long as the fee stream takes to fill the gap, and nothing in the contracts guarantees it closes.

Where to read it

coverageBps(coin) on the vault, any block, from any address, alongside usdOf, diemOf, outstanding, diemShareBps, redeemedToday and configOf for the components. The /coverage page reads them with one multicall and shows the ratio with a stacked breakdown of the three backing components, the DIEM share against its band, and the history from Funded, Redeemed and Rebalanced events.