Quote on any chain: Chord first, a fallback only when it fails
One call that ends in a route you can sign or an honest "no route anywhere". Without taker it is a price; with taker it also returns the unsigned transaction, the approval it needs and a simulation.
Policy
- Chord's own router is always asked first, with its normal budget.
- A fallback is asked only when Chord fails: the engine timed out, errored or is down; there is no route; Chord refuses the route itself (value guard, taxed token, stale bonding-curve route); the chain's router is not live; or the built transaction fails simulation. A better price elsewhere is not a reason. A user error (unknown token, bad amount) never falls back.
- Fallbacks are tried in the chain's order (GET /meta/providers); the first answer that passes every check wins. Per provider 4 s, whole request 9 s, a circuit breaker per provider and chain.
Safety, on every fallback answer
- The transaction target and the approval spender must be on Chord's allowlist for that provider and chain, and deployed there.
- minAmountOut comes from your slippage; a provider minimum below it is refused.
- The value guard of /quote applies: an output worth 30 % less than the input at Chord's prices is refused. An unpriced token gets a security scan (safety); a honeypot is refused.
- With taker, the transaction is simulated as that wallet and must deliver at least minAmountOut. A fallback transaction that cannot be simulated is never returned.
- Without taker, a fallback price is shown only after the provider BUILT the route and it was simulated for a placeholder wallet (PRICE_CHECKED); a provider that prices a size but will not build it is skipped. The placeholder's transaction is never returned.
- An input the simulation cannot supply (a balance that is not a plain storage mapping, e.g. rebasing shares) while the taker does not hold it: HTTP 422 INPUT_NOT_SIMULATABLE — hold the input and ask again.
Notes
- provider: null with HTTP 200 means every provider looked and none has a route. HTTP 503 UNAVAILABLE means nobody could answer right now: retry, do not conclude the pair is untradeable.
- The answer is good until expiresAt (30 s). Quote again before signing if you waited.
Request
- Base URL: https://api.getchord.xyz/v1
- URL: https://api.getchord.xyz/v1/meta/quote
- Auth: none declared
Query parameters
Chain id or key: 143 monad · 4663 robinhood · 5042 arc · 43114 avalanche · 8453 base · 56 bnb · 42161 arbitrum · 1 ethereum.
EVM address, hex, case-insensitive.
Token you sell. The zero address = the chain's native asset (on Arc it aliases to the USDC predeploy). inputMint is accepted too.
EVM address, hex, case-insensitive.
Token you buy. outputMint is accepted too.
Amount in the token's smallest unit, as a decimal string. Never a float.
Input amount, smallest unit.
Sets minAmountOut.
EVM address, hex, case-insensitive.
The wallet that signs and receives. With it the answer carries tx, approval and simulation. userPublicKey is accepted too.
Response
The quote. Read provider and fallbackReason before anything else.
Changes
No recorded changes to this operation across all 1 revision of this API.