ByAUJay
Building ‘No Wallet’ Experiences: When Chain Abstraction Is the Product
A practical guide to designing “no wallet” user journeys where the chain fades into the background—and the product is the abstraction. We cover the 2025 toolkit (7702 smart EOAs, ERC‑4337, session keys, paymasters), concrete architectural patterns, costs, and rollout checklists.
TL;DR (for decision‑makers)
- Ethereum’s Pectra upgrade (May 7, 2025) made “smart EOA” flows via EIP‑7702 production‑ready, letting users keep the same address while you add smart‑account UX (batching, gasless, permissions). That, combined with ERC‑4337 infrastructure, passkeys, USDC gas paymasters, and cross‑chain liquidity routers, enables web‑app‑like onboarding with no wallet pop‑ups—and no chain switching. (ethereum.org)
- You can ship a “no wallet” MVP in 3–6 weeks on Base or Polygon with passkeys + embedded smart accounts, USDC gas (sponsored or user‑paid), one‑click funding via Stripe Onramp, and transaction intents. Typical per‑tx gas is sub‑cent on Base and ~0.1–1 cent on Polygon PoS; if you allow USDC gas via Circle Paymaster, users pay a 10% markup on the gas amount (waived until June 30, 2025). (basescan.org)
1) What “no wallet” actually means in 2025
“No wallet” doesn’t mean there’s no wallet; it means the wallet and the chain are abstracted into your product’s UX:
- Passkey sign‑in (WebAuthn/FIDO2) instead of seed phrases; biometric tap to approve sensitive actions. Coinbase Smart Wallet, Safe and others now support passkeys natively, and FIDO published design guidelines to standardize flows. (help.coinbase.com)
- Smart accounts behind the scenes: either ERC‑4337 accounts or 7702 “smart EOAs” that temporarily delegate to contract logic per‑transaction. Users keep their familiar address; you keep web‑app UX. (ethereum.org)
- Session keys and delegated permissions: short‑lived keys or wallet‑granted permissions scoped by time, contract, and spend limits—ideal for games, subscriptions, and background actions. Standardization is emerging via ERC‑6900/7579 modules and ERC‑7715 permission flows. (eips.ethereum.org)
- Gas abstraction: sponsor gas or let users pay gas in USDC via a paymaster (e.g., Circle Paymaster on major EVMs). (circle.com)
- Chain abstraction: one account and balance across chains, automatic routing and bridging under the hood (e.g., Particle Network Universal Accounts). (developers.particle.network)
Why now? Because Pectra’s EIP‑7702 plus mature ERC‑4337 infra makes hybrid EOAs viable at scale, and ecosystem pieces—bundlers, paymasters, passkeys, and cross‑chain liquidity—have hardened. (ethereum.org)
2) The 2025 stack that powers “no wallet” UX
-
Identity and auth
- Passkeys (FIDO/WebAuthn). Ship device‑biometric login and cross‑device sync through iCloud/Google/Microsoft/1Password. Follow FIDO’s UX guidance for language, recovery, and multi‑device. (fidoalliance.org)
- Embedded wallets: Privy, Dynamic, Web3Auth offer passkey/MPC options, MFA and policy controls; Privy exposes session signers and TEE‑backed key handling for high‑volume apps. (docs.privy.io)
-
Accounts and permissions
- ERC‑4337 smart accounts, 7702 “smart EOAs,” and modular standards (ERC‑6900, ERC‑7579) for pluggable validators/executors/hooks (passkeys, session keys, spending caps). (eips.ethereum.org)
- Delegated execution: ERC‑7715 defines wallet_grantPermissions so apps can request scoped sessions from wallets; MetaMask’s Smart Accounts Kit implements 7702 + delegations. (eips.ethereum.org)
-
Transaction pipeline
- Bundlers (ERC‑4337 alt‑mempool) and EntryPoint v0.7/v0.8. Use a vendor or run your own; check conformance dashboards before choosing. (docs.erc4337.io)
- Paymasters for gas sponsorship or token‑gas (USDC). Circle Paymaster is live on 7 chains; fee = 10% of gas charged to users (waived until June 30, 2025). Pimlico and others provide programmable paymasters. (circle.com)
-
Funding and offramps
- Stripe Onramp supports USDC on Base and Polygon, with Apple Pay/ACH and webhooked KYC; Coinbase Onramp also supports Apple Pay. This lets you show “Add $10” inside your product—no exchange detours. (docs.stripe.com)
-
Cross‑chain liquidity
- CCTP (USDC burn‑and‑mint) V2 cuts settlement to seconds on supported chains; great for background rebalancing/intents. (circle.com)
- Intents: UniswapX + Across proposed ERC‑7683 for cross‑chain intents; UniswapX RFQ v2 improves instant fills. (blog.uniswap.org)
3) Three production‑ready blueprints (with details you can act on)
Blueprint A: Consumer app on Base with passkeys, 7702, and USDC gas
Best for: new consumer apps (social, gaming, marketplaces) targeting US + global.
-
Flow
- Passkey login → auto‑provision a 7702 smart EOA or ERC‑4337 account (MetaMask Smart Accounts Kit, Safe, or Privy embedded wallets). (docs.metamask.io)
- First action is gasless via your paymaster; later, user chooses “Pay gas with USDC.” Integrate Circle Paymaster to charge users in‑app (no ETH needed). (circle.com)
- “Add funds” uses Stripe Onramp for USDC on Base; supports Apple Pay/ACH, returns a webhook when cleared. (docs.stripe.com)
- For power users with existing wallets, fall back to normal connect—7702 lets them keep their address and still batch/sponsor. (ethereum.org)
-
Costing (as of late Nov 2025)
- Basescan shows featured actions like ERC‑20 transfer at ~$0.000041 and a swap at ~$0.000126. That means sponsoring a user’s “aha moment” (two writes + one approval batched) typically costs < $0.001 in gas on Base. (basescan.org)
- If you let users pay with USDC, Circle adds 10% on the gas amount (waived until June 30, 2025), so a $0.001 gas bill becomes $0.0011. (circle.com)
-
Implementation notes
- Use viem + permissionless.js to assemble and send UserOperations; configure your own or a managed bundler/paymaster. (github.com)
- For passkeys, follow FIDO verbiage and cross‑device guidance; on iOS/Android/Windows, encourage cloud‑synced passkeys for recovery. (fidoalliance.org)
Blueprint B: “One balance, any chain” via chain abstraction
Best for: trading terminals, wallets, or games that must reach users regardless of where their assets live.
-
Flow
- User signs in (passkey or connect). You create a chain‑abstracted smart account with Particle Universal Accounts. (developers.particle.network)
- The SDK treats USDC/ETH/SOL/BTC as a unified “primary asset” set—routes and bridges automatically per transaction (EVM + Solana live). (developers.particle.network)
- Users interact on any supported chain without manual bridging, paying gas in “any token” with gasless options. (developers.particle.network)
-
Why it matters
- You serve users on multiple chains with one integration, and you can combine this with UniswapX cross‑chain intents for fast settlement. (blog.uniswap.org)
-
Caveats
- You’re coupling to a chain‑abstraction provider; use standards (ERC‑4337, 6492, 1271) for portability and to maintain signature compatibility across stacks. (eips.ethereum.org)
Blueprint C: Enterprise “headless wallet” with policy controls and delegated sessions
Best for: fintechs, loyalty apps, SaaS with onchain actions.
-
Flow
- Authenticate with SSO + passkeys; provision embedded wallets per user (Privy) and enable MFA. Define server‑side policies (allowlists, per‑tx limits). (docs.privy.io)
- Use Privy session signers so your backend can initiate allowed actions (recurring payouts, mint on purchase) only within user‑granted scopes. (docs.privy.io)
- Expose a “one‑click pay with USDC” that triggers a user‑approved session; sponsor gas or bill gas in USDC via a paymaster. (circle.com)
-
Why it matters
- You get web‑app ergonomics (subscriptions, background jobs, scheduled mints) without permanent custody.
4) Implementation deep‑dive: decisions that prevent rework
-
Account model
- If you want “same address, new powers”: adopt 7702 smart EOAs (Pectra). If you need richer modules today: ERC‑4337 smart accounts with ERC‑6900/7579 modules. Many stacks now support both. (ethereum.org)
-
Permissions and sessions
- Prefer wallet‑mediated sessions using ERC‑7715 as it lands (wallet_grantPermissions + revoke). Until broad support, implement session keys via 6900/7579 modules (e.g., Alchemy’s SessionKey plugin). Scope by target contract, method selectors, spend caps, and expiry. (eips.ethereum.org)
-
Gas policy
- Start with sponsored “aha” actions (post, play, mint) and USDC gas thereafter. Circle Paymaster is live on Ethereum, Base, OP Mainnet, Arbitrum, Polygon PoS, Avalanche and Unichain; review the post‑waiver fee model. (circle.com)
-
Bundlers and EntryPoint
- Check the ERC‑4337 bundler conformance dashboard; choose v0.7 or v0.8 support to match your account implementation. Keep an eye on EntryPoint address/version drift across providers. (docs.erc4337.io)
-
Cross‑chain
- When you must move USDC, prefer CCTP V2 Fast Transfer for seconds‑level settlement and compose post‑transfer actions with Hooks; for cross‑chain swaps and payouts, combine intents (UniswapX) with CCTP for native USDC. (circle.com)
-
Developer ergonomics
- viem + permissionless.js is now the “least lock‑in” AA combo. Many wallets (MetaMask Smart Accounts Kit) provide viem adapters for Hybrid/7702 accounts. (github.com)
5) Costs, SLOs, and risk controls
-
Realistic gas
- Base: featured actions on Basescan show ~$0.000041 (ERC‑20 transfer) and ~$0.000126 (swap). Polygon PoS typical actions remain <$0.01 according to Polygonscan’s tracker. These numbers make subsidized “first‑time” affordably scalable. (basescan.org)
-
Paymaster economics
- If you sponsor gas, enforce per‑session/addr/day spend caps; auto‑replenish paymaster stake; simulate before submission; and blocklist known griefing calldata. If you pass USDC gas to users (Circle), expect the 10% gas‑amount fee post‑June 30, 2025. (circle.com)
-
Onramp latencies
- Stripe Onramp returns webhooks on KYC and settlement; announce UX expectations up‑front (e.g., “funds appear in ~seconds on Base”). (docs.stripe.com)
-
SLOs and observability
- Track: simulateValidation failure rate, userOp inclusion time, paymaster balance runway, and cross‑chain confirmation times. Use the ERC‑4337 bundler test suite to catch regressions when you upgrade EntryPoint or swap vendors. (docs.erc4337.io)
6) Security and compliance you should not ignore
-
Signature compatibility
- Implement ERC‑1271 for contract signatures and ERC‑6492 for counterfactual signatures (pre‑deployment), so your sign‑in and permit flows work across smart and EOAs. (eips.ethereum.org)
-
Module safety
- If you adopt ERC‑7579 modular accounts, consider registry checks (ERC‑7484) to verify module provenance and audits before installation. (eips.ethereum.org)
-
Compliance posture (US/EU perspective)
- Clarify custody: “hosted” wallets may trigger money transmitter obligations; embedded MPC/AA setups are often non‑custodial, but facts matter (who can unilaterally move funds?). Document this early. (kelman.law)
- Travel Rule and unhosted wallets: FATF guidance pushes VASPs to risk‑mitigate P2P/unhosted flows; expect counterpart controls when you touch fiat ramps or run custodial features. (skadden.com)
7) Concrete, modern UX patterns that work
-
Default passkeys, optional recovery keys
- Encourage cloud‑synced passkeys. For high‑value users, offer hardware key linking or QR auth as backups. Follow FIDO wording to reduce confusion and lockouts. (fidoalliance.org)
-
One‑tap actions via session keys
- Authorize a 15–60‑minute session scoped to a contract + function set + price cap; present a clear “Expires at hh:mm” banner. This is mainstream in Starknet’s AA wallets and modular 6900/7579 plugins. (starknet.io)
-
Gasless “aha” + transparent USDC gas after
- Hide chain jargon; show “Included by [Brand]” for the first few actions, then “Pay tiny network fee in USDC” with an inline explainer. Circle’s paymaster removes the “Where do I get ETH?” moment. (circle.com)
-
Chain‑free navigation
- Never show a chain selector. If your app spans chains, route via CCTP + intents, or use a chain‑abstraction layer (Universal Accounts) and expose only product concepts (buy, sell, mint, send). (developers.circle.com)
8) A 30/60/90‑day rollout plan (what to ship when)
-
Days 1–30: MVP on Base
- Passkey login + embedded smart account (7702 or 4337), sponsor first action, integrate Stripe Onramp (USDC Base), log and alert on userOp failures. (docs.stripe.com)
-
Days 31–60: Permissions and USDC gas
- Add session keys for top flows; turn on USDC gas via Circle Paymaster; instrument bundler SLOs; run the 4337 bundler compatibility suite in CI. (circle.com)
-
Days 61–90: Chain abstraction and cross‑chain
- Introduce CCTP V2 for cross‑chain USDC transfers in seconds; optional Universal Accounts for “one balance” UX; experiment with UniswapX intents for cross‑chain swaps. (circle.com)
9) Example: USDC‑gas AA write in TypeScript (viem + permissionless.js)
import { http, createClient } from "viem"; import { base } from "viem/chains"; import { bundlerActions, toSimpleSmartAccount } from "permissionless"; // 1) Create a bundler client (swap in your vendor URL) const bundler = createClient({ chain: base, transport: http(process.env.BUNDLER_RPC!) // e.g., Pimlico/Alchemy/your own }).extend(bundlerActions); // 2) Create/load a smart account (4337) or use a 7702 account via your wallet SDK const account = await toSimpleSmartAccount({ client: bundler, // or a public client owner: /* your signer (e.g., passkey/privkey) */ }); // 3) Send a UserOperation that writes to your contract const uoHash = await bundler.sendUserOperation({ account, calls: [{ to: "0xYourContract", data: "0xYourCalldata" }], // Optionally attach a paymaster for sponsored or USDC-gas flows }); console.log("userOp:", uoHash);
Use permissionless.js’s paymaster helpers when integrating Circle Paymaster or your own policy paymaster; keep EntryPoint version consistent with your account implementation. (github.com)
10) Pitfalls we see most often (and how to avoid them)
- Mempool/version mismatch: accounts on v0.6 when your bundler is v0.7/0.8; decide your EntryPoint target and stick to it across environments. Use supportedEntryPoints RPC to assert compatibility at runtime. (alchemy.com)
- Vendor lock‑in: pick standards (6900/7579 modules, 1271/6492 signatures, 7715 permissions as it rolls out) so you can swap wallet stacks later. (eips.ethereum.org)
- Recovery gaps with passkeys: always enable multi‑device sync and secondary factors; document recovery clearly (don’t bury it). Reference FIDO’s copy and flows. (fidoalliance.org)
- Gas sponsorship abuse: enforce per‑account spend caps, method allowlists, and simulation gating; monitor paymaster stake and rate‑limit by session. Pimlico’s examples are a good starting point. (github.com)
- Cross‑chain UX drift: if you adopt chain abstraction, keep product vocabulary chain‑agnostic; let routers choose routes (CCTP V2, intents) and keep receipts simple. (circle.com)
The bottom line
When chain abstraction is the product, your user experience becomes the competitive moat. The 2025 stack—EIP‑7702 smart EOAs, ERC‑4337 accounts, passkeys, USDC gas paymasters, and cross‑chain intents—makes “no wallet” flows practical, cheap, and secure. Start with Base + passkeys + USDC gas, add session keys and CCTP, and only then consider deeper chain‑abstraction layers. If you want a partner to own the AA/paymaster plumbing, policy engine, and observability from day one, 7Block Labs has shipped these blueprints across consumer and enterprise stacks and can help you cut time‑to‑value.
References and resources (selected)
- Pectra mainnet activation and EIP‑7702 overview (ethereum.org). (ethereum.org)
- ERC‑4337 docs and bundler compatibility suite. (erc4337.io)
- Circle Paymaster (USDC gas) and pricing. (circle.com)
- Base and Polygon PoS gas trackers. (basescan.org)
- Passkeys guidelines (FIDO Alliance). (fidoalliance.org)
- ERC‑6900/7579 modular accounts; ERC‑7715 permissions. (eips.ethereum.org)
- Privy embedded wallets, MFA and session signers. (docs.privy.io)
- CCTP V2 fast USDC transfers. (circle.com)
- UniswapX RFQ v2 and cross‑chain intents standardization. (docs.uniswap.org)
7Block Labs can help you pick a stack, ship a “no wallet” MVP in weeks, and scale it safely across chains.
Like what you're reading? Let's build together.
Get a free 30‑minute consultation with our engineering team.

