invalid_request | 400 | Something in the request is wrong. | detail names the field. Fix it and send again. |
unsupported_chain | 400 | The chain isn’t supported, or not for this kind of swap. | Use a chain from GET /v1/chains. |
unsupported_asset | 400 | The token doesn’t exist on that chain. | Check the token address. |
amount_too_small | 400 | A private swap is worth less than the $20 minimum. | Sell more. |
amount_too_large | 400 | The amount is too large to hold in a single swap. | Sell less. |
invalid_fulfillment | 400 | The secret doesn’t match the hash this quote was made with. | Send the secret you stored with this quote. |
unauthorized | 401 | The API key is malformed, unknown, or revoked, or its account is suspended. | Check the key, or send the request without one. |
not_found | 404 | No such endpoint. | Check the path. |
quote_not_found | 404 | No quote has this ID. | Check the ID. Only firm quotes have one. |
method_not_allowed | 405 | The endpoint doesn’t accept this method. | Check the method. |
condition_reused | 409 | An earlier quote already used this secret’s hash. | Create a new secret and request a new quote. |
quote_expired | 409 | A private swap was submitted after its quote expired. | Get a new quote. |
not_ready | 409 | A request with this Idempotency-Key is still running, or a private swap was already submitted. | Try again shortly, or check the swap’s status. |
destination_not_ready | 409 | The solver’s tokens can’t be paid out yet. | Wait a few seconds and reveal again with the same key. |
payload_too_large | 413 | The request is too big. | Send a smaller request. |
no_route | 422 | No solver or aggregator offered a price for this swap. | Try a different amount or pair, or try again later. |
invalid_private_transaction | 422 | A private swap didn’t pass Tern’s checks. detail says which one. | Check the actions, prepare the transaction again, and resubmit. |
rate_limited | 429 | Too many requests. | Wait for the seconds in Retry-After. See Rate limits. |
internal | 500 | Something went wrong on Tern’s side. | Try again after a short wait, with the same Idempotency-Key. |
timeout | 503 | The request took longer than 10 seconds, or a price it needed wasn’t available. | Try again after a short wait, with the same Idempotency-Key. |