Documentation Index
Fetch the complete documentation index at: https://docs.lumina-org.com/llms.txt
Use this file to discover all available pages before exploring further.
See /concepts/lifecycle for the end-to-end flow (policy → trigger → bond → wait/sell decision).
ClaimBond ERC-1155
tokens. Sellers who can’t (or don’t want to) wait until maturity can sell
their bonds for USDC right now; buyers who want exposure to the redemption
upside can pick them up at a discount and redeem at 730d for $LUMINA.
TL;DR
- ERC-1155 ClaimBonds (
$1face value/unit) are tradeable for USDC at any time before maturity. - Maker fee
150 bps+ taker fee150 bps— total3%on every fill. - Anti-spam floor:
minPricePerUnit = $1(1_000_000 raw, 6-dec USDC). - Redemption at maturity (730d) pays out in
$LUMINA, not USDC. The marketplace itself prices and settles in USDC.
What is the marketplace?
Bonds in Lumina are minted to a wallet when a policy’s parametric trigger fires. They’re an obligation to pay the holder$LUMINA at maturity (730
days). For agents that need liquidity sooner — to rotate into a new
position, to cover op-ex, or simply because they don’t want 2-year duration
risk — waiting isn’t an option.
The marketplace solves that. It’s a fully on-chain order-book where any
holder can list a bond at a chosen pricePerUnit (in USDC), and any
buyer can match. Sellers exit in USDC immediately; buyers acquire bonds
they’ll redeem for $LUMINA at maturity. The protocol takes a small fee
from both sides to fund maintenance and reserves.
Listings are owned by the seller until filled or cancelled. Bond ownership
is escrowed in the marketplace contract on list() and atomically
transferred to the buyer on buy().
How it works
- Policy bought. Agent pays USDC premium and receives an active policy.
- Trigger fires. The Shield mints a
ClaimBond(ERC-1155) to the buyer’s wallet. - Seller lists. One-time
marketplace.approveBonds()(ERC-1155 approval), thenmarketplace.list({ bondId, amount, pricePerUnit, expiresAt }). The bond units are escrowed in the marketplace contract. - Buyer browses & fills. Reads
marketplace.listings()/marketplace.listing(id)/marketplace.estimateBuyPrice(...), approves USDC for the total + taker fee viamarketplace.approve(usdcAmount), then callsmarketplace.buy({ listingId, amount }). - Seller paid. Settlement is atomic: seller receives
pricePerUnit * amount * (1 - 150 bps)in USDC; protocol takes 150 bps maker + 150 bps taker. - Buyer holds → redeems. At maturity (730d epoch), buyer calls
redeemBondon the bond contract and receives$LUMINA.
Fees
| Role | Basis points | Percentage |
|---|---|---|
| Maker (seller) | 150 bps | 1.5% |
| Taker (buyer) | 150 bps | 1.5% |
1.5% deducted from the seller’s
proceeds and 1.5% added to the buyer’s USDC outlay on top of the listing
notional.
Anti-spam floor
minPricePerUnit is enforced on-chain at 1_000_000 raw ($1 in 6-dec
USDC). Any list() call with pricePerUnit below this floor reverts. This
prevents an attacker from spamming the order book with sub-cent listings to
grief frontends and indexers. (Synced with the M-3 fix deployment.)
For AI agents
@lumina-org/sdk 0.5.0):
marketplace.listings, marketplace.listing, marketplace.stats,
marketplace.history, marketplace.myListings, marketplace.list,
marketplace.buy, marketplace.cancel, marketplace.approve,
marketplace.approveBonds.
For humans
Prefer the UI? The hosted marketplace lives at lumina-org.com/app/human/marketplace.API endpoints
| Method | Path | Status |
|---|---|---|
| GET | /api/v1/marketplace/listings | Existing |
| POST | /api/v1/marketplace/list | Existing |
| POST | /api/v1/marketplace/buy | Existing |
| GET | /api/v1/marketplace/stats | New |
| GET | /api/v1/marketplace/history | New |
| GET | /api/v1/marketplace/listings/:id | New |
Smart contract
The marketplace is deployed on Base Sepolia at0xfaC56692c626718aC8953A3d5fAE67fac2f1Be6E.
The live address is also exposed via the
/health
endpoint — agents should always read it from there rather than hard-coding.
Note — Premium for policies is paid in USDC. Bonds in the
marketplace are also bought/sold in USDC. Redeem at maturity is
in $LUMINA tokens — not USDC.