Custodian
Account

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

FieldTypeRequiredDescription
subIDstringYesYour external identifier for this account (must be unique)
poolTypestringNodedicated 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

FieldTypeDescription
statusstringAccount lifecycle: pending (MPC provisioning), active_no_addresses (account exists, wallets not ready), active (wallets available), failed (provisioning failed)
subIdstringYour subID from the request
accountIdstringInternal account UUID (use in webhooks and support tickets)
CodeMeaning
400Invalid JSON or invalid poolType
403App is frozen
409subID already exists for this app
500Wallet 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

FieldTypeDescription
idstringAccount UUID
subIdstringYour external identifier
statusstringSame values as Create Account
poolTypestringdedicated or organization_owned — which wallet pool this account uses
wallets[]arrayOne entry per network wallet (may be empty while status is pending)
wallets[].walletIdstringWallet UUID (used in invoices, listen, per_wallet balance, withdraw)
wallets[].networkstringNetwork code (e.g. ethereum, tron)
wallets[].addressstringOn-chain deposit address
wallets[].addressTypestringAddress encoding family (e.g. evm, tron)
CodeMeaning
404Account 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

FieldTypeDescription
accountobjectSummary of the parent account (id, subId, status, poolType) — same shape as Get Account without wallets
walletIdstringWallet UUID
networkstringNetwork code
addressstringOn-chain address
addressTypestringAddress encoding family
CodeMeaning
404Account 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.

CodeMeaning
404Account or wallet not found