Solana Colosseum

Sentinel Protocol

A prediction market for flight delays — hedge your trip.
Parametric · Trustless · Settled on Solana
Powered by Palm USD · PUSD on Solana Token-2022
The Team

Two engineers.
Two continents.

E
Ender (Saurav)
CALIFORNIA, USA
  • 10+ years as a software engineer.
  • Founding Engineer at a Boost VC startup that was acquired.
  • 2 years building in blockchain.
  • Web2: Ruby, Python, TypeScript.
  • Web3: Solidity, Rust, applied ZK.
J
JsMaxi (Jonas)
LITHUANIA, EU
  • 8 years as a software developer (ex–big-bank engineer).
  • Frontend specialist — React, TypeScript, Angular.
  • 2 years in blockchain — Solidity, Move, Rust.
  • Contributor to the OpenZeppelin Soroban Library — vault contracts for SEP-56 (Soroban's ERC-4626 equivalent).
Why We're Building This

A wildfire,
and a better way to pay claims.

I live in Northern California, where wildfires have repeatedly burned down whole communities — and left people fighting insurers for months.

That experience pushed me toward parametric insurance: payouts triggered by a verifiable real-world event, not an adjuster's judgment. Flights are the right first step — flight status is one of the cleanest real-world data feeds, easy to convert into a trustworthy oracle signal for a smart contract. If we can settle delays automatically, the same architecture extends to fire, hurricane, and other climate-driven risks where payouts matter most.

The timing is right because prediction markets have gone mainstream. Polymarket and Kalshi made it normal to bet on real-world outcomes on-chain. Sentinel takes that primitive and points it at something useful: hedging risk you actually face.

Underwriters get real-world DeFi yield uncorrelated with crypto cycles.
Travelers get insurance that pays automatically.
Same mechanism as Polymarket — but more than gambling.
The Problem

Flight insurance
is broken.

  • File a claim. Wait weeks. Get denied on a technicality.
  • Insurance companies profit by not paying. They decide if you get paid.
  • You can't verify the insurer has the money to pay you.
21%
of US flights delayed or cancelled (BTS, 2024)
$28B
global travel insurance market (2025)
33%
of claims denied (Squaremouth)
4–6 wks
average claim resolution time
The Fix

A prediction market.
Used as travel insurance.

Travelers buy delay payouts. Underwriters fund them. The smart contract settles automatically — and from the traveler's point of view, it's parametric insurance.

  • Flight delayed? Payout is automatic. No claim form, no adjuster.
  • The contract is the policy. Anyone can read it. Nobody can rewrite it.
  • An automated keeper checks every 5 minutes. No human in the loop.
  • Every policy is 100% backed. The vault always has the cash.
Pay $12 premium → flight AA123 delayed 3 hours
→ Receive $150 PUSD automatically. No forms. No waiting.
Stablecoin partner
Every premium · every payout · every share is denominated in Palm USD (PUSD).
Token-2022 stablecoin on Solana · mainnet mint CZzgUBvxaMLwMhVSLgqJn3npmxoTo6nzMNQPAnwtHF3s
For Underwriters

Earn yield.
No active management.

Deposit PUSD into the shared vault. Receive shares. Every on-time flight returns premiums — share price rises automatically.

Share price growth
Initial deposit1.000 PUSD/share
After 10 on-time flights1.043 PUSD/share
After 30 on-time flights1.131 PUSD/share
Premium per policy
$12 PUSD
Payoff if delayed
$150 PUSD
On-time rate (US avg)
~80%
Expected yield/cycle
~21%
For Travelers

Hedge your flight.
Get paid instantly.

Pay a small premium. If your flight is delayed, the payout is ready automatically. No claim form. No adjuster. No waiting weeks for a decision.

How it works for you
1
Pick your flight + date
Choose from whitelisted routes. Pay premium in PUSD.
2
Settlement runs automatically
Every 5 minutes, the executor settles. You don't lift a finger.
3
Flight delayed? Collect your payout.
Payout is already credited. Just call claim() and receive PUSD.
Pay $12 → flight AA123 delayed 3 hours
→ Receive $150 PUSD. No forms. No waiting.
0
Forms to file
0
Days to wait
100%
Payout guaranteed
System Architecture

How it works

Five Anchor programs on Solana, driven by an off-chain executor.
Solana (on-chain) EXECUTOR (CRON JOBS) Fetch · Classify · Settle · Reprice 4 keepers run the pipeline ROUTE TERMS Governance ORCHESTRATOR Controller FLIGHT DATA OracleAggregator PER-FLIGHT POOL FlightPool UNDERWRITER CAPITAL Vault 👤 Traveler 🏦 $ Underwriter classify · settle writes ETA reprices terms data register · settle lock · payout premium payout deposit yield premiums (on-time) payout (delayed)
Automation

Four Cron Jobs Run the System

every 2h
📱 ACURAST TEE
FlightDataFetcher
AeroAPI HTTP Fetcher ACURAST TEE 📱 on phone attest Oracle
Pulls flight data from FlightAware. Runs inside an attested TEE on the Acurast phone-processor network — signs with a key the operator can't extract.
every 1h
📱 ACURAST TEE
FlightClassifier
Oracle read Classifier ACURAST TEE 📱 on phone OnTime Delayed Cancelled
Also an oracle — its verdict (OnTime / Delayed / Cancelled) is what unlocks payouts. Runs inside the same attested Acurast TEE so the classification is signed on-device and tamper-proof.
every 5m
SettlementExecutor
Settler settle() FlightPool Vault premiums payouts
Settles classified flights, moves capital, processes withdrawals.
daily
RouteRepricer
XGBoost Grok agent Repricer $1 — $5 PUSD update Govern. terms
Updates each route's premium daily. The model uses past delay history; Grok checks for storms or war zones. Bad conditions → premium up. Unsafe → route disabled.
Decentralised Oracle · DePIN

The Oracle runs on a phone.

Sentinel's flight-data oracle runs on Acurast — a DePIN network where the workers are real Android phones. Our TypeScript runs inside each phone's secure chip; the API calls and the on-chain writes both happen from inside the TEE.

Acurast Processor cluster — real Android phones running attested TEEs
Acurast Processor cluster · each phone Ⓜ a trusted compute node
📱
DePIN — phones as workers
Acurast is a DePIN network that turns retired Android phones into trusted compute nodes. We pay per run, not per server — no AWS, no single operator. If one phone goes offline, another picks up the job.
💻
Our TypeScript runs inside the TEE
The fetcher's TS code is deployed straight to the phone's secure chip. The AeroAPI calls go out from inside the TEE, and the signed write to Solana comes back out the same way.
🔒
Attested signing — keys can't be extracted
The signing key lives inside the secure hardware. Nobody — not even the phone's owner — can read or steal it. Solana verifies the signature came from an attested key on every write, or rejects it.
📝
Publicly verifiable code hash
We can publish the hash of the code running inside the TEE. Anyone can verify that the oracle Sentinel claims to run is what's actually executing on the phones.
How we scale

One API call per insured flight.

A naive insurer polls every flight, every hour. We don't. Flights enter the oracle's watch list only when someone buys coverage. We only call the API after a flight should have landed. The moment settlement runs, the flight drops off the list. Cost scales with active policies — not with flights in the sky.

REGISTER buy_insurance() Controller register OracleAggregator ActiveFlightList — source of truth for all flight state 1 BA200 NotInitiated ETA: — waiting for ETA 2 DL789 Active ETA: 18:00 before ETA — waiting 3 AA123 Active ETA: 14:30 ▶ calls API (ETA+1h) 4 UA456 Landed actual: 16:45 ready for Classifier 5 AF300 ToBeSettledDelayed ready for Settler DEREGISTER execute_settlements() Removed from active list ACURAST TEE · 2h Fetcher 📱 runs on phone FLIGHTAWARE AeroAPI writes ETA or actual arrival via Controller · every 1h Classifier SCALING WIN 1 API call per insured flight. Cost scales linearly. LIFECYCLE NotInitiated Active (has ETA) Settled → removed
The Pricing Brain

Two layers. Both matter.

A flight from JFK to LAX next Tuesday is fundamentally different from JFK to Tehran during a war. One number can't price both. So we use two layers — one looks backward, one looks forward.

📚
Layer 1 — The starting point
What history says
We trained an XGBoost classifier on millions of past US flights from the Bureau of Transportation Statistics (BTS). Tell it the carrier, route, time of day, and day of week — it tells you the chance the flight runs late.
Example. "Delta JFK→LAX, 9 AM weekday."
XGBoost says: 19% chance of being late.
Starting premium: $1.76 for a $10 payout.
That's the fair baseline based on history alone — clamped to a $1–$5 range so cheap flights aren't free and expensive ones don't cost more than the payout itself.
🌎
Layer 2 — What's happening now
What the world says today
History doesn't know about today's hurricane, today's ATC strike, or today's war. So every day we ask Grok — with live web search — what's happening on each route. It either nudges the premium up… or pulls the route entirely.
Storm coming. JFK→LAX, blizzard forecast.
Grok: bump premium ×1.4. $1.76 → $2.46
War zone. JFK→Tehran, active conflict.
Grok: disable route. No new policies.
Auto re-enables when the storm passes or the conflict cools. The cron only re-opens routes it disabled itself — never overrides a human admin's decision.
BTS data XGBoost Grok (live search) RouteRepricer cron on-chain governance update
Runs daily. Premium reflects both the long-run risk of the route and the conditions of the day — without ever leaving the $1–$5 band, or paying out more than $10.
Solvency

Every policy is
100% backed. Always.

Before every sale, the contract checks: does the vault have enough free cash to cover this payout? If not, the sale is refused. No exceptions.

Vault state — 3 active policies
Total Assets
$500
Locked (3×$100)
$300
Free Capital
$200
✓ allowed — vault has $200 free, payout is $100. Plenty of cash.
✕ blocked — vault has $100 free, payout would be $100+. Not enough.
FIFO Withdrawal Queue

Capital is locked
fairly, not arbitrarily.

If your withdrawal would dip into locked capital, it joins a queue. As flights settle and cash frees up, the queue drains in order — first in, first out. No jumping the line.

Queue drains after settlement
Withdrawal queue — first in, first out
A
Alice
500 shares → 512 PUSD
collected
B
Bob
300 shares → queued
waiting
C
Carol
800 shares → queued
waiting
D
Dave
200 shares → queued
waiting
Flight AA100 settled OnTime — capital released → queue processes FIFO