Account
Accounts represent your end users. Creating an account provisions custodial wallet addresses across supported networks. All endpoints on this page require authentication.
Create Account
Provisions a new custodial account and its wallets.
POST /api/v1/account/create
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
subID | string | Yes | Your external identifier for this account (must be unique) |
poolType | string | No | dedicated or organization_owned. Required for hybrid apps |
{
"subID": "user-123",
"poolType": "dedicated"
}Response 200
{
"message": "success create wallet",
"data": {
"status": "pending",
"subId": "user-123",
"accountId": "acc_abc123"
}
}Response data fields
| Field | Type | Description |
|---|---|---|
status | string | Account lifecycle: pending (MPC provisioning), active_no_addresses (account exists, wallets not ready), active (wallets available), failed (provisioning failed) |
subId | string | Your subID from the request |
accountId | string | Internal account UUID (use in webhooks and support tickets) |
| Code | Meaning |
|---|---|
| 400 | Invalid JSON or invalid poolType |
| 403 | App is frozen |
| 409 | subID already exists for this app |
| 500 | Wallet creation failed |
Get Account
Returns the account and all its wallets.
GET /api/v1/account/:subID
Response 200
{
"message": "success get account",
"data": {
"id": "acc_abc123",
"subId": "user-123",
"status": "active",
"poolType": "dedicated",
"wallets": [
{
"walletId": "wal_1",
"network": "ethereum",
"address": "0xabc...",
"addressType": "evm"
}
]
}
}Response data fields
| Field | Type | Description |
|---|---|---|
id | string | Account UUID |
subId | string | Your external identifier |
status | string | Same values as Create Account |
poolType | string | dedicated or organization_owned — which wallet pool this account uses |
wallets[] | array | One entry per network wallet (may be empty while status is pending) |
wallets[].walletId | string | Wallet UUID (used in invoices, listen, per_wallet balance, withdraw) |
wallets[].network | string | Network code (e.g. ethereum, tron) |
wallets[].address | string | On-chain deposit address |
wallets[].addressType | string | Address encoding family (e.g. evm, tron) |
| Code | Meaning |
|---|---|
| 404 | Account not found |
Get Wallet by ID
GET /api/v1/account/:subID/wallet/:walletID
Response 200
{
"message": "success get wallet",
"data": {
"account": {
"id": "acc_abc123",
"subId": "user-123",
"status": "active",
"poolType": "dedicated"
},
"walletId": "wal_1",
"network": "ethereum",
"address": "0xabc...",
"addressType": "evm"
}
}Response data fields
| Field | Type | Description |
|---|---|---|
account | object | Summary of the parent account (id, subId, status, poolType) — same shape as Get Account without wallets |
walletId | string | Wallet UUID |
network | string | Network code |
address | string | On-chain address |
addressType | string | Address encoding family |
| Code | Meaning |
|---|---|
| 404 | Account or wallet not found |
Get Wallet by Network
Returns the account's wallet for a specific network.
GET /api/v1/account/:subID/network/:network
:network is a network code, e.g. ethereum. Response shape matches Get Wallet by ID.
| Code | Meaning |
|---|---|
| 404 | Account or wallet not found |