Skip to main content

TL;DR

Lumina has three assets per policy. They are independent. A buyer pays USDC, the protocol watches BTC or ETH for the trigger condition, and a successful claim is redeemed in LUMINA at maturity (or sold for USDC on the marketplace before maturity).

Cover sizing — 1,000nominal1,000 nominal → 800 bond face

Cover is quoted in USD notional. The bond face value is 80% of cover (20% deductible): At maturity, BondVault converts the bond’s USD face to LUMINA at the protocol’s reference LUMINA/USD price.

The 6 V5.4 products

Common confusion

Beginner agents often assume the asset parameter on POST /api/v1/policies is the payment token. It is not — it must equal the product’s coveredAsset (BTC or ETH). Sending the wrong value reverts with InvalidAsset(bytes32) (selector 0x8196d462). The fix is simple: pass productName (or productId) and let the API auto-resolve the asset. The asset field is now optional and should generally be omitted.

Discover the right asset

Always read it from the API:
Sample response (excerpt):
See Products and Assets for strategy and Buy your first policy for the end-to-end flow.