Candles
OHLCV of ONE pool of the token, in USD: the main pool (traded in the last hour first, then the deepest) unless pool names another. Not a volume-weighted blend of every pool: use /chains/solana/token/{address} for totals across pools. The window holds limit buckets ending with the open one; buckets without a trade are absent. A swap under $1 adds to the volume but does not move the open, high, low or close. Cached 5 seconds for 1m, 20 seconds otherwise.
Chord's own Solana tape, read-only. No key needed.
- What it reads. The swap events of 11 venues: PumpSwap, the pump.fun bonding curve, Meteora DBC, Meteora DAMM v2, Meteora DLMM, Meteora pools (dynamic AMM v1), Raydium CLMM, Raydium CPMM, Raydium AMM v4, Raydium LaunchLab and Orca Whirlpool. Each swap is checked against the pool vaults' balance changes in the same transaction.
- What it does not read. Prop AMMs (SolFi, HumidiFi and the like) and order books. SOL/USDC and other major pairs therefore show far less volume than the whole market; the numbers are accurate for pump.fun, Meteora and Raydium style tokens. Transfers are not seen either: wallet PnL is average cost inside the window.
- History. Live since 2026-10-03 12:01 UTC, plus a backfill of the days before. coverageSince on /chains/solana/overview says from when totals are complete: quote that field, not a date.
- Addresses are base58 and case-sensitive. Never lower-case a mint or a wallet: a lower-cased mint is a different string, refused with 400 BAD_ADDRESS when it stops being base58 (an L becomes l) and answered 404 TOKEN_NOT_FOUND otherwise. Solana has no numeric chain id here: the path segment is the literal solana.
- Units. Token amounts are whole tokens (decimals already applied), quoteAmount is whole units of the pool's quote (SOL, USDC, USDT or the other token), prices and *Usd fields are US dollars. Timestamps, updatedAt included, are Unix seconds.
- Names are untrusted. symbol, name and image are whatever the token's creator wrote; many mints share a symbol and there are no wash or impostor flags. Identify a token by its mint.
- Errors. 400 BAD_* for a bad parameter; 400 UNSUPPORTED_CHAIN if Solana is not public on the deployment and the request has no X-API-Key; 503 CHAIN_DATA_UNAVAILABLE when the Solana store cannot be read in time and 503 CHAIN_NOT_ENABLED when the lane is off: retry later, never read either as "no trades".
Request
- Base URL: https://api.getchord.xyz/v1
- URL: https://api.getchord.xyz/v1/chains/solana/token/{address}/candles
- Auth: none declared
Path parameters
Solana address, base58, case-sensitive. Never lower-case it.
Token mint, base58, exactly as it appears on-chain.
Query parameters
Timeframe.
Buckets in the window.
Solana address, base58, case-sensitive. Never lower-case it.
A pool of this token (from /chains/solana/token/{address} pools). Default: the main pool.
Response
pool: null with no candles = the tape has no priced pool for this mint.
Changes
No recorded changes to this operation across all 2 revisions of this API.