探索 EIP-5792(钱包调用 API),这是一种改变以太坊应用程序与钱包交互方式的标准化协议。

在这篇博文中,我们将探讨 EIP-5792(钱包调用 API),这是一种标准化协议,可改变以太坊应用程序与钱包的交互方式。通过引入原子交易捆绑和钱包功能发现,EIP-5792 解决了去中心化应用程序 (dApp) 开发中的关键痛点,同时释放了新的用户体验 (UX) 可能性。
EIP-5792 解决了什么问题?
以太坊的钱包生态系统长期以来一直处于碎片化状态,给开发者和用户带来了挑战:
-
碎片化钱包集成
-
开发人员必须为外部拥有账户 (EOA) (例如 MetaMask)和 智能合约钱包(例如 thirdweb 智能钱包)编写单独的代码路径 。这会使集成工作量加倍,并限制跨钱包兼容性。
-
缺少批量交易标准
-
有限的钱包功能探索
-
dApps 无法以编程方式检测钱包功能,例如 gas 赞助或批量执行支持,从而导致默认行为不理想。
EIP-5792 通过标准化消除了这些问题:
-
适用于所有钱包类型的统一 API
-
原子多步骤事务
-
程序化钱包功能检查
EIP-5792 的核心技术组件
1. wallet_sendCalls
:批量交易提交
此 JSON-RPC 方法允许 dApps 将多个交易作为单个捆绑包提交:
主要特点:
-
原子执行:所有事务要么一起成功,要么一起失败,从而消除部分失败。
-
Gas 赞助:通过现场整合付款人,
capabilities
实现无 gas 交易。
2. wallet_getCallsStatus
:执行跟踪
使用以下方法检查交易包的状态 bundleId
:
-
返回
CONFIRMED
、FAILED
或PENDING
-
在 UI 中启用实时进度跟踪
3. wallet_getCapabilities
:功能发现
查询钱包支持的功能:
{ "atomicBatch": true, "paymasterService": true, "sessionKeys": false}
这使得 dApp 能够根据钱包功能动态调整工作流程。
EIP-5792 的主要优势
1. 通过捆绑节省 57% 的 Gas
通过批量交易,Coinbase 智能钱包用户 与连续单笔交易相比可节省57% 的 gas 成本。
2. 本土无气体验
将付款人服务直接集成到交易包中。例如,thirdweb 的付款人服务允许开发人员通过一行配置来赞助 gas 费用:
capabilities: { paymasterService: { url: `https://${chainId}.bundler.thirdweb.com/${clientId}` } }
3. 面向未来的兼容性
抽象的 API 层确保与新兴钱包类型的兼容性,从 ERC-4337 智能账户到 MPC 钱包。
4. 简化 dApp 代码
通过消除特定于钱包的逻辑,开发人员编写的集成代码减少了 40%(基于 thirdweb 指标)。
EIP-5792 支持的用例
DeFi:单击批准 + 交换
无需执行两笔交易(批准 ERC-20 → 交换),而是将其作为原子包执行。用户可以获得无缝体验,而开发人员可以减少因批准失败而产生的支持工单。
游戏:批量 NFT 铸币
铸造角色 NFT、装备装备并加入比赛只需一次原子交易。thirdweb 智能钱包等平台可在 350 毫秒内实现批量执行,符合 Web2 速度预期。
DAO:多步骤治理
原子地执行治理提案(例如转移资金+更新协议参数),而没有部分执行风险。
社交:赞助入职
在入职流程中,通过付款人为新用户提供 gas 费用,从而消除区块链的复杂性。
对钱包生态系统的影响
EIP-5792 将智能合约钱包与 EOA 一起提升为一等公民:
-
功能奇偶校验:像 thirdweb 这样的智能钱包现在提供卓越的 UX(一键交易),同时又不牺牲 EOA 兼容性。
-
新的用户体验模式:
-
临时交易许可的会话密钥
-
通过批量交易自动续订
-
企业采用:原子交易降低了机构 DeFi 等高价值用例中的运营风险。
对开发者的影响
1. 跨钱包的统一 API
thirdweb 的 Connect SDK 提供完整的 EIP-5792 支持:
import { sendCalls, getCapabilities } from "thirdweb/wallets/eip5792"; // Send atomic batchconst { bundleId } = await sendCalls({ calls: [approveCall, swapCall], capabilities: { paymasterService: true } }); // Track statusconst status = await getCallsStatus({ bundleId });
支持的钱包包括 Coinbase 智能钱包、thirdweb 应用内钱包和智能钱包 v3+。
2. 自动回退
eth_sendTransaction
如果钱包不支持 EIP-5792,SDK 会自动恢复到传统方法(例如 )。
3. React Hooks
预建的钩子简化了前端集成:
const { mutate: sendCalls } = useSendCalls(); const { data: status } = useCallsStatus({ bundleId });
如何使用 thirdweb 实现 EIP-5792
-
设置 Connect SDK
安装 SDK 并配置支持的钱包:
npm install thirdweb
-
启用无 Gas 交易
在您的功能配置中添加 thirdweb 的 Paymaster 服务:
capabilities: { paymasterService: { url: `https://${chainId}.bundler.thirdweb.com/${clientId}` }
-
部署智能钱包
使用 thirdweb 的 智能钱包模板 实现原生 EIP-5792 支持,包括会话密钥管理。
结论:钱包交互的未来
EIP-5792 标志着以太坊钱包标准的范式转变,实现了原子交易、无 gas 流和无缝的跨钱包兼容性。通过抽象出低级复杂性,它使开发人员能够构建既用户友好又面向未来的应用程序。
thirdweb 的 Connect SDK 和智能钱包等工具加速了采用,提供开箱即用的 EIP-5792 支持、付款人集成和原子交易捆绑。随着生态系统逐渐接受这一标准,用户将获得类似 Web2 的简便性,而开发人员将解锁强大的新设计模式。