Prices and freshness
Which prices Pair uses, where each comes from, how old each one may be, and what stops a trade.
Pair uses two kinds of price, for two different jobs.
| Price | Used for | Source | Age |
|---|---|---|---|
| Display prices | Pair lists, the launch page, market caps | CoinGecko market data, cached on the Pair server | Refreshed every 10 minutes |
| Trade prices | Every buy and sell on a cross-chain pair | A signed price from an oracle network, carried in the transaction | Checked against the current Solana slot |
Display prices
The lists on Pairs and the launch page come from CoinGecko. The Pair server fetches each chain's list once, keeps it for 10 minutes, and serves the same copy to every visitor. When a refresh fails, the site keeps showing the last good list with its real age, labelled "Updating". Display prices never settle a trade.
Trade prices
A cross-chain trade carries a signed price of the pair coin. The Pair program checks it on Solana before anything moves:
- the signature belongs to the oracle network
- the price is for the right coin
- the price is from the current or previous slot
Oracle networks sign prices for the coins they list. Pair takes each coin's price from the networks that cover it, in this order: Pyth, Chainlink Data Streams, then a Switchboard feed built from the coin's largest markets on its home chain. Where two sources cover a coin, the program compares them.
When a trade stops
| Condition | Result |
|---|---|
| The price is older than the allowed window | The transaction fails and nothing moves |
| Two sources disagree by more than the limit | Trades on that pair pause until they agree |
| The price moves more than the limit inside one slot | The pair pauses briefly, then resumes at the new price |
Why the fee matters here
A trader who sees a move on the home chain before the next signed price could try to buy at the older price and sell at the newer one. That round trip pays the 2.5% fee on the buy and again on the sell, 5% in total, so it only pays for moves larger than 5% inside one slot. The pause rule above covers those.