Skip to content

EIP-7702 Overview

Why EIP-7702

EIP-7702 is an upcoming upgrade to Ethereum and EVM blockchains which enables wallets to convert the user EOA wallets into Smart Accounts

With EIP-7702, wallets can drastically improve the UX for their users by offering smart account features, such as:


Gas Abstraction
The ability to pay for gas with ERC20 tokens


Gas Sponsorship
Wallets can sponsor user gas onchain and offer their users a different way of paying for their transactions (e.g. prepaid, postpaid, ...)


Batch Execution
The ability to batch execute transactions with a single signature


Enable Automation
Wallets can install (or enable apps to install) Session Keys on accounts, which provide a safe way to automate wallet actions. Session keys provide guardrails, meaning that the Session Key signer can only execute the exact transactions approved by the wallet/user. This can include enabling dollar cost averaging, TWAP selling, yield rebalancing, ...

The Most Comprehensive EIP-7702 Solutions Suite

At Biconomy, we have built the most comprehensive EIP-7702 solution on the market, enabling wallets to add all of the above mentioned features, as well as many advanced - Biconomy stack specific features:

Unified User Balances
Wallets can present apps with a Unified Multichain Balance. The app can then "pull" the funds they need to the chain of their choosing. Wallets can work with solvers and bridges to provide this liquidity.


Cross-Chain Gas Abstraction
Wallets can enable users to pay for gas with native or ERC20 tokens across chains. E.g. a user can pay for a transaction on Base with USDC or ETH on Arbitrum.


Native Scheduling and Automation
The Biconomy MEE Nodes can commit to execute a transaction at some point in the future or to execute a series of transactions in some time period. For Biconomy integrators, this is available without installing a separate module.


Quickstart Guide for Developers

Install Packages

Install AbstractJS TypeScript SDK and viem

npm install @biconomy/abstractjs viem @rhinestone/module-sdk@0.2.7

Sign a wallet authorization

In order add Smart Account capabilities to an EOA account, you must sign an authorization specifying which Smart Account address will be "installed" on the EOA address. In order to save on gas costs, you will be setting the authorization to a singleton contract - which means that no new contracts will need to be deployed.

// This is the address of the EOA to which 
// address we'll be "installing" the smart account to.
const eoa = privateKeyToAccount('0xPrivateKey')
 
// Create an instance of a viem wallet client and extend it with the 
// required EIP-7702 actions.
const walletClient = createWalletClient({
  chain: odysseyTestnet,
  account: eoa,
  transport: http(),
}).extend(EIP-7702Actions())
 
const authorization = await walletClient.signAuthorization({
  // Address of the Nexus Proxy Singleton
  contractAddress: nexusProxyAddress 
})

Choose your execution environment

With AbstractJS and the Biconomy stack, developers can choose whether to push transactions through our battle-tested ERC4337 Bundler/Paymaster stack or through our innovative multi-chain MEE Stack