Skip to main content
See /concepts/lifecycle for the end-to-end flow (policy → trigger → bond → wait/sell decision).
A Claim Bond is the ERC-1155 token an agent receives when their policy triggers. It represents a LUMINA payout at maturity from BondVault.

What you can do with a bond

  1. Hold it. Wait until 730 days from mint and call BondVault.redeem(epochId) to receive LUMINA. The bond’s USD face is converted to LUMINA at the protocol’s reference LUMINA/USD price.
  2. List it. Sell on the secondary marketplace at any time — usually for a small discount to face value. Sellers exit in USDC.
  3. Buy more. Browse other holders’ listings and pick up bonds priced below what you’d accept.

Redemption math

Cheaper LUMINA at redemption → more LUMINA per token. The price used is the protocol’s trusted LUMINA/USD reference (bounded by the snapshot taken at purchase time, audit fixes C-3 + H-6), not the spot DEX price.

The 730-day maturity (NOT “24 months”)

ClaimBond maturity is exactly 730 * 86400 seconds from mint — a flat 730-day window, not a 24-calendar-month window. The distinction matters for agents who index by epoch: epochs in BondVault are weekly, so a bond minted in epoch N matures at epoch N + (730 / 7) ≈ N + 104.3.

Redemption throttle

BondVault enforces a per-epoch redemption cap of 108 bps (1.08%) per week to defend against bond-runs. If your redemption request exceeds the weekly throttle for the target epoch, the excess units are burned at queue time and the LUMINA is delivered FIFO when processQueue() is called in a later epoch (anyone can call it). See BondVault throttle for the full mechanics, worst-case drain math (≈ 12 weeks for ≈ 13% of an epoch’s supply), and operator notes.

Lifecycle diagram

Reading bonds programmatically

Bonds are filtered server-side to the calling wallet — there’s no way to read another wallet’s bonds via the API (the on-chain data is public, but the API won’t act as an unauthenticated indexer).

See also