什么是 Paymaster?(ERC-4337)
在账户抽象中,paymaster 是智能合约,支持灵活的 gas 策略,例如让去中心化应用为用户代付操作费用(即以区块链的原生货币支付 gas 费用),或接受以 ERC-20 代币(例如 USDC)支付 gas 费用来代替区块链的原生货币。
paymaster 智能合约是在以太坊改进提案(EIP) 4337 中引入的,它与 bundler 和 entry point 智能合约等其他账户抽象基础设施集成,用于补偿它们为执行用户操作而垫付的 gas 费用。
在 Ethereum 和主流 L2 上为任意 web3 应用添加嵌入式钱包 ,使用 Embedded Accounts 以及我们垂直整合的账户抽象基础设施, 包括高性能的 Gas Manager API (ERC-4337 paymaster)。
来自 Alchemy University 的 Paymaster 讲解
什么时候应该使用 paymaster?
使用 paymaster 主要有两个原因:为另一个账户的交易代付 gas 费用,或者使用 ERC-20 代币而非区块链网络的原生货币支付 gas 费用。这种 ERC-20 paymaster 可以是应用自身的代币,也可以是 USDC 这样的稳定币。
1. 用于代付交易的 paymaster
web3 应用和钱包开发者选择使用代付 paymaster 的原因包括:让新用户更容易参与 web3、激励特定于平台的用户行为、无需支付 gas 即可铸造 NFT、无需花费 gas 即可部署钱包,以及许多其他应用场景。
要使用 paymaster 代付交易,web3 开发者需要通过定义哪些用户操作可以被代付来创建策略,他们所使用的 paymaster 合约会在 entry point 合约中存入一定数量的加密货币,代付交易的 gas 费用将从中扣除,然后开发者激活该策略。
定义 paymaster 代付策略的规则有哪些?
为了控制谁能够访问 paymaster 的代付交易,开发者可以定义规则来管理每个应用和每个发送方(例如请求代付用户操作的用户)的支出和用户操作数量,允许或拒绝对代付用户操作的访问,并设置策略开始、结束和过期的控制条件。
- 最大支出 - 该策略可以支出的最大金额(以美元计)
- 每个发送方的最大支出 - 该策略可以支出的最大金额(以美元计)
- 每个用户操作的最大支出 - 每个用户操作可以支出的最大金额(以美元计)
- 交易数量上限 - 该策略可以代付的全局最大交易数量
- 每个发送方的交易数量上限 - 每个发送方的最大交易数量
- 发送方白名单 - 定义可访问该 paymaster 的账户的规则
- 发送方黑名单 - 定义无法访问该 paymaster 的账户的规则
- 策略开始时间 - 策略开始生效的时间
- 策略结束时间 - 策略结束的时间
- 策略过期 - 该策略可以支出的最大金额(以美元计)
注意: 以上是可以通过 Alchemy 的 Gas Manager Coverage API 设置的 gas 策略规则。其他符合 ERC-4337 标准的 paymaster 可能支持更多或更少的规则。
使用paymaster 访问密钥,开发者可以通过编程方式创建、激活和管理灵活的 gas 代付策略。要手动管理策略,开发者可以在Gas Manager 控制台中创建策略。
Alchemy 的 Gas Manager Coverage API 如何管理用于代付用户操作的存款?
Alchemy 的 Gas Manager Coverage API 合约已经在每个支持的区块链上向全局 entry point 合约存入了原生货币。当开发者通过我们的 Gas Manager 创建 gas 策略时,我们会追踪他们用了多少原生货币来支付 gas 费用。
每月月底,在 Alchemy 上构建的团队会收到一份账单,包含其策略代付的 gas 费用总额,外加所代付 gas 费用总额的 8%。该费用随后通过其 Alchemy 账户中的支付方式支付。
Alchemy 的 Gas Manager Coverage API 涉及哪些费用?
代付交易 gas 费用的费率对企业客户为定制价格,对 Growth 层级客户为 8%,对免费用户免费,因为代付交易仅在测试网上可用。
Alchemy 的代付 paymaster 合约部署在哪些网络上?
Alchemy 在 Ethereum、Arbitrum、Optimism、Polygon 上部署了代付 paymaster 合约。以下是主网部署地址及其 Etherscan 链接:
- Ethereum - 0x4Fd9098af9ddcB41DA48A1d78F91F1398965addc
- Polygon - 0x4Fd9098af9ddcB41DA48A1d78F91F1398965addc
- Arbitrum - 0x4Fd9098af9ddcB41DA48A1d78F91F1398965addc
- Optimism - 0x4Fd9098af9ddcB41DA48A1d78F91F1398965addc
Alchemy 的代付 paymaster 合约部署在哪些测试网上?
Alchemy 在 Sepolia 上部署了代付 paymaster 合约。以下是测试网部署地址:
2. 用于以 ERC-20 代币支付 gas 的 paymaster
dapp 和钱包开发者选择使用 ERC-20 paymaster 的原因包括:为其应用的 ERC-20 代币增加实用性,为持有区块链网络生态系统内各种数字资产的用户提供更大的灵活性,使用价值不会波动的稳定币支付(不同于 ETH、MATIC、OP、ARB 等原生货币),以及许多其他特定于应用的场景。
基于 IPaymaster 接口,paymaster 有哪些类型?
paymaster 承担多种功能,例如代付交易以及让用户以 ERC-20 代币支付 gas,基于 IPaymaster 接口,承担这两种功能的 paymaster 分别被称为验证型 paymaster和代币(存款)型 paymaster。
1. 验证型 paymaster
当由链下服务决定交易费用是否应被代付时,会使用验证型 paymaster。例如,如果用户想用法币和信用卡支付,用户操作的发送方会先向外部签名者发送付款,如果这一步成功,paymaster 就会验证该操作,并确认其将代付交易费用。
2. ERC-20 paymaster
当 gas 费用需要以 ERC-20 代币支付时,会使用存款型 paymaster。开发者需指定 ERC-20 代币以及有资格获得代付用户操作的智能合约钱包地址。例如,某个 web3 dapp 想使用自己的 ERC-20 代币来为前 1000 名用户的交易付费。
尽管存款型 paymaster 允许以 ERC-20 代币进行费用代付,但交易的实际成本是以 ETH 支付的,并从 paymaster 在 entry point 合约中存入的储备金额中扣除。postOp() 函数包含相应逻辑,根据预言机报价从发送方处收取 ERC-20 代币,以匹配支付费用所需的 ETH 数量。
paymaster 是如何工作的?
paymaster 通过与 entry point 合约交互来支付代付用户操作的费用,并补偿代表发送方执行用户操作的 bundler。
对于每个用户操作:
- 对发送方的钱包调用 validateOp
- 如果用户操作包含 paymaster 地址,则调用 validatePaymasterOp
- 丢弃 validatePaymasterOp 调用失败的用户操作
- 对每个用户操作,对发送方的钱包调用 executeOp
- 追踪代表发送方执行该用户操作所消耗的 gas 数量
- 向 bundler 转账 ETH,以支付 bundler 代表发送方执行该用户操作所消耗的 gas
- 如果用户操作包含 paymaster 字段,paymaster 会使用其合约中存入的 ETH 来支付 bundler
- 如果用户操作不包含 paymaster 字段,则由发送方的钱包偿还这笔 ETH
以下是展示 paymaster 工作原理的示意图:

