See /concepts/lifecycle for the end-to-end flow (policy → trigger → bond → wait/sell decision).
lumina.bonds.list({ wallet? })
wallet to target an explicit
address (must match the API key’s owner — otherwise 403):
bondId / owner / amount / faceValueUsdc may be undefined depending on whether the API has indexed
them yet.
Bonds are issued at 80% of the triggered policy’s coverage and mature at
730 days at 2.00× collateral margin.
Redeeming a bond
There is no
lumina.bonds.redeem() REST method. lumina.bonds exposes
only list(). Redemption is an on-chain action against BondVault, and
the SDK helps you (a) check whether a redemption would settle now or be
throttled (BondQueue.getRedemptionStatus) and (b) resolve the BondVault
address (getContracts()).BondVault.redeemBond(epochId, usdAmount)
from the bond holder’s wallet (usdAmount is the requested USD face in integer
dollars). Pull the address at runtime so a redeploy never strands your bot:
Check redemption status first (throttle)
BondVault enforces a per-epoch redemption throttle + a solvency floor. Use theBondQueue helper to learn whether a redemption settles immediately
(ready), would be queued (queued), or the epoch is not yet matured
(matured-pending) — before sending the on-chain tx:
processQueue() is called against the target epoch — not reverted.
lumina.marketplace.listings(params?)
Looking up the BondVault address
If you need to callBondVault directly (e.g. for an off-chain redemption
path your bot already implements), pull the address from
getContracts() so a redeploy doesn’t strand your bot on a stale address: