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 pro rata to the Bond Tokens and pending stablecoin the vault holds (pending stablecoin valued at the Bond Token price).
Exit fully, before maturity: redeem or withdraw: always available for non-blacklisted receivers. Everyone receives Bond Tokens pro rata. Pending coupon and call buckets are swapped to Bond Tokens first. If the combined swap cannot pass its guards, the vault retries with the coupon bucket alone; when that clears, only the call bucket is left, paid as stablecoin to a KYC-verified holder and as vault Principal Tokens to everyone else. If neither swap clears, a KYC-verified holder receives both buckets as stablecoin, and everyone else receives vault Coupon Tokens for the coupon bucket and vault Principal Tokens for the call bucket. A verified holder can instead choose redeemToBTAndStable or withdrawToBTAndStable to take Bond Tokens plus the buckets as stablecoin, with no swap. That path stays verified-only.
After a bond call, unwind the amount you choose: claimCallProceeds is open to every non-blacklisted holder. A verified holder receives stablecoin (the call slice plus pro-rata pending coupon). Everyone else receives vault Principal Tokens for the call slice and vault Coupon Tokens for the coupon part. See Why Unwinding Exists and Vault Settlement on Bond Call.
At maturity: redeem or withdraw on the vault. The vault redeems the holder's Bond Token slice at the Distribution itself. A verified holder receives stablecoin (principal, plus any pending call and coupon). A holder who is not verified receives vault Principal Tokens for the principal and call part, and vault Coupon Tokens for the coupon part. There is no swap, and no Bond Tokens are delivered. See Vault Settlement at Maturity.
Coupon reinvestment (Bondi-operated, not a holder action): see Coupon Reinvestment.
Compliance at Reinvestment Vault Exit
Stablecoin goes only to KYC-verified holders. Before maturity, a non-verified holder receives the vault's Coupon or Principal Tokens only if the exit swap cannot clear. Vault claim tokens are also issued on claimCallProceeds and on an exit after maturity, and a verified holder can redeem them at the vault. Before maturity, all non-blacklisted holders can still exit in Bond Token form. See Holder Exits right above for the full path map.
Blacklisted addresses are refused at vault entry and exit. vbtXXX itself remains freely transferable, so this is not a hard fund freeze. Bondi's contracts simply will not serve a blacklisted address.
Vault claim tokens: The vault itself mints them, symbols ctvbtXXX and ptvbtXXX. They are redeemed at the vault via redeemCouponTokens(amount) and redeemPrincipalTokens(amount). The stablecoin stays reserved in the vault until a verified holder redeems. See Coupon and Principal Tokens.
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 issued as vault Coupon or Principal Tokens if you're not.