Technical documentation

The protection system, deployed and settling.

Pararail lets a prediction-market participant buy protection on a position: they pay a small premium up front, and if the outcome goes against them, the contract pays out a pre-agreed coverage amount automatically — no claims process, settled on-chain by an oracle result.

This page documents the system as it exists today: live contracts on the Polygon Amoy testnet, a single real policy that was purchased and settled end-to-end, and the full address registry so anyone can verify it on the block explorer.

Deployment verified on Polygonscan · deploy block 46,976,274 · manifest status: verified · Polygon Amoy testnet, Circle test USDC.

01 — Worked example

A policy, from purchase to payout

In the settled example, a participant holds a 0.10 USDC position on a market outcome and insures 80% of it. Here is the entire quote:

Quote fieldValueMeaning
notional0.10 USDCthe participant's position being protected
coverageBps8,000 (80%)share of the position they chose to insure
coverageAmount0.08 USDCnotional × 80% — the amount paid out on an adverse result
premium0.01 USDCwhat they pay for the protection

The premium and the payout are different things — this is ordinary insurance. The 0.01 premium is the price; the 0.08 coverage is the insured amount. When the adverse outcome resolved, the buyer received the full 0.08.

The 0.01 figure here was a fixed value chosen to exercise the settlement path. The premium a real participant would pay is produced by the pricing engine from live order books — shown next, and independently verifiable against the deployed contract.

What the buyer nets

OutcomeOn the positionFrom PararailNet vs. unprotected
Pick loses (adverse)−0.10+0.08 payout − 0.01 premium−0.03 (vs −0.10)
Pick winsposition intact−0.01 premium−0.01

Where the premium goes

The 0.01 premium is split on-chain the moment the policy is bought:

RecipientShareAmount
Treasury (platform fee, 15%)1,500 bps0.0015 USDC
Room A vault (senior)80% of vault premium0.0068 USDC
Room B vault (junior, 20% share)2,000 bps0.0017 USDC

The vaults that take the payout risk keep 85% of every premium; the treasury takes 15%. On the adverse settlement, Room A's assets moved from 2.006801 → 1.926801 USDC — down exactly the 0.08 payout.

The four on-chain steps

  1. Purchase protection — buyer submits a signed quote; premium is collected and split; coverage becomes an active liability.
    tx 0x4f6db8…d650877
  2. Finalize resolution — the oracle result is proposed, the challenge window passes, and the outcome is locked in.
    tx 0x07562a…cd4704
  3. Settle & pay out — because the outcome was adverse, the 0.08 coverage is paid to the buyer from the vaults; the liability clears.
    tx 0xcf0239…eaa650
  4. Result — PolicySettled for policy 0xebe17241…f3a876e0: premium 0.01 in, payout 0.08 out, utilization back to zero. No manual intervention.

02 — How the premium is priced

The premium comes from the pricing engine, off real order books

Pararail's pricing engine reads captured CLOB order books from a real prediction market and computes the premium as the cost to hedge the coverage plus the market's fee and a margin. For the market "Spread: Al Hazem SC (−1.5)" (captured 2026-09-07, condition 0x31daa8…57c5ef4), the engine priced protection at 1,398 bps of notional. Applied to a testnet notional of 1.00 USDC at 85% coverage:

ComponentAmountSource
Hedge cost (before fees)0.107090 USDCbook VWAP × coverage (executable depth)
Market fee0.004679 USDCthe venue's trading fee
Surcharge / margin0.028063 USDCcollateral basis and buffer
Premium (total)0.139832 USDC1,398 bps of notional

This premium is assembled into an EIP-712 Quote — bound to the demo's on-chain market and signed by the same quoter key the contract trusts — and the deployed controller accepts it: its on-chain hashQuote returns exactly the signed digest 0x5e4b18…ed901af, recovered to the on-chain quoter 0xA9f988…22e0320. That check is reproducible (read-only, no funds) via scripts/verify-demo-quote.sh in the contracts repo.

The pricing engine here is Pararail's shadow model over captured books — a real order-book premium, not a production-qualified quote, on testnet. The 1,398 bps rate is priced from the real book; the notional is scaled to the testnet vault's size.

03 — What's verified on-chain

Every step is a real transaction

A premium is collected and split, coverage is tracked as a liability, an oracle outcome is finalized, and the payout settles with the vault accounting decrementing by exactly the payout. Every step above is a real, verifiable transaction on Polygon Amoy — linked to the block explorer.

04 — Contract registry

Deployed addresses (Polygon Amoy, chain 80002)

All Pararail contracts are source-verified on Polygonscan. External contracts are reused, not deployed by Pararail.

ContractAddress
PararailDualVaultControllercore0xb88650FBae8501CF1ef3956066185a7C07070A8a
Room A vault — pROOM-A (senior)vault0x4ef76619AB04Ac390E46377892c91A69cd076324
Room B vault — pROOM-B (junior)vault0x7D2966cbf561Fa210dfca8491d312Ac2e0503F98
ManualResolutionSource (oracle)oracle0x689e1dE488C2CdD3b2e322aD7C6e5be4c3370d71
DemoDispenser (testnet faucet)demo0x8f0016c46B450A78789F4D4fc2f6095Da0B86d5B
Circle test USDC (collateral)external0x41E94Eb019C0762f9Bfcf9Fb1E58725BfB0e7582
Gnosis ConditionalTokensexternal0x69308FB512518e39F9b16112fA8d994F4e2Bf8bB

Roles

RoleAddress
Owner / deployer / keeper / pauser0x24095345779aaf91bD58F7463d8683861d049233
Quoter signer (signs quotes)0xA9f988d1674E698C7AA24c594ab32748622e0320
Resolver (reports outcomes)0x83F19701D829Cfc717add7e155ab595Cf4359B1F
Treasury (platform fees)0x1eB97f3dfDB11A44B69a4616faA4d02fED0c06bB

Parameters (as configured on-chain)

ParameterValueNote
Platform fee15%of each premium, to treasury
Room B premium share20%of the vault portion of premium
Max utilization80%coverage cap vs. vault assets
Volatility feed max age300 swrites revert if the feed is staler
Claim grace period30 dayswindow before an unsettled policy can expire
Challenge window1 sdemo only — production would be longer
Min resolution age1 sdemo only — production would be longer

Deploy transaction: 0x7e345c…71433a (block 46,976,274).

05 — The two-vault mechanism

Who pays the payouts

Coverage is backed by two vaults. Room A (senior, pROOM-A) and Room B (junior, pROOM-B) both hold USDC collateral and both earn a share of every premium. When a payout is owed, it is drawn from vault assets; the split of premium and of loss between the senior and junior rooms is how capital providers choose their risk/return. In this record the adverse payout was drawn against Room A. The controller enforces a utilization cap so total outstanding coverage can never exceed 80% of vault assets.