Feature | EOA | Smart Account |
---|---|---|
Control | Private key generated and secured in CDP’s TEE | Controlled by smart contract code with an owner account (can be a CDP-managed EOA or bring your own) |
Creation | Generated new or imported from existing private key | Created with CREATE2 opcode, deployed on first operation |
Transaction type | Direct, signed blockchain transactions | Bundled transactions (user operations) |
Gas payment | Must pay gas fees directly | Gas sponsorship available via paymaster (subsidized on Base Sepolia) |
Batch operations | Single operation at a time | Multiple calls in a single user operation |
Owner requirements | None required | Requires an owner account (CDP EOA or external) |
CDP limitations | None | One smart account per owner, one owner per smart account |
Network support | All EVM networks supported by CDP | Base, Arbitrum, Optimism, Zora, Polygon, BNB, Avalanche and Ethereum Mainnet |
Concurrent operations | Can have multiple pending transactions | Support for concurrent userOperations |
viem compatibility | Works seamlessly with viem for all onchain actions | Smart account owners work seamlessly with viem for all onchain actions |
web3/eth-account compatibility | Works seamlessly with web3.py and eth-account libraries for all onchain actions | Smart account owners work seamlessly with web3.py and eth-account libraries for all onchain actions |
Faucet support | Base, Ethereum, Solana | Base, Ethereum, Solana |
sendTransaction()
for EOAs or sendUserOperation()
for Smart Accounts, CDP manages the entire signing and submission process - you don’t need to manually serialize, sign, or submit transactions.