Guide
Getting started
Stand up a Viem client on an EIP-8130-enabled chain, register the chain id, and resolve canonical deployment addresses. Then you are ready to create an account and send a transaction.
Install
EIP-8130 helpers live under a dedicated experimental entrypoint; there is no .extend() client decorator. Actions take a Viem Client as their first argument.
Importsts
import { newSmartAccount8130, sendCalls8130, estimateGas8130,} from 'viem/experimental/eip8130'Client setup
Configure a client for your 8130-enabled chain and call register8130Chains so routing helpers know the chain speaks native AA.
Vibenet clientts
import { createClient, http, defineChain } from 'viem'import { register8130Chains } from 'viem/experimental/eip8130'
export const vibenet = defineChain({ id: 84_538_453, name: 'Vibenet Devnet', nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 }, rpcUrls: { default: { http: ['https://rpc.vibes.base.org'] } },})
export const client = createClient({ chain: vibenet, transport: http() })
// Mark the chain as EIP-8130 enabled (empty by default).register8130Chains(vibenet.id)Deployment addresses
Protocol contracts are deployed deterministically and are identical on every chain running the same bytecode. Resolve them per chain id:
Canonical deploymentts
import { getEip8130Deployment, canonicalEip8130Deployment,} from 'viem/experimental/eip8130'
const deployment = getEip8130Deployment(84_538_453) ?? canonicalEip8130Deployment
deployment.accountConfiguration // factory + actor-config registrydeployment.accounts.upgradeable // default smart-account impldeployment.accounts.default // EIP-7702 delegate targetdeployment.accounts.defaultHighRate // immutable / high-throughputdeployment.accounts.erc4337 // portable ERC-4337 impldeployment.authenticators.p256deployment.policies?.manager // example session PolicyManagerAccount implementations
- UpgradeableAccount: default smart account behind an ERC-1967 proxy.
- CanonicalHighRatePayerAccount: immutable, ERC-1167 proxy. prefer for throughput-oriented accounts.
- DefaultAccount: bare building block; EIP-7702 delegation target for EOAs.
- BackwardsCompatible4337Account portable path for non-native chains via bundlers.
Fund and explore
On Vibenet, use the faucet from the Vibenet page or vibes.base.org.