Price and reporters
How a five-minute discount is measured, and who puts it on chain.
Two prices
The reference price is the token's net asset value in SOL, read from the issuer's own on-chain state: the stake pool for JitoSOL and hSOL, Marinade's state for mSOL. It is not a traded price.
The market price is SOL per token in Raydium concentrated-liquidity pools that pair the token directly with wrapped SOL. Only pools approved in the series' price policy count. Routes whose rate is computed from net asset value, and aggregator quotes, are diagnostics, never settlement inputs.
The discount is the gap between the two as a share of the reference, floored to whole basis points, never below zero.
Sampling
A collector reads the finalized state of every approved pool every 15 seconds and keeps the raw account bytes. For a 300-second interval to qualify, each pool needs samples bracketing both ends of the window and no gap longer than 30 seconds. The interval price of a pool is the time-weighted arithmetic average of its samples, each held until the next. With two or more approved pools, the upper median of their averages is the market price. Then the deductible and cap are applied.
Reporters
Each series names three reporter keys at creation. For every interval, one Solana transaction co-signed by two of them submits the interval index, the discount and a hash of the evidence. The program checks that the signers are on the list, that the interval is the next unresolved one, that its window has ended, that the deadline has not passed, and that the values are in range. It does not, and cannot, check that the pool prices were true.
Reporter software replays the retained evidence, recomputes the price from the raw pool bytes, and compares the policy hash with the series before a key ever signs. Every accepted interval extends a rolling SHA-256 commitment stored in the series account and emits an event with the full record, so the history can be audited against the chain.
Deadlines and skips
| Moment | What can happen |
|---|---|
| Interval ends | The report for that interval may now be submitted. |
| Interval end + grace period | Last second a report is accepted. |
| One second later | Anyone may skip the interval. It is resolved with zero accrual, permanently. |
| All intervals resolved, term over | Anyone may finalize the series. |
Skipping costs a transaction fee and nothing else. A stopped reporter set can delay settlement only until every grace deadline has passed. The number of skipped intervals is shown on the series page.
What the app shows
A market page shows two things separately. The current price is the newest persisted observation of any quality, including aggregator quotes, and is for orientation only. The qualified settlement interval is the newest five-minute window that passed the policy, with its timestamp. A newer indicative quote never replaces a qualified interval, and a market with no qualified interval cannot open a series. See Markets and status.