Authentication
The Chain API uses API keys to authenticate requests. You can manage your API keys from the Chain Dashboard.
API Key Types
sk_sandbox_... Sandbox
Use sandbox keys for testing and development. No real money is moved.
sk_live_... Live
Live keys move real funds. Keep these secret and never expose in client-side code.
Making Authenticated Requests
Include your API key in the Authorization header as a Bearer token.
curl https://api.chain.com/v1/wallets \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json"
Required Headers
| Parameter | Type | Description |
|---|---|---|
Authorization required |
string |
Bearer token with your API key: Bearer sk_live_... |
Content-Type required |
string |
Must be application/json for request bodies. |
X-Business-Id |
string |
Required when operating in multi-business context. |
X-Idempotency-Key |
string |
Unique key to safely retry requests without side effects. |
API Key Scopes
API keys can be scoped to limit access to specific resources. When creating an API key, specify which scopes it should have.
| Scope | Description |
|---|---|
cards:read |
List and retrieve card details. |
cards:write |
Issue new cards. |
wallets:read |
List and retrieve wallet details. |
wallets:write |
Create new wallets. |
funding:read |
List funding transactions. |
funding:write |
Create funding requests. |
payouts:read |
List payout transactions. |
payouts:write |
Create new payouts. |
payees:read |
List registered payees. |
payees:write |
Register new payees. |
bank_accounts:read |
List linked bank accounts. |
bank_accounts:write |
Create Plaid link tokens to connect bank accounts. |
ledger:read |
Query ledger entries. |
webhooks:read |
List webhook endpoints. |
webhooks:write |
Create and delete webhook endpoints. |
Multi-Business Context
If your account manages multiple businesses, include the X-Business-Id header to scope requests.
curl https://api.chain.com/v1/wallets \
-H "Authorization: Bearer sk_live_..." \
-H "X-Business-Id: biz_abc123"
Rate Limits
Rate limits are applied per API key. If you exceed the limit, you'll receive a 429 Too Many Requests response.
| Plan | Rate Limit | Burst |
|---|---|---|
| Sandbox | 100 requests/min | 20 requests/sec |
| Production | 1,000 requests/min | 100 requests/sec |
| Enterprise | Custom | Custom |
Pax Dollar
USDP
Ripple USD
RLUSD
Dollar
USD
Tether
USDT
Pounds
GBP
Euro
Eur