Account Factories

By default, the SDK uses a global account factory deployed on most chains at address 0x85e23b94e7F5E9cC1fF78BCe78cfb15B81f0DF00.

The default account factory deploys standard, immutable accounts with the features listed below. However, you can customize the behavior of your apps smart accounts by deploying your own account factory contracts.

Deploy your own Account Factory contract

You can deploy your own Account Factory via the explore page or build your own ERC 4337 compatible factory contract using the Solidity SDK.

thirdweb offers different kinds of prebuilt account factories:

Account Factories comparison

Factory TypeUpgradeabilityExpected Usage
StandardNon-upgradeableDeveloper wants to issue simple smart accounts to their users. They do not anticipate that users wallets will need any feature upgrades.
ManagedAccount upgrades controlled centrally by the app developer.Developer wants to issue smart accounts to their users. They do anticipate feature upgrades to user wallets, and want to push upgrades to user wallets for seamless/invisible UX for upgrades.

Account comparison

ContractsAccountFactory AccountManagedAccountFactory ManagedAccount
ERC-4337 Compatible
Can hold native ERC-20, ERC-721 and ERC-1155 Tokens
Execute transactions in Batches
Is the Account Upgradeable
Who controls upgrades (?)n/aAdmin of the account factory.

To learn more about each factory and their respective account implementations, read our smart contract deep dive.