Skip to main content

Account types

CDP Wallets support three account types:
  • EOA - Standard EVM account controlled by a private key. Supports all EVM networks. Best for simple transfers, signing, and broad network coverage.
  • Smart Account - Programmable EVM account (ERC-4337) that enables gas sponsorship, batched transactions, and spend permissions. Supported on Base, Ethereum, Arbitrum, Optimism, Polygon, BNB, Avalanche, and Zora. Requires an EOA as its owner.
  • Solana - Native Solana account. Supported on Mainnet and Devnet.

Create a user wallet

User wallets are owned by your end users. Users sign in with email, SMS, or social login and retain full custody of their assets. Your backend can also pre-generate wallets before a user signs in for a seamless first-time experience.
Configure createOnLogin to create an account automatically when the user signs in. Use "eoa" for a standard account or "smart" for a Smart Account with gas sponsorship and batching:
To create additional accounts after the user signs in:

Multiple accounts per user

Each end user can have up to 10 EVM EOAs, 10 Smart Accounts, and 10 Solana accounts. One account of each configured type is created automatically via createOnLogin. To add more:
React
Each Smart Account requires a unique EOA owner. You cannot create multiple Smart Accounts with the same EOA.

Create an API key wallet

API key wallets are owned and controlled by your server. Your backend creates and manages accounts using your CDP API key and Wallet Secret.

EVM EOA

EVM Smart Account

A Smart Account is an ERC-4337 account owned by an EOA. Each EOA can own one Smart Account. Use getOrCreateSmartAccount to also assign a name for easier retrieval later.

Solana

Named accounts

Assign a human-readable name for easier retrieval of wallets created with API keys. Names must be 2-36 alphanumeric characters or hyphens, and unique per account type within a project. getOrCreateAccount creates the account if it doesn’t exist, or returns the existing one:

Manage accounts

Get an account

For user authentication, accounts are available on the current user object. For API key authentication, retrieve accounts by address or name.

List accounts

Update an account

Token balances

Retrieve balances for native tokens (ETH, SOL) and ERC-20 / SPL tokens on any supported network. Balance queries are read-only and work for any public address, not just accounts you own.

EVM

Supported networks: ethereum, base, base-sepolia.

Solana

Supported networks: solana, solana-devnet.