本指南是面向Web3开发者的imToken接口参数全解析对接手册,聚焦imtoken钱包对接全流程需求,内容覆盖钱包连接、资产查询、交易签名、链上交互等核心接口,逐一拆解各接口的必填、选填参数,包括链类型标识、钱包地址、交易金额、Gas配置等关键项,同时附带错误码对照表、签名流程规范与安全对接建议,帮助开发者快速完成对接,降低联调测试成本,适配ETH、SOL、BTC等主流公链的接口调用需求,助力开发者高效完成钱包对接开发。
随着Web3生态的蓬勃兴起,imToken作为全球用户规模领先的加密货币钱包,早已成为众多去中心化应用(DApp)对接的核心入口之一,无论是去中心化交易所、NFT交易平台还是链上休闲/竞技游戏,都需要通过对接imToken开放接口,实现用户资产签名、代币转账、合约交互等核心链上操作,而接口参数作为对接流程中最关键的细节之一,直接决定了链上交互能否顺利完成:不少开发者都会在参数配置合规性、格式校验准确性上遭遇卡点,甚至直接导致对接失败,本文将全面拆解imToken两大主流对接方式下的接口参数规范与实操要点,帮助开发者快速理清对接逻辑、规避常见踩坑点。
imToken对接的两种主流接口类型
当前开发者对接imToken主要有两种成熟方案,分别对应不同的接口参数体系与适用场景:
- WalletConnect V2 协议对接:作为行业通用的跨链钱包对接标准,WalletConnect V2不仅支持imToken,还兼容MetaMask、Trust Wallet等绝大多数主流加密钱包,该方案无需在DApp中内置钱包专属依赖代码,仅通过WalletConnect协议层即可完成安全连接,大幅降低了多钱包适配的开发成本,是目前行业主流的对接方案。
- imToken内置JS API对接:该方案仅适用于在imToken内置浏览器环境中加载的DApp,开发者可以直接通过浏览器全局对象`window.imToken`调用专属接口,无需依赖第三方协议,交互流程更轻量化,响应速度也更稳定。
WalletConnect V2 对接核心参数详解
WalletConnect V2是imToken官方目前主推的对接方案,其核心参数主要分为初始化基础配置参数与会话交易请求参数两大类,下面将逐一详解每个参数的合规要求与使用规则:
基础配置参数
在初始化WalletConnect客户端实例时,需传入以下必填与可选配置参数:
projectId:必填参数,即WalletConnect Cloud为DApp分配的唯一项目标识,开发者需提前登录WalletConnect Cloud注册创建项目,即可获取专属`projectId`,imToken将通过该标识验证DApp的合法性,未配置该参数将直接导致连接失败。metadata:必填参数,用于在imToken的连接授权弹窗中展示DApp的官方信息,帮助用户快速识别可信应用,包含4个必填子参数:name:DApp的官方名称,将直接展示在imToken的连接请求弹窗与授权页面中,需与DApp实际品牌名保持一致,避免误导用户。description:DApp的简短功能介绍,需清晰说明应用的核心用途,去中心化ETH转账工具”而非模糊描述,帮助用户快速判断应用安全性。url:DApp的官方网站地址,需为可正常访问的HTTPS域名,用于用户点击后跳转至官方页面核实信息。icons:DApp的图标URL数组,需传入至少1个可公开访问的HTTPS格式图标链接,推荐使用256*256像素的PNG格式图标,确保在imToken中展示清晰。
relayerUrl:可选参数,用于自定义WalletConnect的中继节点地址,默认情况下会使用WalletConnect官方提供的中继节点,仅当开发者有专属节点部署需求时才需要配置该参数。
标准交易请求参数
当用户发起转账、合约调用、NFT授权等链上交易操作时,需传入对应交易的标准参数集,下面以最通用的以太坊主网转账交易为例,详解标准参数格式与合规要求:
const transactionParams = {
from: "0x1234567890abcdef1234567890abcdef12345678", // 必填,当前连接的用户钱包地址,必须与WalletConnect会话中获取的地址完全一致
to: "0x876543210fedcba09876543210fedcba09876543", // 必填,交易接收方的钱包地址或合约地址
value: "1000000000000000000", // 可选,转账金额,单位为wei(1 ETH = 10^18 wei),若为ERC20转账则无需填写该参数
gas: "21000", // 可选,交易的gas上限,以太坊原生转账默认gas为21000,合约调用需根据实际情况调整
gasPrice: "30000000000", // 可选,gas单价,单位为wei,部分公链会自动适配,无需手动填写
nonce: "0", // 可选,交易的nonce值,用于防止重放攻击,默认由钱包自动填充
data: "0x" // 可选,合约调用的输入数据,原生转账无需填写,合约交互时需传入ABI编码后的参数
};
⚠️ 实操避坑:所有参数需统一使用十六进制字符串格式,避免使用JavaScript原生数字类型防止精度丢失;`from`地址必须与当前会话的用户地址完全匹配,否则imToken会直接拒绝交易请求。
imToken内置JS API 对接参数详解
针对imToken内置浏览器运行的DApp,可直接调用`window.imToken`全局对象下的专属接口,核心参数规范如下:
基础连接参数
appName:必填,DApp的官方名称,用于imToken识别应用身份chainId:必填,目标公链的链ID,比如以太坊主网为`1