Skip to main content

Errors

Errors are JSON with a stable error code and a plain-language message. Check the code in your script and show the message to a human.

{ "error": "insufficient_balance", "message": "wallet holds 0 tokens, tried to sell 1000" }

Your request

CodeHTTPMeaning
invalid_request400A required field is missing or malformed.
invalid_address400token, from or another address field is not a valid address.
invalid_amount400amount is zero, negative, not a number, or a percentage on a buy.
invalid_action400action is not "buy" or "sell".
token_not_found404The address is not a Pons token on Robinhood Chain, v2 or v1. Check you copied the token, not a pool or a curve.

Trading

CodeHTTPMeaning
insufficient_funds400Not enough ETH in from for the trade plus gas. The message says what the wallet holds and what it needs. It has to be ETH on Robinhood Chain - ETH on Ethereum mainnet or another L2 must be bridged first, and holding USDG, NVDA or another asset does not pay for gas.
insufficient_balance400Selling more tokens than the wallet holds. "100%" sells everything.
slippage_exceeded400The price moved between the quote and now by more than slippage. Retry, or raise slippage on a fast-moving token.
no_route400The token is priced in an asset your wallet doesn't hold enough of, and no Uniswap pool can buy that asset with ETH. Acquire it yourself, then retry. With toEth: no pool can turn the proceeds into ETH - sell without it and keep the asset.
amount_too_small400So little that the swap would return nothing. Increase amount.
graduating409The token is moving from its curve to its Uniswap pool right now. Retry in a minute; it then trades on Uniswap automatically.
graduated400The curve closed while your trade was being built. Retry; the trade now routes to Uniswap.
curve_closed409The curve has sold out and is about to graduate; sells reopen once the Uniswap pool exists.
deadline_passed400A Uniswap transaction is only valid for 10 minutes after it is built. Request a fresh one.
insufficient_allowance400An approval the trade needs is missing. Retry; the response will include it.

Creating a token

CodeHTTPMeaning
invalid_pair_token400pairToken is neither an address nor a ticker we know. The message lists the tickers.
pair_token_not_approved400Pons doesn't accept that asset as a quote. Use ETH or one of the approved assets.
too_many_exemptions400More than 32 snipeTaxExemptions (31 with an initialBuy).
creator_tax_too_high400creatorTaxBps is above the maximum Pons allows (10%).
invalid_salt400salt is not 32 bytes of hex.
launch_config_disabled400The requested launchConfigId is not available. Leave it out.
launcher_not_permitted403Pons currently only lets allow-listed wallets launch, and from isn't one.
launch_disabled503Pons has paused launching. Try later.
missing_file400The image upload had no file field.
not_an_image400The uploaded file is not an image.
file_too_large400The image is over 5 MB.
invalid_upload400The upload could not be read.

Creator fees

CodeHTTPMeaning
nothing_to_claim400Nothing is waiting for this wallet. If the message names an amount, that much has been earned but is still being collected by Pons; check back later.
sweep_requires_operator400This launch's fees are collected by Pons on its own schedule, not by you. Nothing to do - claim again once they arrive.

Limits

CodeHTTPMeaning
rate_limited429More than 5 requests per second from your IP to one endpoint. Wait a second and retry (Retry-After: 1).
too_many_connections429A third launch-feed WebSocket from your IP. Two per IP; close one first.

Everything else

CodeHTTPMeaning
revert400The transaction would fail on-chain for a reason not listed above; message says what the contract reported.
rpc_error502Robinhood Chain could not be reached. Retry.

A transaction can still fail after you send it if the price moves past your slippage. minOut is your protection; a failed trade costs only gas.