How it works
Prices and sessions
The xStock paths price everything from one source: the underlying ETF's price on Pyth Pro, times the xStock's multiplier. Which US equity session is open decides whether the paths run and how wide their band is.
One price source
SPYx is priced from Pyth Pro's SPY feeds and QQQx from its QQQ feeds, multiplied by each xStock's multiplier. Nothing else goes into a mint or a redeem: no DEX pool, no wrapper's exchange rate and no round-the-clock xStock token feed, so trading SPYx or QQQx on a DEX doesn't change the price a mint or a redeem uses.
value = raw × M × P
- raw
- the xStock in raw units
- M
- its multiplier, read from the mint in the same instruction
- P
- the ETF's Pyth Pro price
The four sessions
Each ETF has four Pyth Pro feeds, one for each session. The session is whichever feed is fresh, meaning updated within the last 10 seconds. When none is, the collateral's paths are closed.
| Session | Hours, New York time | Band |
|---|---|---|
| Pre-market | 4:00–9:30 | 15 bps |
| Regular | 9:30–16:00 | 5 bps |
| Post-market | 16:00–20:00 | 15 bps |
| Overnight | 20:00–4:00, Sunday to Thursday | 25 bps |
The overnight session trades on alternative venues, led by Blue Ocean ATS. Times are on the New York clock, and the app shows them in ET.
Session bands
Minting values your xStocks at the price less the band; redeeming pays them out at the price plus the band. The band is narrowest in the regular session and widest overnight.
P_low = P × (1 − band) used to mint P_high = P × (1 + band) used to redeem
- P
- the ETF's Pyth price
- band
- 5, 15 or 25 bps, by session
The fee is taken after the band. The session chip in the app's top edge shows the session and when it ends or opens; the token menu and the Mint pane give the band.
Weekends and holidays
No session runs from Friday 20:00 to Sunday 20:00 ET, and none on NYSE full-day holidays. In that time:
- the xStock paths close, and the app shows when they open;
- the USDC paths keep running, so you can mint and redeem with USDC at any hour;
distributewaits for the next live window, since every collateral must have a fresh price for it to run.
The session week above is this week on the New York clock, half an hour a cell, with holidays applied.
The hedge market's hours
An xStock path also needs its perp to be trading, so a deposit can be shorted at once. The SP500 and XYZ100 perps trade from Sunday 18:00 to Friday 17:00 ET, with a daily pause from 17:00–18:00 ET, Monday to Thursday. During a pause the button reads Hedge reopens 18:00 ET.
The multiplier
xStocks are Token-2022 tokens with a scaled UI amount. Dividends are reinvested and splits applied by changing the multiplier, so raw balances never change and a wallet shows raw × M. The issuer schedules a new multiplier ahead of time, and it takes effect at its time with no write to the mint:
M = now ≥ new_multiplier_effective_timestamp ? new_multiplier : multiplier
| Token | Multiplier on 2026-10-08 |
|---|---|
| SPYx | 1.005714560286254 |
| QQQx | 1.0034560758968376 |
The app reads the multiplier live, and shows every xStock amount the way your wallet does.
Corporate-action windows
From 24 hours before a scheduled multiplier change until 1 hour after it, that collateral's xStock paths close and distribute skips. The button reads Reopens and the time. The other collateral and the USDC paths keep running.
How a price reaches the program
- When you press an xStock action, the app asks aequa's price relay for a signed update. The relay holds the Pyth Pro key on the server.
- The update carries Pyth's signature, so it can travel through the app and your wallet unchanged.
- Your transaction includes it, and the program verifies the signature through Pyth's on-chain program before it reads the price. It accepts an update at most 10 seconds old.
The session chip
| Session | Chip cell |
|---|---|
| Regular | Solid, blue |
| Pre-market, post-market | Equal box |
| Overnight | Plus |
| Closed | Dot, with the time it opens |