ZeroDev is the most powerful smart account development platform, built by Offchain Labs. It eliminates major Web3 friction points through Key Abstraction (no seed phrases), Gas Abstraction (no native gas tokens needed), and Chain Abstraction (no manual bridging).
The Kernel is our minimal, audited, and extensible smart contract account. It is fully compatible with ERC-4337 and natively supports EIP-7702 (Smart EOAs) and the modular ERC-7579 standard.
ZeroDev is a multi-chain solution that powers over 5 million smart accounts on 30+ EVM-compatible networks. This includes all major networks like Ethereum Mainnet, Arbitrum, Optimism, Base, Polygon, Avalanche, and BSC.
ZeroDev pioneered an intent-based architecture (ERC-7683) and its own infrastructure, UltraRelay, which leads to transactions that are up to 20% cheaper in gas and have 25% less latency than traditional ERC-4337 bundlers.
To get started, install the appropriate SDK (e.g., @zerodev/sdk or @zerodev/waas for React) and obtain a Project ID from the ZeroDev dashboard. You initialize a Kernel client by linking an owner/signer (e.g., an EOA, Passkey, or Social Login) and specifying your Project ID.
For DApps: Use @zerodev/wallet to spin up a smart embedded wallet for users who don't have one, accessing smart features via the Capabilities API. For Wallets (Embedded/Standalone): Use @zerodev/core for fine-grained control or @zerodev/waas for a React-native integration.
ZeroDev operates a Meta AA Infrastructure that ensures utmost reliability. Our RPCs proxy traffic across multiple underlying bundlers, including UltraRelay, Alchemy, Gelato, and Pimlico, to guarantee high uptime and performance through redundancy.
We offer four tiers: Pay as you Go ($\$0/mo$), Growth ($\$69/mo$ with 10k UserOps included), Scale ($\$399/mo$ with 100k UserOps included), and Enterprise (Custom pricing and support).
For Growth and Scale plans, overages will be priced at:
Growth: $0.0020 per credit ($0.04 per UserOp)
Scale: $0.0010 per credit ($0.02 per UserOp)
Please contact our Sales team for Enterprise overage costs.
Key Abstraction separates the wallet address from the owner key, allowing flexible, non-seed-phrase authentication. ZeroDev implements this via custom validators for familiar login methods like Social Login and Passkeys, ensuring users can recover or upgrade their keys without changing their wallet address.
Passkeys use the security features of the user's device (e.g., Face ID, Touch ID) to sign transactions. They are non-custodial; the private key is securely stored in the device's hardware enclave (e.g., Apple/Google Keychain) and never leaves it.
Yes, the Passkeys Validator is a core plugin that provides signature verification logic called by the ERC-4337 EntryPoint. ZeroDev uses a progressive approach: prioritizing the highly gas-efficient ERC-7212 (if available) and falling back to a smart contract implementation otherwise.
ZeroDev supports a flexible Account Recovery mechanism. Users can set up a guardian (a separate key, another device, or the DApp itself) which can initiate a recovery action to change the sudo validator (owner key) of the smart account.
ZeroDev supports social login natively via the @zerodev/waas or @zerodev/social-validator SDKs. For production, developers must configure their details (e.g., client ID) in the ZeroDev dashboard (Growth plan or higher), which utilizes Magic for secure underlying key management.
Yes. The Kernel's modular design allows the existing owner (the sudo validator) to easily enable or install a new validator (e.g., the Passkeys Validator) as the new signing mechanism without changing the smart account address.
Yes. ZeroDev's Kernel is open and supports Custom Validator Plugins. Developers can implement a custom signer that conforms to the SmartAccountSigner interface and install it on the Kernel, allowing integration with any signing mechanism, including custom MPC setups or custodial key providers like Turnkey.
Yes. Multisig is supported via a specialized Multisig Validator plugin. MFA can be implemented by setting multiple validators with policies that require more than one key or condition to execute a transaction.
sudo validator and a regular validator?The sudo validator is the owner of the account with ultimate control, capable of installing or revoking other plugins. Regular validators (like a Session Key or a Guardian) have limited, non-sudo access based on defined policies.
Yes, ZeroDev supports this via an ECDSA Validator. The EOA does not act as the wallet, but as the master key (signer) for the ZeroDev smart account, granting it AA superpowers.
Gas Abstraction removes the requirement for users to hold native gas tokens (like ETH). ZeroDev enables this by allowing DApps to sponsor gas fees (gasless transactions) or by letting users pay for gas with ERC-20 tokens (e.g., USDC).
Developers fund their ZeroDev project account and define a Gas Policy via the dashboard or API. The ZeroDev paymaster checks the policy, fronts the native gas fee, and the developer is charged later (via credit card or gas credits).
UltraRelay is ZeroDev's proprietary bundler and relayer infrastructure. It is optimized for sponsored transactions, using an intent-based architecture (ERC-7683) to achieve up to 30% less gas cost and 20% lower latency than standard ERC-4337 bundlers.
ZeroDev allows highly granular control using four Policy Types (Project, Contract, Wallet, Custom Webhook) and four Rate Limit Types. You can limit sponsorship by the total Amount of gas, the number of Requests per interval, the current Gas Price, or the Amount per Transaction.
Yes. ZeroDev supports payment in ERC-20 tokens via its ERC-20 Paymaster. Our managed paymaster currently supports USDC on major L2s/chains including Ethereum Mainnet, Polygon, Base, Optimism, and Arbitrum.
Yes, a Gas Sponsorship Premium is applied to cover infrastructure costs and network volatility. This premium is 8% for Growth and Scale. Please contact us for customer enterprise level premiums.
Yes. Developers on the ZeroDev dashboard can deploy a Self-Funded ERC-20 Paymaster contract, fund it with native gas tokens, and then set their own exchange rate to support custom ERC-20 tokens (e.g., a project token or USDe).
Abuse is prevented primarily through the mandatory Gas Policy system. By setting precise limits on the total gas amount, request rate, and allowed contract interactions, developers ensure sponsorship is limited to legitimate user activity.
ZeroDev's SDK allows developers to batch the ERC-20 approval for the paymaster along with the initial UserOp. This means a user only signs once to approve the tokens and execute the transaction, eliminating a separate gas-consuming approval step.
Yes. The Custom Gas Policy feature allows you to connect a webhook URL. ZeroDev's paymaster will send the UserOp details to your custom server, and your server returns a boolean (proceed: true/false) to determine if the transaction should be sponsored.
Transaction Abstraction simplifies multi-step or time-sensitive on-chain operations. Key features include Batching (atomic multi-step transactions), Session Keys (transaction automation), Multisig, and Parallel Transactions (2D Nonces).
Batching combines multiple contract calls (e.g., approve, swap, stake) into a single UserOperation. The main benefit is achieving atomicity—the entire sequence executes successfully or fails entirely—and simplifying user flow, like enabling "Approve & Swap in one click".
Session Keys are temporary, dedicated signing keys with granular, revocable permissions. Use cases include transaction automation for bots or AI agents, pre-authorizing actions like limit orders or dollar-cost averaging (DCA), or enabling gasless gameplay in Web3 games.
Session Keys are implemented as "Regular Validators" with non-sudo access. Security is maintained through granular Policies (e.g., Call Policy, Gas Policy) that restrict the key to only specific contracts (e.g., Uniswap), functions, and spending limits, making it impossible to drain the entire wallet.
You can define composite rules using multiple policy types: Call Policy (target contract/function), Gas Policy (max total gas spend), Rate Limit Policy (max number of requests per interval), and Timestamp Policy (valid time window).
Yes. This architecture is designed for "Owner" (user) and "Agent" (server) interaction. The user pre-approves the session key off-chain, and the developer's server uses the key's private key to programmatically sign and submit transactions from the backend.
ZeroDev enables parallel UserOps via 2D Nonces. Instead of a single sequential counter, the nonce is split into a nonce key and a nonce value. By assigning a different nonce key to unrelated transactions (e.g., "Uniswap" vs. "AAVE"), they can be processed by the network simultaneously.
Multisig is implemented using a specialized Multisig Validator plugin. This plugin defines the multi-signer configuration (e.g., 2-of-3 signers required) using any combination of signers (EOAs, Passkeys, etc.) that must collectively validate a UserOp before it can be executed.
Yes. ZeroDev is built to support both standard ERC-4337 smart accounts and EIP-7702 Smart EOAs, allowing both account types to benefit from Transaction Abstraction features like Batching and Session Keys.
Yes. ZeroDev supports the ERC-5792 Capabilities API, which allows DApps to interact with any ERC-4337 smart wallet in a standardized way. This ensures that DApps built with ZeroDev are compatible with the wider smart wallet ecosystem.
Chain Abstraction allows users to spend tokens on any chain as if they were on one unified network. ZeroDev is the first to natively support this by abstracting the complexities of cross-chain execution and bridging via Intents.
CAB is a unified, aggregated balance of a single token (e.g., USDC) held by the user across multiple different chains. The total CAB is available for spending on any chain, regardless of where the physical tokens are located.
It uses an Intent-based architecture (ERC-7683). When a user signs an intent, a decentralized network of solvers/fillers (powered by protocols like Across) immediately front the funds on the destination chain, eliminating the typical bridging latency.
Yes. This is a core use case. ZeroDev's Chain Abstraction can execute a transaction on Chain B (the destination chain) while settling the gas fees using a token balance (or the CAB balance) held on Chain A (the source chain).
ERC-7683 is the standardized framework for expressing cross-chain desired outcomes (Intents). ZeroDev integrates with Across Protocol's relayer network to serve as the highly liquid and competitive engine that resolves and fulfills the user's intent.
Currently, the CAB solution is built around major stablecoins and core assets. It supports USDC for aggregation and spending, with built-in functionality to swap CAB balances into USDT, DAI, WETH, and WBTC for use on the destination chain.
For optimal experience, the Kernel account must be set up with a Multi-chain Validator (which signs for all chains with one signature). Developers then use the SDK to wrap the client with createKernelCABClient and explicitly enable CAB for the desired tokens and networks.
The SDK provides a dedicated function, intentClient.getCAB(), which aggregates the token balances across all supported networks and presents them as a single unified balance. It can also return a detailed breakdown of where those funds reside.
Yes. ZeroDev's implementation is designed to be fully compatible with EIP-7702, allowing Smart EOAs to declare and fulfill cross-chain intents and benefit from the unified balance model.
For production-level use, Chain Abstraction is only available to projects on the Scale or Enterprise plans. While the core transaction cost is managed by the solver network (built into the execution rate), production access is gated by the higher ZeroDev tiers.
The SRA is a unique, multi-chain deposit address that enables users to deposit funds to a target L2/L3 from any CEX, fiat onramp, or blockchain. It eliminates the major hurdle of navigating bridges and managing chain-specific deposit addresses.
The SRA is technically an address that encodes a cross-chain intent. When funds arrive on the source chain, an automated process triggers the execution of that intent, which uses underlying bridge protocols to ensure the funds arrive on the developer's specified destination chain.
The user simply withdraws funds (e.g., USDC or ETH) from the CEX and pastes the SRA as the destination address. They can choose the cheapest withdrawal network (e.g., Base), and the SRA automatically routes the funds to their smart account on the desired final chain.
Yes. The SRA is highly programmable. Developers define an action to be triggered when the address receives a supported token. For example, a deposit of USDC could automatically execute a call to stake those funds or purchase an NFT on the destination chain.
The Smart Routing Address can be configured to accept a customizable list of srcTokens (Source Tokens). This allows it to receive assets like USDC, USDT, ETH, and WRAPPED_NATIVE on a wide range of source chains that ZeroDev supports.
The user is charged a Usage Fee, which is a small basis point percentage of the transfer value, on top of any underlying bridge fees. This fee is generally lower for larger transfers: for example, 0.20% for transfers below $\$500$ and 0.10% for those above.
To use the Smart Routing Address API in production, developers must subscribe to a Base Pricing tier, starting at $\$500$ per month or a discounted $\$4,000$ per year. This covers the infrastructure required to listen for and process the cross-chain intents.
Yes. By configuring the SRA with your ZeroDev Project ID, you can enable Fee Sponsorship. This ensures users receive the full deposited amount on the destination chain, while the developer's ZeroDev account is billed for the usage fees separately.
When creating an SRA, an owner address must be specified. If the SRA fails to execute the designated target action (e.g., due to an error or slippage beyond tolerance), the owner is authorized to manually recover the stuck funds, ensuring capital safety.
If the user sends a token that is not listed in the srcTokens during the SRA's creation, the transfer will not automatically trigger the defined cross-chain action. Those unsupported tokens will be held in the SRA and can only be accessed or moved via manual recovery by the specified owner.