使用 Injected Provider API 快速接入 Aptos 钱包

·

了解 AIP-62 与 Provider API 的配合方式,让 DApp 在 3 分钟内完成 Web3 钱包接入,安全、流畅、零门槛。

👉 立即查看官方 JavaScript SDK,一键体验直连钱包的示例代码。


为什么 AIP-62 与 Provider API 值得关注

AIP-62 是 Aptos 官方推出的「钱包连接统一标准」,解决了各家钱包接口不统一的痛点。与之配套的 Injected Provider API 则以极简的 JavaScript 形式注入浏览器,让开发者无需额外 SDK 即可完成「连接、读取、签名」三大核心能力。

核心关键词

Aptos 钱包 | Provider API | Inject Provider | Web3 接入 | AIP-62 | 签名交易 | DEX 连接


Injected Provider 是如何工作的?

打开网页时,浏览器插件将 window.okxwallet.aptos 对象注入全局作用域。开发者通过对该对象的方法调用,就能完成:

  1. 请求连接钱包
  2. 读取账户信息
  3. 获取当前网络
  4. 签名交易 / 消息
  5. 监听事件(账户/网络切换)

所有通信都遵循 AIP-62 协议,返回的数据结构与官方标准保持 1:1 映射,方便未来与钱包桥的兼容。


API 全流程速查

每项示例仅需 5 行以内代码即可跑通。

1. 连接账户

await window.okxwallet.aptos.connect()
// 返回 { address: string, publicKey: string }

失败场景排查:未安装插件、网络不匹配、用户拒绝。

2. 获取账户信息

const { address, publicKey } = await window.okxwallet.aptos.account()

若用户已连接,直接返回;若未连接,会触发 Promise.reject("Unconnected")

3. 读取当前网络

const network = await window.okxwallet.aptos.network()
// 结果示例:mainnet / testnet / devnet

在 DEX 场景下,常与主网做对比,防止误操作导致转账到错误链。

4. 签名并提交交易

const tx = {
  sender: address,
  payload: { /* 你的 Move 调用 */ },
  // 其他 Aptos 交易字段
}
const pendingTx = await window.okxwallet.aptos.signAndSubmitTransaction(tx)

返回值包含 hash,即可链上追踪交易状态。
👉 查看一键部署的完整交易 Demo,一行即可复制运行。

5. 签名消息

const signed = await window.okxwallet.aptos.signMessage("Hello Aptos World")

用于「链下登录」「认证身份」等场景;注意后续须验证签名有效性。


事件监听:不漏掉任何状态变更

事件触发场景建议动作
onAccountChange用户切换账户更新前端显示、重新鉴权
onNetworkChange网络切换判断链 ID、提示主网/测试网
断开连接钱包账户被删除清空本地缓存,引导重连

简单示例:

window.okxwallet.aptos.onAccountChange(() => {
  location.reload()
})

完整错误码表

错误码含义解决建议
4001用户拒绝友好提示,勿强制
-32602参数格式错误按 AIP-62 重新组织 payload
-32603未知内部异常捕获日志,联系插件团队

常见问题与解答(FAQ)

Q1:我的 DApp 已集成了旧版 Adapter,需要重写吗?
A:不需要。AIP-62 向下兼容旧字段,旧版仍可正常运行,只需替换入口方法即可。

Q2:用户没有安装插件会出现什么?
A:window.okxwalletundefined,建议在入口判断并弹出「安装指引」。

Q3:如何同时在主网与测试网切换?
A:在 UI 提供网络标签。监听 onNetworkChange,收到新网络后自动重载 RPC 端点。

Q4:签名结果如何验证?
A:使用官方 @aptos-labs/ts-sdk 里的 verifySignature,前段范式与 Ethereum 类似,确保一致性。

Q5:交易一直 pending,怎么排查?
A:首先确认 Gas 足够,再查看链浏览器 (hash),若 30 秒未出块,提示用户手动加速。


进阶:为 DEX 打造丝滑的“限额”与“分批”交互

在真实 DEX 场景中,常常需要执行 批量限价单。开发者可先通过 forkSignTransaction 在本地完成预签名,再集中用 signAndSubmitTransaction 合并提交。整个过程可低至 1.2 秒内完成,让用户拥有接近 CEX 的体验。


写在最后

AIP-62 让 Aptos 生态第一次拥有了标准化接入流程,而 Injected Provider API 则提供了极简实现路径。
👉 立即部署 5 行代码,把 Aptos 钱包对接完成。

多看一次示例,少踩一次坑,祝你的 DApp 早日上线!