Skip to main content


Fireblocks is a widely used key infrastructure provider. By combining ZeroDev with Fireblocks, you can create custodial AA wallets whose security is provided by Fireblocks, with powerful functionalities such as sponsoring gas, batching transactions, etc.


Follow Fireblock’s Ethereum guide to set up a FireblocksWeb3Provider:

import { FireblocksWeb3Provider, ChainId } from "@fireblocks/fireblocks-web3-provider";

const fireblocksProvider = new FireblocksWeb3Provider({
apiBaseUrl: ApiBaseUrl.Sandbox // If using a sandbox workspace
privateKey: process.env.FIREBLOCKS_API_PRIVATE_KEY_PATH,
apiKey: process.env.FIREBLOCKS_API_KEY,
vaultAccountIds: process.env.FIREBLOCKS_VAULT_ACCOUNT_IDS,
chainId: ChainId.GOERLI,

Make sure the chainId actually matches the chain of your ZeroDev project.

Then, create a ECDSAProvider as such:

import { ECDSAProvider, getRPCProviderOwner } from '@zerodev/sdk'

const zdSigner = await ECDSAProvider.init({
projectId: "<project id>",
owner: getRPCProviderOwner(fireblocksProvider),

This will create an AA wallet “owned” by your Fireblocks key.