Solana swaps

Status of a sent swap

pending until the transaction is in a block, then confirmed / finalized with receivedOut, or failed / expired (its blockhash ran out; an RFQ order unseen for two minutes). Only transactions sent through /sol/trade/send.

Open to everyone since 2026-10-15, no key needed (an X-API-Key raises the rate limit). /sol/trade/config says whether the lane is on for the caller; when it is off the other routes answer 503 TRADE_NOT_ENABLED.

A quote is SOL against one token, bought or sold. For every quote Chord builds, for your wallet, the transaction of each route — direct (Chord's own router: Raydium AMM v4 / CPMM / CLMM, Orca Whirlpool, Meteora DLMM / DAMM v2, Meteora DBC, Raydium LaunchLab, pump.fun, PumpSwap; up to two pools), jupiter (Jupiter's swap API, no Jupiter fee) and jupiter_meta (Jupiter's order: Metis, its RFQ market makers, DFlow, OKX; Jupiter's fee inside the amount) — simulates each on the chain and returns the one that leaves the wallet with the most: tokens for a buy, SOL for a sell, after every fee. Ties go to direct, then jupiter. A route handing back under half of the input's market value is refused.

Amounts are base units as decimal strings: lamports for SOL, the token's smallest unit otherwise. Addresses are base58, case-sensitive. Chord takes no fee on Solana today. Nothing is signed by Chord: you sign quote.tx unchanged and send it back.

get/sol/trade/tx/{signature}

Request

  • Base URL: https://api.getchord.xyz/v1
  • URL: https://api.getchord.xyz/v1/sol/trade/tx/{signature}
  • Auth: none declared

Path parameters

signaturestring required

Transaction signature, base58.

From /sol/trade/send.

Response

signaturestring

Transaction signature, base58.

status'pending' | 'confirmed' | 'finalized' | 'failed' | 'expired'
route'direct' | 'jupiter' | 'jupiter_meta'

direct = Chord's own route (pump pools or Chord's router) · jupiter = Jupiter's swap API · jupiter_meta = Jupiter's order (RFQ makers, DFlow, OKX).

mintstring

Solana address, base58, case-sensitive. Never lower-case it.

side'buy' | 'sell'
walletstring

Solana address, base58, case-sensitive. Never lower-case it.

sentAtinteger

Unix seconds.

sendsinteger

How many times Chord sent it (every 2 seconds until it lands or its blockhash expires).

slotinteger nullable
errorstring nullable
quotedOutstring

Base units as a decimal string (lamports for SOL).

receivedOutstring nullable

What the wallet really got, read from the landed transaction with the quote's measure.

confirmedAtinteger nullable

Unix seconds.

Changes

No recorded changes to this operation across all 2 revisions of this API.