You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Arbitrum上ERC-4337触发AA95 out of gas错误求助

ERC-4337 AA95 Out-of-Gas 问题排查(Arbitrum网络)

核心原因解析

AA95错误不是只和callGasLimit挂钩,它覆盖了ERC-4337账户抽象交易的全流程gas消耗,以下是你没命中的关键环节:

  • 验证阶段gas超支:未精简代码时,你的钱包validateUserOp函数(签名验证、账户逻辑)可能存在冗余计算,比如多余循环、复杂哈希操作,这部分消耗的是verificationGasLimit而非callGasLimit,调后者自然没用。
  • Arbitrum特殊gas模型:Arbitrum的gas费用=L1数据费+L2执行费,未精简的calldata会大幅拉高L1数据费,而ERC-4337的preVerificationGas需要覆盖这部分成本——如果preVerificationGas设得不够,哪怕callGasLimit充足,也会触发AA95。
  • Paymaster额外消耗:如果用了paymaster,其validatePaymasterUserOp和postOp函数也会占gas,未精简代码时这部分可能超出了预留额度。

可参考的排查依据

  • ERC-4337官方规范:重点看Gas Limits章节,明确preVerificationGas、verificationGasLimit、callGasLimit各自的覆盖范围。
  • Arbitrum官方文档:查看L2 Gas模型说明,了解L1数据费对ERC-4337交易gas估算的影响。
  • 主流ERC-4337钱包(如Safe Account Abstraction)的技术文档:里面有针对不同链的gas配置最佳实践。

精简后成功的逻辑

精简操作直接砍掉了两个关键gas消耗点:

  1. 减少了validateUserOp或目标合约执行阶段的L2计算量,降低了verificationGasLimit或callGasLimit的实际需求。
  2. 缩短calldata长度,大幅降低L1数据费,让原本不足的preVerificationGas能覆盖实际成本,避免了整体gas溢出。

后续排查建议

  • 单独测试validateUserOp函数的gas消耗,确认是否超出verificationGasLimit设置值。
  • 用Arbitrum的gas估算工具,计算未精简calldata对应的L1数据费,把preVerificationGas调整到能覆盖该费用+基础验证gas的水平。
  • 若使用paymaster,检查其validatePaymasterUserOp函数的gas消耗,确保预留足够额度。

内容的提问来源于stack exchange,提问作者local darede

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 02:45:00