Building

Errors & limits

HTTP status codes from the API, revert reasons from the contract, and the (very light) rate limits.

HTTP errors

Errors return a JSON body { "error": "message" } with the matching status:

StatusMeaning
400Bad or missing parameters (e.g. no amount, malformed address).
404Token not found in the index.
409Name or symbol already taken — an OG holds that fingerprint.
429Too many requests (fair-use throttle). Back off and retry.
502Upstream RPC error talking to Robinhood Chain.

Contract revert reasons

If a transaction reverts on-chain, decode the custom error against the Launchpad ABI. The ones you'll actually hit:

ErrorWhen
NameTaken(existing)The name's fingerprint is already registered to existing.
SymbolTaken(existing)The ticker's fingerprint is already registered.
NonAsciiNameName or symbol contains a non-ASCII byte.
NameEmpty / EmptyCanonicalNameNothing left after canonicalization (e.g. all punctuation).
NameTooLongName exceeds the length limit.
SlippageBuy(got, min)Buy output fell below your minTokensOut.
SlippageSell(got, min)Sell output fell below your minEthOut.
ExpiredMined after the trade's deadline.
ZeroAmountZero ETH in on a buy, zero tokens in on a sell, or claimCreatorFees with nothing to claim.
AlreadyGraduatedTried to trade a token that has moved to Uniswap.
UnknownTokenAddress isn't a token this launchpad created.
NotGraduatableManual graduate called before the 8 ETH threshold.
FeeTooHighOwner tried to set a fee above the 1% ceiling — always reverts.
Note.Standard library reverts also apply: ReentrancyGuardReentrantCall, SafeERC20FailedOperation(token) (usually a missing approval on a sell), and the Ownable* errors on admin-only calls.

Rate limits

The public testnet API needs no key and has no hard quota today. Please be reasonable — cache reads, poll no faster than a few seconds, and don't hammer /tx/* in a tight loop. Abuse is throttled with a 429. Formal per-key limits arrive with the mainnet launch.