Skip to main content

Errors

Every failure is a JSON object carrying a machine-readable error code, which never changes meaning, and a message written for people. Branch on the code; log or display the message.

{ "error": "insufficient_balance", "message": "wallet holds 0 tokens" }

Your request

CodeHTTPMeaning
invalid_request400Something required is absent, or a field has the wrong shape.
invalid_address400An address field (token, from, wallet) does not parse as one.
invalid_amount400amount is zero, negative or not numeric, or a percentage was given on a buy.
invalid_action400Only "buy" and "sell" are accepted.
token_not_found404The address is not an Argus or LIFT token, and no Uniswap pool on Arc holds it against USDC. Check you copied the token, not a pool.

Trading

CodeHTTPMeaning
insufficient_funds400Not enough USDC in from for the trade plus gas. The message states the balance and the requirement side by side. It has to be USDC on Arc: USDC on Ethereum, Base or Solana does not count until it is bridged.
insufficient_balance400Selling more tokens than the wallet holds. "100%" sells everything.
slippage_exceeded400Between quoting and building, the price moved past what slippage allows. Re-request; on a volatile token, allow more.
amount_too_small400So little that the swap would return nothing. Increase amount.
deadline_passed400The transaction's deadline expired before it was sent. Request again and send promptly.

Sending

CodeHTTPMeaning
not_ours400/api/send only broadcasts transactions this API built: Universal Router swaps, and the one-time ERC-20 and Permit2 approvals in front of them. Anything else is refused before it reaches the chain.
wrong_chain400The signed transaction is for another chain id; this API relays Arc (5042).

Limits

CodeHTTPMeaning
rate_limited429Over 3 calls a second to a single endpoint from one IP. Retry-After: 1 says when to try again.
too_many_connections429One launch-feed socket and one advanced-stream socket per IP (and one per stream key) is the cap; this would have been the second.
unauthorized401The advanced stream was opened without a key, or with an unknown or revoked one. Keys are free, ask in the Telegram group.
too_many_tokens / too_many_wallets400A stream connection may follow at most 50 tokens and 50 wallets.

Upstream

CodeHTTPMeaning
rpc_error502The chain could not be read or the transaction could not be sent. The message carries the node's own text. Retry; if it persists, ask in the Telegram group.