How to bond
Bond markets sell INVEST for reserve quote tokens. You hand the protocol a registered reserve asset; the Treasury keeps it and mints INVEST against it. This is the mechanism that grows backing.
A bond's price is not a discount by construction. Each series opens at a price governance sets and decays toward a floor, and whether that lands above or below the market rate is an outcome, not a promise. At mainnet genesis it lands well above: the floor binds at roughly 3.2x the launch price, so the one market genesis creates cannot fill — see below.
No bond market exists today. Markets are created at stage 2, which has not run; the
BondDepository is deployed and holds none.
Payouts vest as gINVEST notes, either on a cliff or as a stream.
What you can bond with
Quote tokens are registered reserve assets: USDG, WETH, tokenized Robinhood equities and ETFs,
and vetted bridged crypto. A market's quote token must be an enabled RESERVETOKEN both when the
market is created and on every deposit — that is a hard check, not a convention.
LP tokens count as reserves too. An INVEST/<asset> Uniswap V2 LP, once listed and valued by a
fair-LP feed, is an eligible quote token like any other — so a bond market can buy liquidity rather
than tokens. That is one of two ways the protocol acquires liquidity in an asset it holds, and the
one that spends no reserves: it pays in discounted, vesting INVEST for LP that the depositor built.
(The other is a governed position vault that funds a bounded Uniswap V4 position from the
Treasury's own reserves.) See
protocol-owned liquidity.
At genesis, mainnet opens exactly one market, quoted in USDG. Bond markets are created after
the fair launch, because baseSupply is zero before it (which would zero the capacity caps and
divide the price floor by zero). baseSupply is zero right now, which is exactly why there is no
market yet.
The two vest modes
| Mode | Behaviour |
|---|---|
| CLIFF | All-or-nothing. Nothing is claimable until the note matures, then the whole payout redeems at once. This is the default. |
| LINEAR | The payout streams continuously from the moment the note is created until it matures. |
With a LINEAR note you can redeem the vested portion as often as you like while it continues to vest; the note closes only once it has been drawn in full.
The default term at launch is 5 days, cliff. Governance can open markets on other terms and in either mode, within bounds fixed when the protocol is deployed.
The price floor
A bond can never sell INVEST below its floor. The floor is the greater of two numbers, stamped into the market's terms for its whole life:
- 1.1× treasury backing, recomputed from oracle values every time a market opens; and
- the absolute USD floor the PolicyGuard carries — $0.90 per INVEST at mainnet genesis.
That absolute floor is set once, at deployment, and is lowering-only thereafter. Governance can lower it; nothing can raise it.
INVEST opens at about $0.2778. The 1.1×-backing half of the floor works out at about $0.165, so the absolute $0.90 floor is the one that binds — roughly 3.2 times the launch price. The genesis USDG market will be created and inert: it will exist, priced well clear of the floor, and nothing fills until INVEST has risen that far. Until stage 2 creates it there is no market at all.
That is deliberate, not an oversight. The protocol launches with about $9,000 of backing against a 60,000-INVEST supply (why), and the floor is exactly what stops bonds minting cheap INVEST into that gap. It is also irreversible in one direction — lowering it is permanent — so it is not something to undo lightly.
BondDepository.setPriceBand clamps every market's price to a range around an INVEST/USD reference
feed. It is deliberately not called at genesis: at t0 the reference is a median over a freshly
seeded pool with no observations behind it, so a band on it would either brick bonding or floor
markets on a manipulable number. It is armed by proposal once the pool has depth and a checkpoint
history.
Capacity caps
Every market is created through the PolicyGuard, which enforces:
| Cap | Value |
|---|---|
| Per-market capacity | ≤ baseSupply / 10 |
| Aggregate live capacity | ≤ baseSupply / 4 |
| Conclusion | within (now, now + 365 days] |
| Vesting | within [minVesting, maxVesting] |
| Initial price | ≥ the market's floor |
The Treasury re-audits its reserves before a market is created, so the floor is computed against a fresh mark rather than a stale one.
What happens on a deposit
- The quote token lands in the Treasury.
- Reserves are re-marked.
- New INVEST is minted only against the excess value that deposit created —
excessReserves() = totalReserves − baseSupply. - A gINVEST note is written for you with the market's vest term and mode.
An exact-delta check on the deposit means a quote token that takes a cut of its own transfers, or rebases mid-transaction, cannot under-deliver silently.
Redeeming
Redeeming pays out whatever a note has vested and you have not already drawn. For a cliff note that is the whole payout once it matures, and nothing before. For a linear note it is the slice that has vested so far.
You can redeem several notes in one transaction, and choose whether to take the payout as gINVEST or have it staked into SHARES for you.
Pricing mechanics
Price follows a debt-decay curve — the standard Olympus bond shape. It rises as a market sells and decays back down over time, and it is floored: the quote you are shown and the price you actually pay are subject to the same floor, so it cannot be sidestepped.