Skip to main content
Use the Addresses API to fetch your custodial address_id values. These are required for transfers and balance checks.
1

Prerequisite: get your account_id and a bearer token

curl --request POST \
  --url https://auth.brale.xyz/oauth2/token \
  --header 'Authorization: Basic ${BASE_64_OF(client_id:client_secret)}' \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data grant_type=client_credentials
Use Authorization: Bearer ${ACCESS_TOKEN} for the next call.
2

List your addresses

Call GET /accounts/{account_id}/addresses to retrieve custodial and external addresses. Filter for type=internal to get custodial addresses managed by Brale.
curl --request GET \
  --url "https://api.brale.xyz/accounts/${ACCOUNT_ID}/addresses" \
  --header "Authorization: Bearer ${ACCESS_TOKEN}"
Example response (truncated):
{
  "addresses": [
    {
      "id": "2MhCCIHulVdXrHiEuQDJvnKbSkl",
      "name": "Custodial",
      "status": "active",
      "type": "internal",
      "address": "0xB2952EDba91FeAeaDBeCC4030203367A5B9b4701",
      "transfer_types": [
        "avalanche",
        "ethereum",
        "base",
        "polygon",
        "solana"
      ]
    }
    // ...
  ]
}
3

Pick the right address_id

  • Use id from an entry with type=internal for onchain/offchain transfers and balance checks.
  • Choose an address that supports the transfer_type you need (e.g., base, solana, ethereum).
  • Keep this address_id for subsequent calls (e.g., transfers, balances).
For balances, pair the address_id with both transfer_type and value_type in GET /accounts/{account_id}/addresses/{address_id}/balance.