IPaymaster 接口中包含哪些函数?
IPaymaster 接口是每个 paymaster 合约都应遵循的蓝图,以符合该提案的规范。它引入了两个函数:validatePaymasterOp() 和 postOp()。
1. validatePaymasterUserOp()
validatePaymasterUserOp() 函数供内存池节点、bundler以及 entry point 合约使用,以确认 paymaster 合约同意代付该交易的费用。validatePaymasterUserOp() 会在用户操作的 paymasterAndData 字段中被提及。
validatePaymasterUserOp() 函数接受待验证的用户操作的字节表示,以及其 ID 和最大成本。它返回一个名为“context”的 bytes32 变量,该变量随后会传递给 postOp() 函数。
2. postOp()
postOp() 函数定义了在用户操作验证成功后应执行的操作。例如,如果用户操作的发送方想用 ERC-20 代币支付,entry point 会在操作完成后调用 postOp(),并告知消耗了多少 gas。
只有当 validatePaymasterUserOp() 生成的“context”不为空时,才能调用 postOp() 函数。
bundler 如何防止恶意 paymaster 发起 DoS 攻击?
ERC-4337 规范描述了一套 paymaster 信誉评分和限流系统,使 ERC-4337 bundler 能够避免执行来自恶意 paymaster 的用户操作。
由于某个 paymaster 的存储在使用该 paymaster 的一个批次内的所有操作之间是共享的,某一个 validatePaymasterOp 的行为有可能导致该批次中使用同一 paymaster 的许多其他用户操作验证失败,从而构成拒绝服务攻击(DoS)。
为避免恶意 paymaster 创建自身的多个实例(即女巫攻击),paymaster 需要质押 ETH。paymaster 的质押永远不会被罚没,并且可以随时提取;质押的存在是为了要求潜在攻击者锁定一笔不小的资金,从而起到威慑恶意行为的作用。
使用 paymaster 对开发者有哪些好处?
paymaster 的好处包括提高 gas 策略的灵活性、简化新用户的 web3 上手体验,以及为交易增加更强的可编程性。
1. 吸引新用户
利用 paymaster 对开发者的一个好处是让新用户更容易参与 web3。当前创建外部拥有账户(EOA)钱包、为其注入区块链原生代币并铸造 NFT 的流程较为复杂,用户在这一过程中有很多放弃的机会。
paymaster 有助于减少为钱包注入原生货币以完成链上交易(例如铸造 NFT、认领用户名,或使用钱包报名参加活动)过程中的摩擦。
2. 改善用户体验
构建 web3 产品的开发者可以借助 paymaster,通过添加支持使用平台原生货币支付 gas 的功能来改善其应用的用户体验。
3. 激励用户行为
试图发展公司的 Web3 初创企业可以通过 paymaster 受益,例如为高价值用户代付平台费用、激励用户试用新产品,并争取用户参与营销推广活动。
与智能合约钱包的优势类似,paymaster 可以通过多种方式让 web3 开发者受益。当今最具创新力的 web3 公司正在寻找实施 paymaster 的新方式,以改进产品和 web3 用户体验。
如何开始使用 paymaster API
Alchemy 的 paymaster 已在 Ethereum、Polygon、Optimism 和 Arbitrum 主网上线。要开始使用符合 ERC-4337 标准的 paymaster 代付交易并构建灵活的 gas 策略,请查看我们的Gas Manager API以及创建 paymaster 策略的快速入门指南。
常见问题
什么是 ERC-4337 中的 paymaster?
paymaster 是在 EIP-4337 中引入的一种智能合约,它支持灵活的 gas 策略,允许应用为用户代付 gas 费用,或接受以 ERC-20 代币而非区块链原生货币支付的费用。
开发者什么时候应该使用 paymaster?
paymaster 非常适合用于代付 gas 费用以改善用户上手体验,允许使用 ERC-20 代币或 USDC 等稳定币支付,以及激励 web3 平台上的特定用户行为。
paymaster 的两种主要类型是什么?
这两种类型分别是验证型 paymaster,它使用链下服务来决定是否代付交易,以及 ERC-20 paymaster,它允许用户以 ERC-20 代币支付 gas 费用,而由 paymaster 承担实际的 ETH 成本。
paymaster 如何与 EntryPoint 合约交互?
EntryPoint 在验证阶段调用 validatePaymasterUserOp() 以确认代付,然后在执行后调用 postOp(),处理会计记录以及从 paymaster 存入的 ETH 储备中进行的代币转账。
paymaster 必须实现哪些函数?
paymaster 必须实现 validatePaymasterUserOp() 以验证代付协议,以及 postOp() 以处理执行后的逻辑,例如从用户处转移 ERC-20 代币以支付 ETH 成本。
Alchemy 的 Gas Manager 如何处理代付交易的计费?
Alchemy 预先在 EntryPoint 合约中存入原生货币,并按月向客户开具账单,账单金额为所代付的 gas 费用总额,外加 Growth 层级客户需支付的 8% 费用;企业客户则采用定制定价。
开发者可以为 gas 代付设置哪些策略?
开发者可以配置全局及每个发送方的最大支出限额、交易数量限制、发送方白名单和黑名单,以及策略的开始/结束时间,以此来控制 paymaster 的使用方式。
相关概览
钱包2026年9月2日
Agent 钱包:面向 AI Agent 的会话与权限模型
AI Agent 如何在不持有私钥的情况下获得范围受限、可撤销的钱包访问权限:会话、委托签名与即时撤销。
钱包2026年7月29日
别再把私钥粘贴到 Cursor 中:如何为你的编码智能体配置钱包
为你的编码智能体配置钱包,而不必把私钥交给它。了解 Alchemy CLI 的智能体钱包如何通过限定范围的会话,让智能体无需在 .env 中存储私钥即可完成交易。
钱包2026年6月24日
什么是 crypto bundler?
crypto bundler 将多笔交易或操作合并为一次链上提交,应用于 batching、MEV、rollup、代币发行和账户抽象等场景。

构建区块链应用
Alchemy 将最强大的 Web3 开发者产品和工具与资源、社区及专业支持结合在一起。