Skip to main content

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.

A Shield is one parametric product. Each Shield contract owns the logic for verifying a specific condition (e.g. “BTC dropped ≥20% in the last hour”) and minting bonds when that condition fires.

Shape

FieldMeaning
productId (bytes32)keccak256(canonicalName) — e.g. keccak256("FLASHBTC24-001")
payoutRatioBpsCents-on-the-dollar paid out when triggered (8000 = 80%)
triggerProbBpsThe probability the condition fires (drives premium pricing)
marginBpsSafety margin built into the premium
durationSecondsCoverage window length
activeWhether new policies can be purchased
Discover the live set with GET /products or lumina.products.list().

Live products (Base Sepolia, V5.1)

Each row is verified against /products and keccak256(name).
NameproductIdDuration
FLASHBTC1H-0010xe87625ef…dfeaddd1 h
FLASHBTC4H-0010x0c8e45ca…a03d4 h
FLASHBTC24-0010xdc5bcc7d…a7b924 h
FLASHBTC48-0010xb6306087…1ee848 h
FLASHETH1H-0010x6cedbccf…89151 h
FLASHETH24-0010xcc03aef9…f24024 h
FLASHETH48-0010x89a37df7…712d48 h
MICRODEPEG-0010x317c1a64…36407 d
RATESHOCK-0010x8ae1e414…347f7 d

Verifying a productId yourself

import { keccak256, toUtf8Bytes } from 'ethers'
keccak256(toUtf8Bytes('FLASHBTC24-001'))
// → 0xdc5bcc7d6e2e9ca89d46d4f6672db80985d5e86509243dcca44a4e87d871a7b9
The productId is a hash, not an address. The 20-byte addresses you may have seen in old docs were a documentation bug — they’re always 32 bytes.

How a Shield gates triggers

Each Shield has its own submitTrigger(payload, signature). The contract:
  1. Verifies the EIP-712 signature against the oracle’s known signer.
  2. Checks the price-condition logic (different per Shield: a flash-crash check for FLASHBTC*, a sustained-deviation check for MICRODEPEG, etc.).
  3. Calls BondVault.mint(buyer, faceValue) when the condition holds, sending the buyer an ERC-1155 receipt.
There is no “claim” step the buyer has to perform. Once the condition is proven, the bond shows up.