Wallet API
Manage wallets for on-chain transactions and payments. Supports both session-based wallets and Coinbase Developer Platform (CDP) wallets.Get wallet
Response (CDP configured)
Response (user wallet exists)
Response (no wallet)
Errors
| Code | Description |
|---|---|
| 401 | Unauthorized (no session and CDP not configured) |
Wallet actions
Request body
| Field | Type | Required | Description |
|---|---|---|---|
action | string | Yes | One of: create, get_seed, export_seed |
Action: create
Creates a new wallet for the authenticated user.
400 if a wallet already exists.
Action: get_seed
Returns wallet metadata. Private keys are stored encrypted server-side and are never exposed.
Action: export_seed
Seed export is disabled for security. Returns 403.
Errors
| Code | Description |
|---|---|
| 400 | Invalid action or wallet already exists |
| 401 | Unauthorized |
| 404 | No wallet found (for get_seed) |
Get CDP wallet address
Response (authenticated)
Response (not authenticated)
When the CDP wallet address cannot be retrieved, the response includesauthenticated: false and needsAuth: true. The remaining fields vary by failure reason:
error and setup fields instead of message:
Create CDP wallet
Request body
| Field | Type | Required | Description |
|---|---|---|---|
email | string | Yes | Email address for wallet registration |
Response
Errors
| Code | Description |
|---|---|
| 400 | Email required |
| 500 | CDP not configured (set CDP_PROJECT_ID in environment) |
CDP wallet status
Create CDP wallet client
Request body
| Field | Type | Required | Description |
|---|---|---|---|
privateKey | string | No | Private key (0x-prefixed). A new key is generated if omitted. |