Bỏ qua navigation
ERC-4337 · Gas Abstraction · Account Abstraction
"Tôi không có ETH để trả gas" — đây là lý do hàng triệu user không thể dùng Web3. Paymaster giải quyết vấn đề này: một contract đứng ra trả gas thay cho user, hoặc nhận ERC-20 tokens để convert sang gas. dApp sponsor transaction hoàn toàn, user chỉ cần USDC.

Paymaster Là Gì?
Gas Sponsorship và ERC-20 Gas Payment trong ERC-4337

Từ cơ chế Paymaster, Verifying vs Deposit Paymaster, cách trả gas bằng USDC, đến providers và cách integrate vào dApp — phân tích kỹ thuật đầy đủ nhất tiếng Việt.

~12 phút đọc
8 sections · Developer-focused
Cập nhật 2026
⚡ Tóm tắt — Đọc trong 60 giây

Paymaster: Contract trả gas thay cho user

Paymaster là smart contract trong ERC-4337 ecosystem, cho phép một bên thứ ba (dApp, protocol, hoặc service) trả gas fee thay cho user, hoặc nhận token ERC-20 từ user và convert sang gas. User có thể giao dịch không cần giữ ETH trong ví.

Hai loại chính: Verifying Paymaster (dApp ký off-chain approval, Paymaster verify signature và sponsor gas — miễn phí cho user) và ERC-20 Paymaster (user trả USDC/DAI thay vì ETH). Paymaster phải stake ETH vào EntryPoint trước để đảm bảo không DoS.

Sponsor

dApp trả gas
Miễn phí cho user

ERC-20

Gas = USDC
Không cần ETH

Staking

EntryPoint stake
Chống DoS

Providers

Biconomy, Pimlico
Alchemy, Stackup

I

Gas Problem — Rào Cản Lớn Nhất của Web3 Onboarding

Để gửi bất kỳ transaction nào trên Ethereum, user cần ETH để trả gas — kể cả khi chỉ muốn transfer USDC. Đây là vấn đề lớn cho onboarding: new user vừa nhận USDC không thể làm gì nếu không có ETH để trả gas. dApp phải yêu cầu user mua ETH trước — friction cực cao.

Các blockchain khác (Solana, NEAR) xử lý tốt hơn: user thường không phải nghĩ về gas. Ethereum cần mechanism tương tự để cạnh tranh về UX. Paymaster trong ERC-4337 là giải pháp: tách biệt người dùng transaction và người trả gas fee.

II

Paymaster Là Gì — Contract Quyết Định Ai Trả Gas

Trong ERC-4337, mỗi UserOperation có field paymasterAndData. Nếu field này không rỗng, EntryPoint sẽ gọi Paymaster contract để kiểm tra liệu Paymaster có chịu trả gas cho UserOp này không. Nếu Paymaster approve, gas sẽ được lấy từ Paymaster's deposit trong EntryPoint thay vì từ user's account.

Paymaster Flow trong ERC-4337
UserOp {paymasterAndData: 0xPaymaster...}

EntryPoint ──▶ Paymaster.validatePaymasterUserOp()
│ Paymaster kiểm tra điều kiện
│ return (context, validationData)

EntryPoint executes UserOp
│ gas được lấy từ Paymaster.deposit trong EntryPoint

Paymaster.postOp() ──▶ handle ERC-20 charge nếu cần
III

Verifying Paymaster — dApp Ký Approve, Paymaster Verify

Verifying Paymaster là loại phổ biến nhất cho gas sponsorship: dApp backend ký một approval message off-chain (chứa UserOp hash + expiry + conditions), user đính kèm signature vào paymasterAndData. Khi Paymaster contract được gọi, nó verify signature — nếu hợp lệ, approve gas sponsorship.

Use Cases

  • Onboarding free: Sponsor gas cho user mới đăng ký (first 5 transactions miễn phí)
  • Loyalty/reward: Users có NFT membership được sponsor gas
  • Specific actions: Chỉ sponsor khi user interact với protocol của bạn
  • Campaign: Sponsor gas trong khoảng thời gian promotion
// Verifying Paymaster — Backend ký approval const paymasterApproval = { userOpHash: await bundler.getUserOpHash(userOp), validUntil: Math.floor(Date.now() / 1000) + 300, // 5 min validAfter: 0 } // Backend signs với Paymaster signer key const signature = await paymasterSigner.signTypedData(paymasterApproval) // User đính kèm vào UserOp userOp.paymasterAndData = concat([ PAYMASTER_ADDRESS, encodeAbiParameters([validUntil, validAfter]), signature ])
IV

ERC-20 Gas Payment — Trả Gas Bằng USDC Thay ETH

ERC-20 Paymaster cho phép user trả gas bằng bất kỳ token nào (USDC, DAI, WBTC, ...). Flow: Paymaster quote giá gas bằng token, user approve Paymaster chi token đó, Paymaster trả ETH gas cho EntryPoint, sau transaction Paymaster charge token từ user account.

Hai Bước Quan Trọng

validatePaymasterUserOp(): Paymaster check user có đủ token không, tính conversion rate (ETH/token), verify approval. Nếu OK, return context chứa amount sẽ charge.

postOp(): Sau khi UserOp execute xong, Paymaster call token.transferFrom(user, paymaster, chargedAmount). Amount thực tế có thể khác estimate vì gas used khác gas limit — Paymaster xử lý chênh lệch này.

