Assay
$ASSAYSoon
Open the app

Cover for stock tokens that stop tracking their stock.

Assay reads Pyth prices for the stock, each token and its redemption ratio. It counts the gap only while the stock market is in its regular session, and pays cover when the gap holds past the trigger.

AAPLxReading…
AAPLonReading…

d = Pwrapper ⁄ (Pstock × RR) − 1

AAPLx
No reading from the API.
AAPLon
No reading from the API.

Shell offsets are drawn at 1,000× the measured d, clipped at ±0.07%. A wrapper below its redemption value sits low on its core; the calipers measure each offset from the core’s centre.

Session time

A stock token trades at all hours, but its stock trades only in the regular session. Outside that session a gap is price discovery, not a failure, so Assay folds those hours out of the record. The trigger, the statistics and the payout use the rest.

AAPLxAAPLonLast 5 days, 5-minute buckets, ET
Reading the series…
AAPLx
Mean d—
p95 |d|—
Worst streak—
AAPLon
Mean d—
p95 |d|—
Worst streak—

Statistics appear once the board has readings.

The trigger

A pool pays when d, taken at the conservative edge of its confidence box (the least depegged point), stays at or below −X for T minutes of the regular session. Observations are signed Pyth updates that anyone can post. A failing one extends the streak if it lands within G of the last; a clear pass resets it; a box that straddles −X changes nothing.

X, trigger depeg
2%
T, streak to trigger
30 minutes
G, largest gap
5 minutes
Payout cap
20%

Parameters of the weekly production pools.

Fail: extends the streakbox −2.12% to −2.06%
−X = −2%

Drag the box, or focus it and use the arrow keys.

Box width set to 0.06% for this illustration; the latest reading sets it when there is one. Classification by the same function the program runs.

Live pools

Reading pools…

The price of issuer risk

Each wrapper has one pool a week. Underwriters deposit USDC and carry the risk; buyers pay the premium up front. The rate climbs with utilization along a kinked curve, so across issuers the pools price how much cover the market wants against each one.

Annualized premium rate, weekly production pools
0%5%10%15%0%25%50%75%100%utilizationkink
Hover the curve to read the rate.

Cover desk

Reading pools…

USDC

Choose a pool to price cover.

Premium, paid up front
—
Maximum payout
—
Utilization
—
Rule
—

Premium from the pool’s last synced book with the program’s own formula. The app quotes it again from chain before you sign.

Buy this cover

Payout

020%2%22%32%average depeg over the streakX
Nothing up to X, then one for one, capped at 20% of notional.

The average is time-weighted over the streak, and fixed when the trigger fires. Claims open at once.

Anyone can post an observation

An observation is one Solana transaction carrying one signed Pyth Pro message. The program verifies the signature itself, so it relies on no oracle operator and no keeper. Buyers and underwriters can each post their own: a failing observation from anyone extends a streak, and a clear pass from anyone resets it.

Feeds in one message
922 Equity.US.AAPL/USD1791 Crypto.AAPLX/AAPL.RR1792 Crypto.AAPLX/USD3132 Crypto.AAPLON/USD
Accepted channels
fixed_rate@200ms, fixed_rate@1000ms
Cost to post
About 0.000005 SOL, plus 1 lamport to Pyth
Post one from a pool page
  1. 1

    Compute budget

    Sets the compute limit for the verification below.

  2. 2

    Ed25519 signature check

    Solana’s native program checks Pyth’s signature over the message carried by the next instruction.

  3. 3

    observe(message)

    Verifies the signer through Pyth Lazer, reads the prices, computes d at its conservative edge and moves the pool’s streak.

Service

Checking…