SuperAPI AI 工具集

0x-api

智能体与模型

查看项目

更新于 10-13 17:15

技能介绍

用途

本 Skill 是一份面向开发者的 0x 代币兑换操作指南,目标是在用户想要在 EVM 链上兑换代币时,给出从取价、获取确定报价到执行兑换的完整步骤。它同时支持标准兑换(用户自行支付 gas)与无 gas 兑换(0x 从卖出代币中支付 gas)。

主要能力与覆盖流程

  • 三种兑换流的选择:AllowanceHolder(默认推荐,适合多数集成方、多签钱包及从 v1 升级的团队)、Permit2(适合限时授权、批量操作或已有 Permit2 授权额度的用户)、Gasless(仅支持 ERC-20 卖出代币,适合没有原生代币支付 gas 的用户)。
  • 分步指导:Step 1 收集兑换参数;Step 2 选择兑换流;Step 3 展示指示性价格;Step 4 获取确定报价;Step 5 说明执行步骤;Step 6 输出兑换摘要。
  • 支持链信息:Ethereum、Arbitrum、Base、Optimism、Polygon、BNB、Avalanche、Blast、Mantle、Scroll、Sonic、Abstract、Berachain、HyperEVM、Ink、Linea、Mode、Monad、Unichain、World Chain 等,并区分各链支持的 Swap API / Gasless API。
  • 附带常见以太坊主网代币地址(WETH、USDC、USDT、DAI、WBTC)。

使用方式

需要收集的参数包括:sellToken(ERC-20 合约地址,不接受代币符号)、buyToken、sellAmount 或 buyAmount(代币基础单位)、chainId、taker(报价必需,/price 不需要)。若字段缺失需先向用户询问。

调用要求:每次请求需带请求头 0x-api-key: YOUR_API_KEY(可在 dashboard.0x.org 免费获取)与 0x-version: v2;Base URL 为 https://api.0x.org;代码中使用环境变量名 ZERO_EX_API_KEY。

指导原则明确要求:不要自行用 WebFetch 构造原始 0x API HTTP 请求;应先通过 mcp__0x-mcp__searchDocs 查询当前端点细节,再向用户输出 fetch/axios 代码,由用户在自己的环境中运行。

各流程执行要点:

  • AllowanceHolder:若 quote.issues.allowance 不为 null,先授权 AllowanceHolder 合约(spender 从响应读取),随后直接发送交易,无需类型化数据签名。
  • Permit2:授权 Permit2 合约(地址 0x000000000022d473030f116ddee9f6b43ac78ba3),签署 EIP-712 消息(需从 types 中移除 EIP712Domain),将签名按长度前缀追加到 calldata 后发送交易。
  • Gasless:签署报价中的 approval(如存在)与 trade 两个 EIP-712 对象,POST 到 https://api.0x.org/gasless/submit,再轮询 https://api.0x.org/gasless/status/{tradeHash} 直到 succeeded、failed 或 confirmed。

适用场景

适用于在 EVM 链上进行代币兑换的开发者与集成方,包括需要标准自付 gas 兑换、限时授权或批量操作、以及用户无原生代币支付 gas 的无 gas 兑换等场景。指南建议:用户不持有 gas 时默认无 gas 模式;卖出原生 ETH/MATIC/BNB 时默认标准模式(无 gas 仅支持 ERC-20 卖出代币);未明确指定时默认 AllowanceHolder。

安全规则与错误处理

  • 不要授权 Settler 合约(transaction.to 可能指向 Settler);只授权响应中 issues.allowance.spender 或 allowanceTarget 给出的地址。
  • 不要硬编码 spender 地址,必须从 API 响应读取。
  • 报价约 30 秒过期,获取后应立即提交。
  • 检查 simulationIncomplete 为 true 时需警告交易可能回滚;检查 liquidityAvailable 为 false 时应提示用户调整金额或更换链。
  • 常见错误:400 Bad Request(参数缺失或无效,检查 validationErrors)、INSUFFICIENT_ASSET_LIQUIDITY(减少金额或换链)、issues.balance 不为 null(余额不足)、无 gas 不支持原生代币卖出(回退到 Swap API v2)、授权错误(先执行 approve 步骤)。未列出的错误可调用 mcp__0x-mcp__searchDocs 查询错误码。