risk-pool lets holders pool that risk and get paid automatically when a
verifiable threshold is crossed. There’s no claims adjuster in the common case. It is
Stellar-only.
How it works
- Capital. The insurer, reinsurers or a donor fund
fundthe pool. Every policy’s full coverage is reserved out of free capital when it’s sold, so the pool can always pay every policy of a product that fires. - Products (Manager). A product has a trigger, a coverage window, a premium rate (bps of coverage) and, optionally, a linked Ankara asset token.
- Policies. Holders
buy_policy(coverage)and paycoverage × premium_bpsin the payout token. For asset-linked products,buy_policy_for_holdingsizes coverage from the holder’s token balance (units × coverage_per_unit ÷ unit_scale), so a farmland-token holder insures exactly their share. - Trigger (anyone, e.g. a keeper). If the condition is met inside the window, the
product becomes
Triggeredand the observed reading is recorded. - Settle (anyone). Each policy pays straight to its holder. Asset-linked payouts are capped by the units the holder still holds. Any unpaid part of the reserve goes back to free capital.
- Expire (anyone). After the window, an untriggered product releases its reserve.
Premiums stay in the pool, and the Manager can
withdraw_capitalwhatever is unreserved.
Triggers
Triggers use the same pluggable oracle and attestation patterns as the rest of Ankara. There are no bespoke data feeds.key is whatever address the oracle publishes the index under. For example, a weather
relayer posts a region’s cumulative rainfall with set_price(<station address>, mm × 1e18).
A stale reading can’t fire a trigger.
Example: drought cover for farmland-token holders
{ kind: "claim-missing", registry: ATTESTATIONS, subject: { kind: "asset", assetId: "SHIPMENT-42" }, claimType: "DELIVERY", deadline }.