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