Programmable EOAs Are Here: EIP‑7702 Wallets Redefine Web3 UX
Ethereum’s Pectra upgrade unlocked EIP 7702, letting ordinary wallets act like smart accounts for a single transaction. Here is what that means for one‑click flows, gas sponsorship, safer permissions, and the new phishing tricks to watch.

The breakthrough, in plain English
Ethereum’s Pectra upgrade flipped a switch for everyday accounts. On May 7, 2025, Pectra activated on mainnet, setting the stage for programmable Externally Owned Accounts. That is the familiar type of wallet controlled by a private key, like the address you have used for years. With Pectra live, a new standard called EIP 7702 moved from theory into practice. It lets a regular wallet behave like a smart wallet for the length of a single transaction. Think of it as a power‑up that fades after the play is over. For timelines and client details, see the Ethereum Foundation’s mainnet announcement. Pectra activated on May 7, 2025.
If you have ever approved a token, then signed again to actually do the thing you wanted, you know the old pain. Programmable EOAs compress that multi‑step dance into one move, and they add something new: the ability to have someone else sponsor your gas or to pay gas in a token you already hold.
What changed for users this season
- One click means one decision. A swap that used to require an approval and a trade can now happen in a single signed action. The same goes for staking, minting, or moving funds across chains.
- Sponsored gas means the app or a service can pay the fees. The user can focus on the outcome, not the plumbing. For some flows, the wallet can also accept fees in a stablecoin or another asset the user has on hand. For context on payments convergence, see mainstream stablecoin rails.
- Mini‑app experiences show up inside the wallet. Instead of bouncing between tabs and pop‑ups, the wallet can present embedded flows that feel like tiny apps with clear steps and a single confirmation at the end.
- Recovery and policies start to feel normal. Because your wallet can run programmable logic during a transaction, it becomes natural to set limits, add a second device for high‑value actions, or cap daily spending without changing your address.
None of this requires users to migrate to a new contract account or adopt a new address. That is the point. EIP 7702 augments the account you already have.
Under the hood: why EIP 7702 matters
At a high level, EIP 7702 introduces a transaction type that lets an EOA temporarily point to contract code during execution, then revert to normal when the transaction ends. The EOA signs an authorization that specifies which delegator contract to trust. The chain executes that code as if the EOA were a smart account, then cleans up. The result is a familiar address with on‑demand superpowers. If you want to go deeper into the mechanics, the EIP explains the authorization format and execution rules. Read the EIP 7702 specification.
Three capabilities matter most for user experience:
- Batching: group dependent actions atomically so they either all happen or none do.
- Sponsorship: let another account or service pay for execution, potentially in exchange for a fee paid in a different asset.
- Privilege de‑escalation: delegate specific powers, such as spending a capped amount of a single token, without giving away the keys.
For builders, a valuable extra is that 7702 plays nicely with the account abstraction infrastructure many teams already use. Bundlers, paymasters, and session systems that work for smart accounts can now be extended to EOAs through a predictable mechanism.
What is live right now
A number of wallets shipped or announced 7702 support soon after Pectra. Here is a snapshot of where things stand in October 2025.
- MetaMask. The developer‑facing Delegation Toolkit gives dapps the pieces to embed smart account behavior and to upgrade an EOA with an EIP 7702 authorization in one flow. Developers can wire in gas sponsorship and granular permissions. On the user side, recent builds improve simulations and warnings for complex approvals. For many apps this is a fast path to a mini‑app UX inside the wallet.
- Ambire. Publicly launched 7702 support on mainnet day one. Users can batch actions, pay gas in supported tokens, and take advantage of sponsored revocations and other safety tasks on certain networks.
- OKX Web3 Wallet. Enabled 7702 support around Pectra, with a focus on batch actions and gas delegation for EVM chains supported in the wallet.
- Trust Wallet. Aligned its roadmap with 7702 and helped push a compatibility layer for smart wallets so different implementations can interoperate. The practical effect is that apps can rely on a more consistent interface as 7702 features roll out.
- Coinbase Smart Wallet and Base ecosystem. Developer docs and paymaster infrastructure support transactions from EOAs that have been upgraded with 7702, helping teams ship gas‑sponsored flows out of the box. For Base‑related infrastructure trends, see portable AVSs on Base.
- Security‑first additions. Several wallets and security tools added 7702‑aware revocation and detection. This includes features that show active delegations and allow users to cut them off in a single step. Expect more of this to land before the holidays.
Taken together, this is enough to build one‑click swaps, gas‑sponsored onboarding, and simple recurring actions that run without daily confirmations.
The next wave: intents, policy wallets, and subscriptions
EIP 7702 is not the finish line. It is the bridge that lets existing addresses access the next crop of features without migration. Three directions are converging now.
1. Intents that describe outcomes instead of clicks
Intents flip the model from “simulate this exact call” to “achieve this result under my rules.” Instead of a user signing a swap on one exchange, they sign an intent like “swap up to 500 USDC to ETH at price X or better by end of day.” Solvers compete to fulfill that intent under the constraints, often fronting gas. Draft standards aim to give wallets a common entry point for verifying and executing these signed intents. With 7702, an EOA can validate and execute these flows with no address migration. For users, this means better prices and fewer manual steps. For builders, it means thinking in terms of guardrails and outcomes, not just UI buttons.
2. Policy wallets that enforce rules by default
Policy wallets are programmable accounts that apply rules like spending caps, token allowlists, time windows, or second‑factor requirements depending on context. Emerging permission systems allow a dapp to ask a wallet for narrow powers and to present those requests in a human‑readable way. With 7702, an EOA can accept those permissions without becoming a full smart account permanently. The policy gets baked into the delegated code path and expires or revokes on schedule.
3. Subscriptions and background jobs
Recurring payments and scheduled actions are moving from hacky cron services to first‑class wallet features. The key pieces are: a dapp requests a specific permission, the wallet records it and shows it in a clear ledger, a paymaster or relayer sponsors the gas, and the user can revoke at any time. Thanks to 7702, you can run those jobs from your long‑lived address, not a new one, and apps can keep users in flow without nagging for confirmations every single day.
The new phishing playbook you must defend against
Programmability cuts both ways. The same power that lets a user batch approvals and actions into one signature can be misused to batch malicious approvals into one trap. Attackers have already adapted by pushing fake claim pages and upgrade prompts that ask the wallet to delegate to a malicious contract. In one click, the victim can grant a bundle of token approvals and perform hidden transfers inside that delegated execution path. Before 7702, this would have taken multiple signatures and multiple chances to notice. Now it can be atomic.
Three patterns deserve special attention:
- Batch approval drains. The site proposes a single action. The delegated code quietly approves dozens of tokens and then moves them out in the same transaction or on a timer.
- Persistent delegations with benign names. The user authorizes a delegation that looks harmless but includes an evergreen permission. The attacker waits until the wallet is funded and then runs a scripted drain.
- Multi‑chain bait. The phishing page targets a cheaper network where the user will not scrutinize fees, but also sets token approvals for assets bridged or mirrored elsewhere.
None of this is a reason to avoid 7702. It is a reason to treat the new surface like a payments system rather than a novelty. Builders need to raise the floor on defaults and clarity.
Mitigations to ship before the holiday surge
Below is a concrete, prioritized checklist for wallet teams, dapps, and platforms that expect a seasonal traffic spike.
- Simulate by default and summarize by intent
- Always simulate the delegated execution path server side and client side before presenting a signature. Show the outcome plainly: assets moved, allowances created, who pays gas, and what the new permissions allow.
- Highlight count of approvals and the top three riskiest changes with simple labels. For example: Grants unlimited USDC allowance to contract X; Moves 0.83 ETH to address Y; Enables daily spending up to 50 USDC.
- Adopt granular permissions over blanket approvals
- Prefer permission systems that request narrow scopes with expiry, such as a specific token, amount, and time window. Default expirations to 24 hours for trial flows and 30 days for subscriptions.
- When a dapp must ask for a broad permission, require a second factor or a time delay before it becomes active. A simple pattern is: sign now, confirm on a second device within 10 minutes.
- Make revocation a first‑class action
- Expose a single screen that lists active delegations, token approvals, session keys, and subscriptions across networks. Include a global kill switch to revoke all delegations and reset allowances to zero.
- Cache and sync revocation endpoints so users can cut access even if your primary service is degraded.
- Use allowlists and denylists for delegation targets
- Maintain a signed, updatable registry of known‑good delegates and known‑bad ones. Resolve contract identities to human‑readable names and verification badges in the signing prompt.
- If a delegation target is unknown, slow the flow down. Add an interstitial and require an extra confirmation.
- Put budget guards in the wallet layer
- Enforce per‑day and per‑transaction caps for new delegates by default. Let power users raise limits explicitly.
- Block any single transaction that creates N or more new unlimited approvals unless the user acknowledges each one.
- Sponsor gas with conditions, not blind faith
- If you run a paymaster, attach policy checks to each sponsored call. Refuse to pay for transactions that do not match the declared intent category or that modify allowances outside a known set of contracts.
- Log every sponsored call with the user’s cleartext intent label so support can triage disputes fast.
- Tighten the front door
- Pin your app’s connect and transact flows behind a canonical domain and package signature. Warn or block when the dapp’s origin does not match the package the wallet expects.
- Add a one‑tap bookmark prompt inside the wallet after a successful session. Fewer open‑web searches mean fewer phishing clicks.
- Prefer safe defaults in dev tooling
- If you expose a one‑click batch template, include a preset that uses limited allowances, explicit token IDs, and post‑action revocations where possible.
- For kits and SDKs, ship a secure mode that developers must override to create unlimited approvals or unrestricted delegations.
- Instrument everything
- Track the ratio of signed transactions that include multiple approvals. Track revocation rates within 24 hours of a delegation. Alert when a contract suddenly becomes the target of many delegations from new accounts.
- Share anonymized telemetry on new drainer patterns with peer wallets and scanners. The attacker economy is collaborative. Defense should be too.
- Educate without jargon
- Replace “Sign to setCode” and similar dev speak with plain outcomes. Example: You are allowing this app to run a one‑time program from your wallet to perform 3 actions. Here is the list.
- Put a 30‑second safety tour in your first‑run experience focused on approvals, delegations, and revocations. Make the kill switch easy to find from the home screen.
A practical blueprint: design a one‑click, gas‑sponsored checkout
To make this concrete, suppose you want a shopper to buy an onchain collectible with a single confirmation and no visible gas.
- Before: Detect whether the user’s wallet supports EIP 7702. If yes, prepare a delegated execution path that collects payment, mints, and transfers the item in one batch. If not, fall back to a standard two‑step flow.
- Permissions: Request a permission capped to the purchase price plus a small buffer, with a one‑hour expiry. Display the cap and the expiry.
- Sponsorship: Use your paymaster to sponsor the transaction. In your policy engine, restrict sponsored calls to the minting contracts and to the amount cap.
- Simulation: Simulate the transaction using the user’s actual state. Surface the mint contract’s identity, the recipient account, the total spend, and the sponsorship details.
- Confirmation: The wallet shows a single, human‑readable summary with a link to view or revoke the new delegation if any remains after the mint.
- Post‑action hygiene: If an approval was needed for a marketplace router, revoke it automatically in the same batch after the purchase settles.
- Observability: Log the delegated contract, the number of approvals created and revoked, and the paymaster policy that matched. Use this data to tune caps and refine warnings.
This is not just safer. In testing, it converts better because the user sees one clear action and no fee friction.
What to watch between now and year end
- Standard convergence. Expect more wallets and toolkits to adopt common interfaces for modular accounts and permission requests. That reduces one‑off integrations and makes policy wallets portable.
- Layer 2 adoption. As networks adopt 7702 and related tooling, gas sponsorship and batching become cheaper to offer at scale. See the broader context in permissionless L2 milestones.
- Better risk labeling. The biggest usability win will be in how wallets describe permissions and batch effects. Watch for profiles of common actions, like “swap up to 100 USDC via router X for 1 hour,” rendered as easy toggles.
- AI agents with guardrails. Delegations enable bounded automation. The safe version is an agent with a tiny budget and a narrow allowlist. Teams that do this well will unlock novel experiences without scaring users.
The bottom line
Programmable EOAs are no longer a promise. They are shipping in mainstream wallets, and the best teams are already building one‑click, gas‑sponsored experiences that feel like real apps. The trade is clear. You gain speed and consistency, but you must harden your flows against batch‑approval traps and sticky delegations. If you ship the mitigations above and lean into permissions, sponsorship policies, and crystal‑clear summaries, you will meet the holiday wave with the right mix of delight and defense. The first generation of Web3 made users work around the chain. Post‑Pectra, with 7702 in hand, wallets can finally make the chain work around the user.