⚠️
Slippage và Oracle Risk
ERC-20 Paymaster cần price oracle để convert ETH gas cost sang token amount. Nếu oracle stale hoặc bị manipulate, Paymaster có thể charge sai. Tốt nhất dùng Chainlink oracle với staleness check, và add buffer (ví dụ charge 110% estimate để buffer slippage).
V

Deposit Paymaster — Pre-fund vs On-demand

Deposit Paymaster là cách quản lý ETH deposit trong EntryPoint. Paymaster phải deposit() ETH vào EntryPoint trước — đây là tiền sẽ dùng để trả gas. Khi deposit hết, Paymaster stop working cho đến khi deposit thêm.

ModelMô tảPhù hợp
Pre-fundeddApp deposit sẵn ETH, sponsor tất cả usersProtocol muốn zero-friction onboarding
Per-user depositMỗi user deposit ETH riêng, Paymaster manageCustodial service quản lý gas
ERC-20 backedUser trả token, Paymaster convert sang ETHUser có USDC, không có ETH
SubscriptionUser trả subscription fee, get X gas/monthGaming, high-frequency apps
VI

Integrate Paymaster Vào dApp — Step by Step

  1. Chọn Paymaster provider: Biconomy, Pimlico, Alchemy (gas manager), Stackup, ZeroDev
  2. Setup policy: Định nghĩa ai được sponsor (điều kiện), tối đa bao nhiêu, thời gian nào
  3. Get Paymaster signature: Call provider API với UserOp hash, nhận back paymasterAndData
  4. Attach vào UserOp: Set userOp.paymasterAndData trước khi sign
  5. Submit: Bundler verify Paymaster có đủ deposit không, rồi bundle vào transaction
🚀
Alchemy Gas Manager API
Alchemy có Gas Manager — dashboard để set spending policies (per-user limit, function whitelist, time-based rules). API rất đơn giản: gọi alchemy_requestGasAndPaymasterAndData với UserOp, nhận về paymasterAndData ready để attach. Free tier có $10/month sponsored gas.
VII

Paymaster Providers — Ecosystem 2026

ProviderTính năng nổi bậtChainsGiá
BiconomyVerifying + ERC-20, Dashboard policies, SDK20+ chainsFree tier + usage
PimlicoERC-20 Paymaster mạnh, Alto bundler30+ chainsPay per UserOp
Alchemy Gas MgrPolicy rules, analytics, tight SDK integrationEVM major$10/mo free tier
ZeroDevKernel AA + Paymaster, passkey support15+ chainsSubscription
StackupOpen-source, self-hostableEVMFree OSS
VIII

Security và Limits — Stake, Reputation, Spending Policies

Paymaster phải stake ít nhất 0.1 ETH vào EntryPoint (unstake delay 24h) — đây là security deposit để chống DoS. EntryPoint theo dõi reputation: nếu Paymaster validate UserOp nhưng sau đó revert execution quá nhiều lần, reputation bị giảm và bundlers có thể không nhận UserOp từ Paymaster đó nữa.

Spending policy là điều kiện Paymaster contract check trước khi approve: per-user limit (không sponsor quá $1/user/ngày), whitelist functions (chỉ sponsor swap, không sponsor approve), time-based (chỉ sponsor trong giờ marketing campaign), NFT-gated (chỉ sponsor holder của NFT cụ thể).

Đọc thêm cơ chế bundler và alt mempool tại Bundler Là Gì.

?

Câu Hỏi Thường Gặp

Paymaster hoạt động thế nào về mặt bảo mật?+
Paymaster phải stake ETH vào EntryPoint (ít nhất 0.1 ETH). Khi validatePaymasterUserOp() approve một UserOp, stake đó có thể bị slash nếu Paymaster behave maliciously. EntryPoint có thể ban Paymaster nếu reputation score xuống thấp. Cơ chế này ngăn chặn DoS attacks từ malicious Paymasters.
Trả gas bằng USDC có cần approve trước không?+
Có — user cần approve Paymaster contract chi tiêu token. Tuy nhiên nhiều implementation dùng permit (EIP-2612) để combine approve và UserOp trong cùng một action — user ký permit signature off-chain, Paymaster call permit() trước khi charge. Biconomy và Pimlico hỗ trợ permit-based ERC-20 gas payment.
Làm sao dApp biết sponsor bao nhiêu gas?+
dApp estimate gas qua simulateHandleOp() trước khi ký. Bundler cũng estimate và verify. Paymaster set maxCost limit trong validatePaymasterUserOp(). Thực tế, gas sponsorship có budget cap: Paymaster set limit per-user (sponsor tối đa $1/user/ngày) hoặc per-action (chỉ sponsor specific function selectors). Biconomy và Alchemy đều có dashboard để set spending policies.
Paymaster có trên L2 không?+
Có — thực tế Paymaster phổ biến hơn trên L2 vì gas rẻ hơn nhiều. Trên Polygon, Optimism, Arbitrum, Base, zkSync — gas sponsorship chỉ tốn fraction of cent. Nhiều L2 còn có native AA: zkSync Era có built-in Paymaster support không cần ERC-4337. Base đang push mạnh gas sponsorship cho consumer apps.
TWT.VN — Wallet Infrastructure Research

Toàn Bộ Cluster Wallet Infrastructure

15 bài phân tích kỹ thuật — từ key management đến Account Abstraction