Circle recommends using EOAs if you are building on Ethereum
Creating an SCA wallet might become expensive. Circle strongly recommends using EOAs if you are using Ethereum, and otherwise use SCAs on L2s.
The type of account you choose along with the wallet type determine the capabilities of the wallets you create. Circle supports three account types:
The following table shows the blockchain networks and their support for EOAs, SCAs, and MSCAs.
Blockchain Network | Externally Owned Account (EOA) | Smart Contract Account (SCA) | Modular Smart Contract Account (MSCA) |
---|---|---|---|
Wallet Type | MPC User-controlled and MPC Dev-controlled Wallets | MPC User-controlled and MPC Dev-controlled Wallets | Modular Wallet |
Avalanche Fuji Testnet | ✅ | ❌ | ❌ |
Avalanche Mainnet | ✅ | ❌ | ❌ |
Arbitrum Mainnet | ✅ | ✅ | ✅ |
Arbitrum Sepolia Testnet | ✅ | ✅ | ✅ |
Base Sepolia Testnet | ✅ | ✅ | ✅ |
Base Mainnet | ✅ | ✅ | ✅ |
Ethereum Sepolia Testnet | ✅ | ✅ | ❌ (coming soon) |
Ethereum Mainnet | ✅ | ✅ | ❌ (coming soon) |
Optimism Sepolia Testnet | ✅ | ✅ | ✅ |
Optimism Mainnet | ✅ | ✅ | ✅ |
Polygon Amoy Testnet | ✅ | ✅ | ✅ |
Polygon Mainnet | ✅ | ✅ | ✅ |
Unichain Mainnet | ✅ | ✅ | ✅ |
Unichain Sepolia Testnet | ✅ | ✅ | ✅ |
Solana | ✅ | ❌ | ❌ |
Solana Devnet | ✅ | ❌ | ❌ |
Near | ✅ Developer-controlled wallets only | ❌ | ❌ |
Other EVM chains | ✅ | ❌ | ❌ |
EOAs are Ethereum's most commonly used account type and Solana's only supported account type. They consist of a private and public key, with the public key representing the account address. EOAs require secure management of the private key and always require gas tokens to initiate transactions. While EOAs offer the flexibility to initiate any transaction, they have certain limitations, such as the need for a private key and the inability to control them programmatically onchain.
Benefits:
Limitations:
feePayer
, which means developers
can sponsor gas fees on behalf of the EOA from the users.SCAs are another type of Ethereum account that replaces an EOA with a smart contract. SCAs do not have private keys but are controlled by either an EOA, a passkey, or multiple keys, which interact with the deployed smart contract. SCAs allow developers to write customized logic within the smart contract, enabling advanced functionalities. SCAs have been in the Ethereum ecosystem for many years but recently gained popularity thanks to a new standard called ERC-4337 (account abstraction) - a trustless standard the community could build SCAs around. ERC-4337 also introduced the concept of paymaster, which enables simplified gas abstraction, enabling anyone to sponsor gas fees for the end user or let the end user pay for gas in any ERC-20 token.
Benefits:
Limitations:
SCA Version | Description | Available |
---|---|---|
circle_6900_singleowner_v3 | Smart Contract Account compliant with version 0.7 of ERC-6900 and version 0.6 of ERC-4337. The version has the following features: • Assign a single address as the owner • Batch multiple userOps in one transaction | Mainnet factory address: 0xf61023061ed45fa9eAC4D2670649cE1FD37ce536 Mainnet implementation address: 0xD206aC7fEf53d83ED4563E770b28Dba90D0D9eC8 Testnet factory address: 0xf61023061ed45fa9eAC4D2670649cE1FD37ce536 Testnet implementation address: 0xD206aC7fEf53d83ED4563E770b28Dba90D0D9eC8 |
MSCAs are a type of smart accounts that can be extended with different modules to enhance their functionality (similar to how one can install apps on iPhones and Android to give the smartphone more functionality). Circle's MSCA adheres to both ERC-4337 (account abstraction) and ERC-6900 - an ERC standard that Circle engineers are co-authoring with other ecosystem partners. We enable the creation of MSCAs by default in our Modular Wallet SDK.
Benefits:
Limitations:
The following are the versions of MSCAs supported by Wallets today. The exact version type is displayed in the successful response when creating a wallet.
MSCA Version | Description | Available |
---|---|---|
circle_6900_v1 | Modular Smart Contract Account compliant with version 0.7 of ERC-6900 and version 0.7 of ERC-4337. The version has the following features: • Assign any type of ownership (single owner, multiple owners, passkeys, multi-sig) • Batch multiple userOps in one transaction | Mainnet factory address: 0x0000000DF7E6c9Dc387cAFc5eCBfa6c3a6179AdD Mainnet implementation address: 0xA70F1296869DA9D7CB69578123F21888E6dB2B62 Testnet factory address: 0x0000000DF7E6c9Dc387cAFc5eCBfa6c3a6179AdD Testnet implementation address: 0xA70F1296869DA9D7CB69578123F21888E6dB2B62 |
For a complete list of supported modules and those planned for future support, visit the Modules page.
Based on our experience, SCAs generally provide a more straightforward user experience for most use cases. They allow developers to focus on creating innovative functionalities within the smart contract. However, the specific needs of each project should be carefully considered when choosing between EOA, SCA, or MSCA account types.
Circle recommends using EOAs if you are building on Ethereum
Creating an SCA wallet might become expensive. Circle strongly recommends using EOAs if you are using Ethereum, and otherwise use SCAs on L2s.
Externally Owned Account (EOA) | Smart Contract Account (SCA) | Modular Smart Contract Account (MSCA) | |
---|---|---|---|
Fees for account creation | No fees | Yes, creating a wallet incurs gas fees. Note: With our process of lazy deployment, you won't have to pay the gas fee at the time of wallet creation. Instead, the fee will be charged when you initiate your first outbound transaction. | Yes, creating a wallet incurs gas fees. Note: With our process of lazy deployment, you won't have to pay the gas fee at the time of wallet creation. Instead, the fee will be charged when you initiate your first outbound transaction. |
Gas abstraction | Yes, supported on Solana only | Yes, it is supported via Gas Station. | Yes, it is supported both via Circle’s Gas Station or you can plug in any third-party paymaster. |
Modules | No | No | Yes, modules that extend the functionality of the base wallet that include features such as passkey. Session Keys and Multisig are coming soon. |
When to use | If you are building on Ethereum (since gas costs on Ethereum can be expensive), or Solana Also for mass distribution from a single wallet use case, we recommend using EOAs for higher TPS. | If you want a web2-type user experience that makes blockchain invisible or want advanced control of your wallets e.g. embedded wallets, payments wallets, developer wallets | If you want to create advanced onchain wallets or want to customize the wallet for your use case; e.g. passkeys, multisig wallets for a vault, subscriptions for payment wallets, etc. |