Meta aggregator
Unsigned transaction on any chain: Chord first, a fallback only when it fails
The same answer as /meta/quote with a taker required: an UNSIGNED transaction, simulated as the taker. Chord never signs and never holds funds.
Send the pair and amount, or the quoteId of a /meta/quote answer from the last 2 minutes. The policy runs again at the current state, so provider can differ from the quote's: compare before you sign.
Before signing
- approval not null: send token.approve(spender, amount) first. spender is tx.to. With approval.resetFirst: true (USDT on Ethereum, a left-over allowance) send approve(spender, 0) before it.
- When provider is not chord, tx.to is that aggregator's router. Show the user which provider it is.
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.
post/meta/swap
Request
- Base URL: https://api.getchord.xyz/v1
- URL: https://api.getchord.xyz/v1/meta/swap
- Auth: none declared
Request body
Response
Sign tx with any wallet library and submit it to the chain in tx.chainId.
Changes
No recorded changes to this operation across all 1 revision of this API.