Stablecoin gas fees: allow users to pay transaction fees in ERC-20 stablecoins
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
- Issue type
- Feature
- Clarity
- Needs clarification
- Activity status
- Stale
- Tech stack
- rust
- Domain
- blockchain
Research direction
Start with docs/adr/ADR-0003-typed-transactions-sponsorship.md and the custom EVM handler in crates/ev-revm. First resolve whether the design uses an AMM, sequencer-side conversion, or a precompile, then trace EvEvmConfig and the fee-estimation and receipt/RPC entry points. Done means supported stablecoins can pay fees, responses report the fee token, and integration tests cover successful, mixed, insufficient-balance, and oracle-failure cases.
Written by the indexing model from the issue text.
Description
Summary
Enable end users to pay gas fees in supported ERC-20 stablecoins (e.g., USDC, USDT) instead of requiring them to hold native ETH, eliminating the largest onboarding friction for enterprise and fintech customers.
Motivation
Today, every user of an ev-reth chain must acquire and hold native ETH to pay gas fees. This is a significant barrier for:
- Enterprise customers who want predictable, stable fee structures
- End users onboarded through fintech/payment apps who should never need to think about gas tokens
- Compliance teams who prefer USD-denominated cost accounting
Tempo (Stripe/Paradigm's payments-first L1, also built on Reth SDK) has validated this pattern: users pay fees in any supported stablecoin, and a protocol-level mechanism handles conversion. ev-reth's ADR-0003 already implements fee sponsorship (sponsor pays gas on behalf of user), but stablecoin gas goes further by removing the native token requirement entirely.
Design considerations
Option A: Fee AMM (Tempo's approach)
- Deploy an on-chain AMM that converts stablecoin fee payments to the native token at execution time
- The EVM handler deducts stablecoins from the user, swaps through the AMM, and burns/distributes native token equivalent
- Pro: Fully on-chain, transparent pricing
- Con: Requires AMM liquidity, adds execution complexity
Option B: Sequencer-side conversion
- The sequencer (ev-node) accepts stablecoin-denominated fees off-chain
- Payload builder credits native gas from a system account and debits stablecoin balance
- Pro: Simpler, no AMM needed
- Con: Centralized pricing, trust assumption on sequencer
Option C: Precompile-based fee deduction
- A system precompile at a fixed address handles stablecoin balance checks and deductions
- Custom EVM handler in
crates/ev-revmoverrides fee deduction to call the precompile - Pro: Clean separation, composable
- Con: New precompile surface area
Scope
- Decide on conversion mechanism (AMM vs sequencer vs precompile)
- Extend
EvEvmConfig/ custom EVM handler incrates/ev-revmto support non-native fee deduction - Define supported stablecoin registry (chainspec or system contract)
- Modify receipt/RPC responses to indicate actual fee token used
- Update gas price oracle / fee estimation RPCs to return stablecoin-denominated prices
- Integration tests covering: stablecoin-only user paying gas, mixed native+stablecoin blocks, edge cases (insufficient stablecoin balance, price oracle failure)
Prior art
- Tempo: stablecoin gas fees -- Fee AMM approach, no native token
- EIP-4337 Paymasters -- Account abstraction approach (higher overhead)
- ADR-0003 -- ev-reth's existing fee sponsorship model (complementary, not replacement)
- Dominant language
- Rust
- Stars
- 8
- Forks
- 9
- Avg merge
- 3d 17h
- Merged PRs (30d)
- 4
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from evstack/ev-reth
-
Difficulty 3/5 1-2 days Newbie friendliness 35/100
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
-
Difficulty 5/5 Over a week Newbie friendliness 30/100
-
Difficulty 5/5 Over a week Newbie friendliness 28/100
Similar issues
-
Browser (wasm) relay client cannot connect to relays whose URL has a trailing-dot FQDN hostname Open
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
n0-computer/iroh#4550 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
paritytech/zombienet-sdk#591 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
farion1231/cc-switch#7638 · 1 comment ·
-
onnx-ir re-exports ModelProto and GraphProto but not NodeProto, AttributeProto and AttributeType Open
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100