Parametric insurance
Parametric insurance pays out automatically when a measurable event crosses a threshold — no claims adjuster, no paperwork, no months of waiting. It's a near-perfect match for on-chain settlement: the event is verifiable, the payout is formulaic, the timing matters.
What's missing is the verification step — someone has to confirm "yes, the flight was delayed", "yes, the exchange got hacked", "yes, the rainfall in region X exceeded the trigger". That's what OMY provides.
Use cases
Flight delay insurance
User buys a policy: "Pay $200 if flight LH123 on 2026-03-15 departs more
than 3 hours late." The policy contract escrows $200 in USDT. On the flight
date, the contract calls RequestResolution with the question. An asserter
verifies via flight data API (FlightRadar24, FlightAware) and proposes the
answer + bond. After liveness, the answer is accepted and the payout fires —
or the user's premium is forfeit.
Smart-contract exploit cover
A DeFi user buys cover against a specific protocol getting exploited within a year. The cover pool escrows the payout. Trigger: "Did protocol X experience a verified exploit resulting in loss of user funds > $1M between dates A and B?" Resolver: OMY. If yes, payout fires; if no, premium goes to the pool.
Weather / agricultural
A farmer buys index insurance against drought: "Did rainfall in district X between months Y and Z fall below 30mm according to source W?" OMY verifies the answer. Insurer pays out automatically.
The contract shape
struct PolicyState {
holder: address
triggerQuestion: cell
payoutAmount: coins
deadline: uint32 // when the event window closes
status: uint8 // OPEN | AWAITING | PAID | EXPIRED
boundAssertion: address?
}
match (msg) {
OracleResult => {
var st = Storage.load();
// Anti-spoof + dedupe
assert (in.senderAddress == st.boundAssertion!) throw Err.NotOurOracle;
assert (st.status == STATUS_AWAITING) throw Err.AlreadyHandled;
if (msg.answer) {
// Trigger fired — pay out
st.status = STATUS_PAID;
sendUsdt(st.jettonWallet!, st.holder, st.payoutAmount);
} else {
// No trigger — premium stays in the pool
st.status = STATUS_EXPIRED;
}
st.save();
}
// ...
}
Design considerations
The data source is the trust boundary
The hardest part of parametric insurance is defining the data source. The question must reference a specific, verifiable source. Vague references ("if the flight is delayed") get disputed forever; specific references ("according to FlightRadar24's actual arrival time field, ≥ 3h vs scheduled") have a single source of truth.
Some practical patterns:
- Use authoritative APIs: flight data → FlightRadar24, weather → NOAA, smart-contract exploits → official postmortem from project + 3rd-party audit firm
- Reference exact field names: "the
actual_arrival_timefield atflightradar24.com/data/flights/lh123/...minus thescheduled_arrival_time" - Specify timezone, threshold, and tolerance explicitly
Pool design
A single-policy contract is fine for proofs of concept, but real insurance needs a pool model:
- Premiums from many policies → one pool
- Payouts from policies that trigger → drawn from pool
- Pool surplus → to LP / underwriter
- Pool deficit → policies pay out pro-rata until exhausted (or LP gets margin-called)
OMY doesn't dictate the pool model — that's your business logic. It just provides the truth signal for whether each policy's trigger fired.
Liveness sizing
For insurance, liveness should be longer than for prediction markets because:
- The payout amount per policy is fixed — there's no continuous trading pressure for fast settlement
- The dispute incentive is asymmetric — a single insurer might lose $200,000 on a wrongly-decided claim while a watcher bot only earns the dispute bond
- Off-chain verification (flight data, weather data, exploit confirmation) may take hours
Suggested: 24-72 hours for most parametric insurance. Some events (exploits, where postmortems take days) need a week or more.
Resolver choice
For Phase 1, the committee is appropriate for most parametric insurance —
the signers can quickly verify "did this flight depart on time" against
authoritative sources. As $OMY matures and the DVM accumulates stake,
high-stakes insurance can route to DVM for distributed verification.
Risks
import {DocFeatures, DocFeature} from '@site/src/components/docs/DocFeatures';
Related
- Question templates — phrasing that doesn't get disputed
- Bonds & fees — bond sizing for high-stakes claims