Wallets API
Register and manage crypto wallets for your business. Wallets are the core account primitive in Chain — they hold USDC balances, enable transfers, and power card spending. All wallet addresses are automatically screened for compliance.
Create a Wallet
Register a new wallet by providing an Ethereum address. The address is automatically screened against risk databases for compliance.
POST/v1/wallets
| Parameter | Type | Description |
|---|---|---|
labelrequired |
string |
Friendly name for the wallet (1–100 characters). |
addressrequired |
string |
Ethereum wallet address (0x...). |
blockchain |
string |
Blockchain network (default: "ethereum"). |
is_primary |
boolean |
Set as the primary wallet (default: false). |
metadata |
object |
Key-value metadata to attach. |
Scope required
This endpoint requires the wallets:write scope and a verified business.
Example request
curl -X POST https://api.chain.com/v1/wallets \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{\n "label": "Treasury",\n "address": "0x1a2b3c4d5e6f7890abcdef1234567890abcdef12",\n "blockchain": "ethereum",\n "is_primary": true,\n "metadata": { "department": "finance" }\n }'
Response
{
"id": "wal_xyz789",
"label": "Treasury",
"address": "0x1a2b3c4d5e6f7890abcdef1234567890abcdef12",
"blockchain": "ethereum",
"is_primary": true,
"status": "active",
"risk_score": 12,
"risk_category": "low",
"metadata": { "department": "finance" },
"created_at": "2026-01-15T10:00:00Z"
}
List Wallets
Retrieve all wallets for the current business.
GET/v1/wallets
| Parameter | Type | Description |
|---|---|---|
limit |
number |
Results per page (default 20, max 100). |
starting_after |
string |
Cursor for pagination — wallet ID to start after. |
status |
string |
Filter by status: "active", "frozen", "flagged". |
Response
{
"data": [
{
"id": "wal_xyz789",
"label": "Treasury",
"address": "0x1a2b3c4d5e6f...",
"blockchain": "ethereum",
"is_primary": true,
"status": "active",
"risk_score": 12,
"risk_category": "low",
"created_at": "2026-01-15T10:00:00Z"
},
{
"id": "wal_abc456",
"label": "Operations",
"address": "0x9876543210ab...",
"blockchain": "ethereum",
"is_primary": false,
"status": "active",
"risk_score": 5,
"risk_category": "low",
"created_at": "2026-01-05T00:00:00Z"
}
],
"has_more": false,
"next_cursor": null
}
Compliance Screening
Automatic screening
All wallet addresses are automatically screened against sanctions lists and risk databases when created. Wallets flagged during screening will be marked with a higher risk score and may require review.
| Risk Category | Score Range | Action |
|---|---|---|
low |
0–30 | Wallet is active and fully operational. |
medium |
31–60 | Wallet is active but may be subject to additional monitoring. |
high |
61–100 | Wallet may be frozen pending manual review. |
Wallet Management
You can manage wallet settings — such as updating the label or setting a wallet as primary — from the Chain Dashboard.
Set as primary
The primary wallet is used by default for funding and payouts when no wallet ID is specified.
Update label
Rename a wallet for better organization in your dashboard and reports.
Pax Dollar
USDP
Ripple USD
RLUSD
Dollar
USD
Tether
USDT
Pounds
GBP
Euro
Eur