错误
每次失败都是一个 JSON 对象,带一个机器可读的 error 码(含义永不改变)和一段写给人看的 message。用错误码做分支判断,把 message 打日志或展示给用户。
{ "error": "insufficient_balance", "message": "wallet holds 0 tokens" }
你的请求
| 错误码 | HTTP | 含义 |
|---|---|---|
invalid_request | 400 | 缺少必填项,或某个字段格式不对。 |
invalid_address | 400 | 地址字段(token、from、wallet)不是合法地址。 |
invalid_amount | 400 | amount 为零、为负或不是数字,或者买入时传了百分比。 |
invalid_action | 400 | 只接受 "buy" 和 "sell"。 |
token_not_found | 404 | 这个地址不是 Argus 或 LIFT 的代币,Arc 上也没有对 USDC 的 Uniswap 池持有它。确认你复制的是代币地址,不是池子地址。 |
交易
| 错误码 | HTTP | 含义 |
|---|---|---|
insufficient_funds | 400 | from 里的 USDC 不够支付交易加 gas。message 会并列给出余额和所需金额。必须是 Arc 链上的 USDC:以太坊、Base 或 Solana 上的 USDC 不算,桥过来才行。 |
insufficient_balance | 400 | 卖出数量超过钱包持有量。"100%" 表示全部卖出。 |
slippage_exceeded | 400 | 从报价到组装之间价格变动超出了 slippage 允许的范围。重新请求;波动大的代币可以放宽一些。 |
amount_too_small | 400 | 数量太小,兑换什么都换不回来。增加 amount。 |
deadline_passed | 400 | 交易的截止时间在发送前已过。重新请求并尽快发送。 |
发送
| 错误码 | HTTP | 含义 |
|---|---|---|
not_ours | 400 | /api/send 只广播本 API 组装的交易:Universal Router 兑换,以及它前面的一次性 ERC-20 和 Permit2 授权。其他一切在上链之前就被拒绝。 |
wrong_chain | 400 | 签名的交易属于另一条链;本 API 只中继 Arc(5042)。 |
限制
| 错误码 | HTTP | 含义 |
|---|---|---|
rate_limited | 429 | 同一 IP 对同一接口每秒超过 3 次调用。Retry-After: 1 告诉你何时重试。 |
too_many_connections | 429 | 每个 IP 一个发射推送 socket 和一个高级数据流 socket(每个密钥也只有一个);这会是第二个。 |
unauthorized | 401 | 打开高级数据流时没带密钥,或密钥未知、已吊销。密钥免费,在 Telegram 群领取。 |
too_many_tokens / too_many_wallets | 400 | 一个数据流连接最多关注 50 个代币和 50 个钱包。 |
上游
| 错误码 | HTTP | 含义 |
|---|---|---|
rpc_error | 502 | 读链失败或交易发不出去。message 带节点自己的原文。重试;持续出现请到 Telegram 群反馈。 |