Data sources and freshness
rangebound builds its numbers from on-chain data first. Market data from outside the chain is used only for what the chain can't provide: listed option prices and the underlying stock's own trading.
Sources
| Data | Source | How often |
|---|---|---|
| Swaps, and position opens, adds, removes, closes and fee claims | A live subscription to the three venues' programs on Solana | As they happen, about a second behind the chain |
| Pool price, liquidity in range, fee counters, dynamic-fee state | The pool accounts on Solana | Every 30 seconds |
| Vault balances (TVL) | The pool's token accounts on Solana | Every 10 minutes |
| Liquidity at each tick | Raydium's pool data, checked against the on-chain liquidity at the current price; for Orca, built from the positions in the pool | Every 10 minutes on Raydium, with each position scan on Orca |
| Open positions, ranges, owners, uncollected fees | A scan of every position account in each pool | Every 15 minutes |
| Each position's history | For a position opened since 19 September 2026, the live capture itself, each deposit and withdrawal valued at the price it happened at; for one opened before, its own transactions on Solana, read once and followed by the capture after that | As they happen; the older read once, and again only if the capture and the chain disagree |
| Swaps missed during an outage | The pool's transaction history on Solana | Every 10 minutes, for the last 24 hours |
| 24-hour token price change | Jupiter | Every 5 minutes |
| Realised volatility of the underlying | Public market data for the listed stock or ETF | Every 5 minutes |
| Implied volatility and option chains | Public listed-option data for the underlying | Every 30 minutes in US market hours |
| Meme tokens | Launchpad and AMM pools on Solana, and Jupiter token data | See Memes |
| Tracked tokens | A fixed list of issuer mints, checked against issuer lists and on-chain authorities | Updated when issuers list new tokens |
Two ways of knowing, and what each is for
Some things are events: a swap happens at a moment and carries its own identity. Others are state: a pool's price or its TVL has a value at every instant and has to be read. Events are captured as they occur; state is read on a schedule, and between two readings anything may have happened.
Most of this page is about state, and the schedule above is what governs it. The Terminal is the event side: it receives swaps and position changes as the chain emits them, which is how it can show a position that opened, was added to and closed inside a single fifteen-minute gap in the position scan.
Why fees come from counters, not from swap-by-swap indexing
Each pool keeps running totals of the protocol's share of fees. Because that share is a fixed fraction of every swap fee, the change in the totals between two readings gives the exact fees paid in between, with no swap missed. Volume follows by dividing fees by the fee rate.
This was checked against fully decoded swap histories: volume from counters matched decoded swaps to within a few percent on almost every pool. See Fees, volume and APR.
Swaps are now captured directly as well, and the two are used for different things: the counters remain the source for every published fee and volume figure, because they cannot miss a swap, while the captured swaps drive the Terminal and are reconciled against the counters as a check on the capture. Where they disagree, the counters are right and the capture has dropped something.
After an outage
If data collection stops, for example during a restart, the gap in the last 24 hours is rebuilt from the pool's transaction history, one reading per minute. The same repair covers the live subscription: if it drops, the interval is recorded and refilled from the chain rather than left as a hole. The rebuilt hours match swap-by-swap data to within about 1% on volume. 24-hour figures therefore don't need a day to recover after a restart.
When data is stale
Every page carries a pill beside its title saying how old the published data is: Fresh under five minutes, then Stale with the age. Past five minutes a banner appears as well. Pages keep working on the last good data and refresh on their own when new data arrives.
Tokens and lookalikes
Only tokens minted by the real issuers are tracked. A token with the same name but a different mint address is left out of every figure on every page. The list itself isn't shown - the filter's working is not something a reader needs - but an alert fires when a new one appears.