Overview
The CDP SDK supports multiple account types across EVM and Solana blockchains. Each account type serves different use cases and offers distinct features for managing cryptographic keys and signing transactions.EVM Account Types
EVM Server Accounts
EVM Server Accounts are server-managed accounts where private keys are securely stored and managed by the Coinbase Developer Platform. These accounts are ideal for backend applications that need to programmatically sign transactions without managing private keys locally. Key Features:- Private keys managed by CDP
- Async signing methods for transactions and messages
- Built-in policy support for transaction controls
- Compatible with Web3.py and Viem
- Backend services and APIs
- Automated transaction workflows
- Applications requiring secure key management
- Multi-signature coordination
sign_message()- Sign EIP-191 messagessign_transaction()- Sign EIP-1559 transactionssign_typed_data()- Sign EIP-712 typed dataunsafe_sign_hash()- Sign arbitrary message hashes (use with caution)send_transaction()- Send transactions to the networktransfer()- Transfer tokens between accountsswap()- Execute token swapslist_token_balances()- Query token balances
EVM Smart Accounts
EVM Smart Accounts implement Account Abstraction (ERC-4337) to enable advanced features like user operations, batched transactions, gas sponsorship via paymasters, and programmable transaction logic. Key Features:- Account Abstraction (ERC-4337) support
- User operations instead of traditional transactions
- Paymaster support for gas sponsorship
- Batch transaction capabilities
- Programmable ownership logic
- Smart contract-based account logic
- Gasless transactions (sponsored by paymasters)
- Batch operations (multiple actions in one transaction)
- Advanced wallet features (social recovery, session keys)
- Consumer-facing applications with better UX
send_user_operation()- Send user operations (batched contract calls)wait_for_user_operation()- Wait for user operation confirmationget_user_operation()- Get user operation statustransfer()- Transfer tokens (with optional paymaster)swap()- Execute token swaps via user operationssign_typed_data()- Sign EIP-712 typed data for the smart accountuse_spend_permission()- Spend tokens via spend permissions
Key Differences
| Feature | Server Account | Smart Account |
|---|---|---|
| Account Type | Externally Owned Account (EOA) | Smart Contract Account |
| Transaction Type | Standard EIP-1559 transactions | User Operations (ERC-4337) |
| Gas Payment | Must pay gas in native token | Supports paymaster for gas sponsorship |
| Batch Operations | One operation per transaction | Multiple operations in one user operation |
| Owner Management | Single private key | Programmable ownership logic |
| Deployment | No deployment needed | Contract deployment on first use |
Solana Accounts
Solana Accounts are server-managed accounts for the Solana blockchain. Like EVM Server Accounts, private keys are managed by CDP. Key Features:- Ed25519 keypair managed by CDP
- Sign transactions and messages
- Transfer SOL and SPL tokens
- Request testnet tokens from faucet
- Solana-based applications
- SPL token operations
- Solana program interactions
- Cross-chain applications supporting both EVM and Solana
sign_transaction()- Sign Solana transactionssign_message()- Sign arbitrary messagestransfer()- Transfer SOL or SPL tokensrequest_faucet()- Request testnet tokens (devnet only)
Account Properties
Address
All accounts have an address property that uniquely identifies them on the blockchain:- EVM accounts use 0x-prefixed hexadecimal addresses (42 characters)
- Solana accounts use Base58-encoded addresses (32-44 characters)
Name
Accounts can have an optional human-readable name for easier identification in your application.Policies
Accounts can be associated with policies that control transaction behavior. Thepolicies property contains an array of policy IDs that apply to the account. See the Policies documentation for more details.
Policies are evaluated when transactions or signatures are requested. Both project-level and account-level policies apply to account operations.
Best Practices
Choose the right account type
Choose the right account type
- Use Server Accounts for backend services and simple transaction workflows
- Use Smart Accounts when you need gas sponsorship, batch operations, or advanced wallet features
- Use Solana Accounts for Solana blockchain interactions
Manage account lifecycle
Manage account lifecycle
- Store account addresses persistently in your database
- Use meaningful names to identify accounts
- Monitor account balances before sending transactions
- Clean up unused accounts to reduce clutter
Security considerations
Security considerations
- Server-managed accounts keep private keys secure on CDP infrastructure
- Apply policies to restrict unauthorized operations
- Use idempotency keys to prevent duplicate transactions
- Never expose API keys in client-side code
Next Steps
Networks
Learn about supported networks and capabilities
Transactions
Understand transaction lifecycle and management
EVM Accounts Guide
Step-by-step guide to working with EVM accounts
Smart Accounts Guide
Learn to build with Account Abstraction