Documentation
How PrysmSystem markets work
Two instruments, one mechanism
Every PrysmSystem market is a fixed-expiry series of complementary outcome shares, fully collateralised in USDG. A complete set is one ▲ UP share and one ▼ DOWN share; minting a set locks a fixed amount of collateral C (for the first series, 1 USDG). At expiry the settlement value x of the series’ index decides how C is split. These are not perpetual futures: there is no funding, no leverage, no liquidation and no margin.
Prysm Vol
Settles to the arithmetic mean of the hourly closes of Deribit’s BTC DVOL index over the settlement window that ends at expiry. DVOL is a 30-day constant-maturity implied-volatility index derived from BTC option prices; “30-day” is the option horizon, not this market’s expiry. This is implied volatility, not realised (historical) volatility.
Two horizons matter and both are shown on every series page: DVOL’s 30-day option horizon (what the number measures), and the series’ own expiry (when it is measured). A weekly series on a 30-day index is normal: it settles on what the market’s 30-day expectation is at that moment.
Prysm Funding
Settles to the arithmetic mean, over the settlement window ending at expiry, of the hourly realised funding-rate spread: the BTC perpetual funding rate on the Lighter Robinhood Chain domain minus the BTC perpetual funding rate on Hyperliquid. Both venues pay funding hourly; rates are normalised to a signed fraction per hour (positive = longs pay shorts) before subtracting. Only hours where both venues have a realised rate count. This index describes funding differences; holding a share does not collect any funding.
Venue A is the Lighter Robinhood Chain domain (contract 0x94bA…fF9d on chain 4663), verified by pnpm verify:config; venue B is Hyperliquid. Lighter reports hourly funding as a percent with a direction; Hyperliquid as a signed fraction. Both are normalised to a signed hourly fraction (positive = longs pay shorts) with 12 decimals before subtracting. Annualised figures in the interface are display conventions (× 24 × 365), never stored or settled. Indicative next-hour rates are never used; only realised, paid funding.
A funding-spread share is a bet on an average of differences. It does not receive funding from either venue, it is not a hedge of a perpetual position, and it is not an arbitrage or a yield.
Payoff and worked examples
With lower bound L, upper bound U and settlement value x:
upRatio = clamp((x − L) / (U − L), 0, 1) (1e18 fixed point, floored) UP payout = qty × C × upRatio / 1e36 (floored) DOWN payout = qty × C × (1e18 − upRatio) / 1e36 (floored)
Rounding policy: minting rounds the locked collateral up, merging rounds the released collateral down, ratios and payouts are floored. Therefore UP + DOWN for any quantity never exceeds what minting locked, and aggregate payouts never exceed the series reserve (a tested contract invariant). Rounding remainders stay in the reserve and can be swept only once no share of either outcome exists.
Example 1 — Prysm Vol, buy 100 UP
Series bounds L = 30.00, U = 90.00 vol points; C = 1.00 USDG per set. You buy 100 UP shares at 0.42 USDG each from a maker’s signed order; the taker fee is 0.20%.
| Cost (100 × 0.42, rounded up) | 42.00 USDG |
| Protocol fee (0.20% of cost) | 0.084 USDG |
| Total paid = maximum loss | 42.084 USDG |
| Maximum redemption (x ≥ 90): 100 × C | 100.00 USDG |
| Maximum net profit | 57.916 USDG |
| Settles at 45.00 → ratio 25% | 25.00 USDG (net −17.084 USDG) |
| Settles at 72.00 → ratio 70% | 70.00 USDG (net +27.916 USDG) |
| Settles at 95.00 → capped at 100% | 100.00 USDG (net +57.916 USDG) |
| Settles at 28.00 → floored at 0% | 0.00 USDG (net −42.084 USDG) |
Note the nonlinearity: above U or below L, further index moves change nothing. Note also that the share’s price today (0.42) and its redemption value at 45 (0.25) are unrelated numbers: buying above the eventual redemption value loses money even though the index rose from, say, 40 to 45.
Example 2 — Prysm Funding, hold 40 DOWN
Bounds L = -0.0500 %/h, U = 0.0500 %/h. The settlement window averages to -0.0120 %/h (Lighter paid less than Hyperliquid on average). You bought 40 DOWN at 0.55.
| Cost incl. 0.20% fee | 22.044 USDG (22.00 USDG + 0.044 USDG) |
| upRatio = (x − L)/(U − L) | 38.00% |
| DOWN payout = 40 × C × (1 − upRatio) | 24.80 USDG |
| Net | +2.756 USDG |
Mint and merge rounding
| Mint 1.000000000000000001 sets locks (ceil) | 1.000001 USDG |
| Merge the same quantity releases (floor) | 1.00 USDG |
| Dust left in the reserve | 0.000001 USDG |
These numbers are computed from the same integer arithmetic the contracts use; the repository replays them through the compiled PayoffMath library in its test suite.
Executable liquidity
Backing is not liquidity. A minted set only proves that its two shares are worth C together; to trade one share for collateral someone must be on the other side. PrysmSystem uses collateralised limit orders: a maker signs an EIP-712 order (chain id, settlement contract, series, outcome, side, quantity, price, expiry, nonce, optional private taker) off-chain; a taker fills any part of it on-chain, where shares and collateral move atomically and the maker’s balance and approval are what make it executable. Nothing is escrowed. The order store is discovery only; the chain is the judge of validity, and every quote shows the block at which the maker was last checked. Partial fills, cancellation (by hash or by nonce floor), expiry and replay protection are enforced by the contract; takers set a maximum spend / minimum receive and a deadline.
If there is no order on the side you want, the interface says “No executable quotes”. It never shows synthetic depth.
Settlement lifecycle
- Open — mint, merge and fill.
- Trading closed (tradingCloses) — no more fills or mints; merge still works.
- Observation pending (expiry) — the publisher computes the windowed mean of the hourly index points in [expiry − window, expiry). If coverage (observed hours ÷ expected hours) is at least the series’ minimum, it signs an observation with observedAt = expiry and relays it.
- Settlement proposed — the proposal waits for the challenge delay. The guardian may reject it (with a public reason) in that window; if the oracle’s rate limit flagged the value as extreme, the guardian must explicitly confirm it before it can finalize.
- Finalized · redeemable — anyone finalizes after the delay; holders redeem UP and DOWN shares for their payouts, forever.
Terminal fallback. If nothing is finalized within maxSettlementDelay of expiry (source outage, under-covered window, a flagged proposal nobody confirms), anyone may call resolveFallback. The rule is fixed in the series terms: use the last oracle-accepted pre-expiry value if it is within fallbackMaxAge of expiry, otherwise settle at a fixed UP ratio (50% for the first series). This can differ materially from the last traded prices and from what a working oracle would have produced; it exists so that no series can stay unresolved. There is no “refund the purchase price”: shares are transferable and current holders may have paid different prices.
Oracle and failure handling
The oracle is a signed single-publisher adapter. It is not a decentralised oracle network and the interface never calls it one. Each observation carries the feed id, the value and its precision, the observation timestamp, the publication timestamp, a sequence number, the methodology id and the publisher’s EIP-712 signature bound to this chain and contract. On chain: the signer must hold the publisher role; sequence numbers strictly increase; observation time never goes backwards; publication time is not in the future and not older than the feed’s maximum age; the value must lie within the feed’s plausibility bounds (a value outside them is rejected, never clamped); a move larger than the feed’s maximum step is parked and the feed enters a breaker state until the guardian confirms or dismisses it. Confirming applies the genuine extreme value, so a truly volatile market can always be settled correctly — it just takes two parties instead of one.
Trust assumptions: the publisher and the guardian can, together, settle a series at a wrong value inside the bounds. They cannot take collateral (no such function exists), cannot change series terms and cannot block redemption after finalization. Pausing stops new risk only.
Risks
- A share can expire worth nothing; the maximum loss is what you paid plus fees. Capped is not risk-free.
- Settlement depends on third-party data (Deribit, Lighter, Hyperliquid) and on the publisher/guardian process described above, including the documented fallback.
- Liquidity is whatever makers offer. There may be no bid when you want to exit before expiry.
- Smart contracts can have bugs. The contracts are unaudited; the test suite (unit, fuzz, invariant) is not an audit.
- Funding-spread markets describe an index of differences; they are not an arbitrage, do not collect funding and are not a hedge for a perpetual position.
Eligibility and access
PrysmSystem is software that interacts with public smart contracts on Robinhood Chain. Derivatives may be restricted or prohibited for residents of some jurisdictions; it is your responsibility to determine whether you may use these instruments. The operator has not obtained any licence or regulatory approval and makes no representation that access is permitted anywhere. Access requirements, if any, are configured and disclosed by the operator of a given deployment.