Reinvestment Vault (Vault Bond Tokens)
The Reinvestment Vault is a Bondi product built as an ERC-4626 wrapper around a Bond Token that compounds coupon payments back into the underlying Bond Token. Depositing btXXX into the vault mints vbtXXX — a standard ERC-20 whose value rises as each coupon is swapped for more Bond Tokens.
vbtXXX is the true DeFi composability layer for Bond Tokens. Holding btXXX directly means dealing with Distribution separately for each coupon, principal redemption, and bond call. vbtXXX consolidates that into one ERC-4626 interface: deposit Bond Tokens, hold a share, exit through redeem or withdraw. There is no admin force-transfer capability and vault supply changes only through standard ERC-4626 operations. Entry and transfer are permissionless; the vault never pays distribution stablecoin to a non-KYC-verified wallet, but all holders can always exit in Bond Token form. See Compliance at Reinvestment Vault Exit. vbtXXX integrates with any protocol — including lending markets and yield aggregators — enabling collateralization and leveraged looping strategies that are not possible with raw Bond Tokens.
Overview
Standard path: A holder deposits Bond Tokens (btXXX) and receives vault shares (vbtXXX). Each coupon payment is routed through the vault, swapped for more Bond Tokens, and the resulting Bond Tokens are added to the vault's total assets — increasing the redemption value of every outstanding share without requiring any action from the holder.
The full abstraction: A vbtXXX holder interacts only with the vault contract. On exit via redeem or withdraw, they receive their pro-rata share of everything the vault holds — Bond Token backing plus any pending coupon or call stablecoin — per Compliance at Reinvestment Vault Exit:
• Pending coupon reinvestment: stablecoins sitting in the vault because the DEX swap has not completed yet (oracle staleness, pool deviation, or slippage). In practice this almost never happens as Bondi arranges the onchain liquidity with its liquidity partners so coupon swaps clear promptly.
• Call proceeds: stablecoins from a bond call, held as pendingCallStable. Bondi expects this to clear quickly through unwinding, reinvestment, or exit — and preannounces the plan on the frontend before holders act. KYC holders can unwind a chosen slice via claimCallProceeds at the contractual call price without exiting the rest of their position; Bondi may reinvest some or all via reinvestCallStable when the pool allows; on full exit via redeem, any remainder settles pro-rata per Compliance at Reinvestment Vault Exit. See Called Bonds in the Reinvestment Vault.
• Principal at maturity: once principalSet is true, KYC-verified holders receive all stables in one transaction; non-KYC-verified holders receive raw Bond Tokens and redeem principal at Distribution after completing KYC. See Vault Settlement at Maturity.
Vault Shares (vbtXXX)
vbtXXX shares follow the standard ERC-4626 accounting model and entry/exit interfaces:
Deposit: deposit(btXXX, receiver) — transfer Bond Tokens into the vault, receive vault shares proportional to the current share price.
Redeem: redeem(shares, receiver, owner) — burn vault shares. See Holder Exits. withdraw follows the same exit rules.
Share price and anti-gaming: Vault Bond Token oracles price vbtXXX shares as btComponent + stableComponent:
• btComponent — Bond Token holdings per share × bond oracle price
• stableComponent — pending stablecoin (coupon + call proceeds) per share
The share price reflects the full economic value of the vault at all times, regardless of what form that value takes. When a coupon arrives, the stablecoin component rises immediately; when it is reinvested into Bond Tokens, the BT component rises equivalently. A new depositor entering while a coupon or call is pending pays an oracle-adjusted price that already includes the pending value — there is no window to enter, capture proceeds, and exit at a windfall. Anti-gaming comes from full-value accounting at entry and exit, not from timing assumptions.
Deposit window: New deposits are accepted at all times unless the vault has been permanently closed (post-maturity, or after a full bond call that burns all Bond Tokens in the vault), or while an issuer bond call freeze is active on the underlying Bond Token (see Issuer Bond Calls).
Holder Exits
Everything a holder does with the Reinvestment Vault goes through the vault contract — deposit Bond Tokens, hold vbtXXX, exit whenever. The diagram below shows those holder-facing paths only. Bondi-operated backend steps (coupon reinvestment, bond-call registration) are covered in the lifecycle diagrams linked underneath.
Enter: deposit(btXXX) → receive vbtXXX at the current oracle share price.
Exit fully: redeem or withdraw — always available for non-blacklisted receivers. KYC-verified holders receive Bond Token backing plus any pending coupon or call stablecoin, settled as Bond Tokens when the exit swap clears or as stablecoin when it cannot (or via redeemToBTAndStable by choice, with no swap). Non-KYC-verified holders receive Bond Tokens; pending buckets swap to Bond Tokens or are recorded as entitledStable to claim after completing KYC or whenever they can be swapped to Bond Tokens.
After a bond call, unwind the amount you choose: unwind on the Bondi frontend — receive the bond call proceeds exiting the desired portion of your position. See Why Unwinding Exists and Vault Settlement on Bond Call.
At maturity: redeem on the vault — KYC-verified holders receive all stable; non-KYC-verified holders receive Bond Tokens and handle principal at Distribution after KYC. See Vault Settlement at Maturity.
Coupon reinvestment (Bondi-operated, not a holder action): see Coupon Auto-Reinvestment below.
Compliance at Reinvestment Vault Exit
The vault never pays bond proceeds — coupon, call, or principal — directly to a non-KYC-verified wallet. All holders can still exit in Bond Token form; only Bondi's direct stablecoin payouts are gated. See Holder Exits right above for the full path map.
Blacklisted addresses are refused at vault entry and exit. vbtXXX remains freely transferable — Bondi's contracts will not serve a sanctioned address, but this is not a hard fund freeze.
entitledStable: Recorded stablecoin owed to a non-KYC-verified holder who exited when the swap of their pending coupon/call proceeds into Bond Tokens could not execute — so the proceeds could be neither delivered as Bond Tokens nor paid as distribution stable to a non-KYC-verified wallet, and are held on record instead. Claim via claimEntitledStable() once KYC-verified, or claimEntitledStableAsBT() for Bond Tokens when the liquditiy conditions improve. Bondi can never touch this bucket and it stays indefinitely in the vault until claimed.
You stay in control of the exit swap: When you exit and the vault needs to swap your pending coupon or call stablecoin into Bond Tokens, the Bondi app lets you set how much price movement you're willing to accept and shows you upfront whether the swap will go through at current market conditions — so you can go ahead, widen your tolerance, or wait. Nothing is ever forced through at a bad price. If a swap can't clear within your tolerance, your Bond Token backing is still delivered as Bond Tokens; the pending coupon/call proceeds that couldn't be converted are then paid to you as stablecoin if you're KYC-verified, or recorded as entitledStable to claim later if you're not.
Coupon Auto-Reinvestment
Coupons reach the vault through the same onchain distribution path as wallet holders — the vault address is included in the entitlement snapshot and the relayer claims on its behalf. See Coupon Distribution for the full registration, snapshot, Merkle tree building, and claim sequence. Once stablecoin arrives in the vault, a relayer-triggered swap converts it to Bond Tokens and completes the reinvestment.
Compounding Efficiency vs. Traditional Markets
In traditional bond markets, the minimum tradable lot is typically $200,000 face value. For a semi-annual 10% bond, a holder would need at least $4,000,000 in Bond Token face value to reinvest a single coupon payment back into that same bond at the minimum $200,000 lot. Bond Tokens lower the holding threshold to any fraction — but reinvesting coupon stablecoin for Bond Tokens still requires accessing a liquid market. The Reinvestment Vault handles this by pooling all vault holders' coupon proceeds into a DEX swap. In practice this delivers institutional-grade compounding access to holders at any position size — a theoretical efficiency improvement of up to four million times compared to the traditional minimum lot constraint.
Bondi works with liquidity providers to ensure the Bond Token pool can absorb coupon reinvestments at minimal slippage. A pending reinvestment state is transient — coupon proceeds are expected to be swapped into Bond Tokens promptly, normally for the full pending amount in a single call. If a swap call fails — oracle staleness, pool deviation exceeding the oracle threshold, or execution output falling below the quoter-derived floor — the call reverts and proceeds remain in pendingReinvestment. Exit treatment for pending proceeds follows Compliance at Reinvestment Vault Exit.
Coupon Reinvestment Flow
Steps 1–5 (gross transfer through Merkle finalization) are identical to Coupon Distribution. Furthermore, this diagram shows the Reinvestment Vault-specific steps after the standard coupon distribution path.