Addresses
Addresses are represented by an address_id, which uniquely identifies a wallet or account for a
specific transfer_type.
An address_id can represent either an onchain or offchain destination (e.g. blockchain wallet, bank account, RTP endpoint), depending on the transfer_type.
The address_id is commonly used in the Brale API as the source or destination of a transfer.
Brale distinguishes between internal and external addresses using the type field:
type:internal- Anaddress_idassociated with wallets managed by Brale on behalf of you or your customers.type:external- Anaddress_idmanaged outside of Brale's infrastructure (e.g., user-owned wallet or external account).
Whether internal or external, all addresses possess:
name: A user-friendly label to identify the address.transfer_types: The supportedtransfer_typesof the address.
Custodial (Internal) Addresses
Brale provides custodial wallets that allow businesses to securely hold and transfer stablecoins on behalf of themselves or their customers. Custodial addresses support all supported blockchains.
When your customer's Account is onboarded, Brale automatically generates internal custodial addresses on all supported blockchains. You do not need to create them manually.
Non-Custodial (External) Addresses
Linking external addresses enable users to deposit stablecoins into or withdraw stablecoins from their custodial addresses as well as mint stablecoins into or redeem stablecoins from their custodial addresses.
POST/accounts/{account_id}/addresses/external
Non-Custodial (External) Address for Blockchain Supported Chains
The blockchains the address supports. See Supported Chains for the full list. Each address is associated with only one blockchain environment (e.g., Solana, EVM).
{
"name": "Non-Custodial (External) Wallet",
"transfer_types": ["Ethereum"],
"wallet_address": "0x123456789"
}
{
"id": "2VcUIIsgARwVbEGlIYbhg6fGG57"
}
Non-Custodial (External) Address for ACH Credits
These support the following transfer_types and enable USD to be sent to a destination in a transfer.
ach-creditach-credit-same-day
{
"name": "2nd/3rd Party Bank",
"transfer_types": ["ach-credit"],
"account_number": "123456789",
"routing_number": "987654321",
"account_type": "checking, savings",
"first_name": "Steve",
"last_name": "Brown",
"business_name": "Name of Business", // Optional
"email": "b@brale.xyz"
}
{
"id": "2VcUIIsgARwVbEGlIYbhg6fGG57"
}
Non-Custodial (External) Address for ACH Debits
These support the following transfer_types and enable USD to be pulled from a source in a transfer.
ach-debitach-debit-same-day
{
"name": "2nd/3rd Party Bank",
"transfer_types": ["ach-debit"],
"plaid_token": "98s83sjsd39sds"
}
{
"id": "2VcUIIsgARwVbEGlIYbhg6fGG57"
}
These addresses require a Plaid token to verify ownership.
Fetching Addresses
Retrieve all addresses associated with the authenticated Account.
This endpoint returns all addresses (whether internal or external) linked to the Account.
GET/accounts/{account_id}/addresses
{
"addresses": [
{
"id": "a1b2c3d4-5678-90ab-cdef-1234567890ab",
"status": "active",
"name": "Internal Custodial Wallet",
"type": "Internal",
"address": "73uyt9HkEqx9bThYXWaUBP67sWsiJEsyJ5rSCieDx5me",
"created": "2023-03-07T17:31:37.997502Z",
"transfer_types": ["solana", "solana_devnet"]
},
{
"id": "a1b2c3d4-5678-90ab-cdef-1234567890bc",
"status": "active",
"name": "External Non-Custodial Wallet",
"type": "External",
"address": "73uyt9HkEqx9bThYXWaUBP67sWsiJEsyJ5rSCieDx5me",
"created": "2023-03-07T17:31:37.997502Z",
"transfer_types": ["solana", "solana_devnet"]
},
{
"id": "b2c3d4e5-6789-01ab-cdef-2345678901ab",
"status": "active",
"name": "2nd/3rd Party ACH Credit",
"type": "External",
"routing_number": "987654321",
"created": "2023-03-07T17:31:37.997502Z",
"transfer_types": ["ach-credit", "ach-credit-same-day"]
},
{
"id": "b2c3d4e5-6789-01ab-cdef-2345678901bc",
"status": "active",
"name": "2nd/3rd Party ACH Debit",
"type": "External",
"routing_number": "987654321",
"created": "2023-03-07T17:31:37.997502Z",
"transfer_types": ["ach-debit", "ach-debit-same-day"]
}
]
}
Fetching an Internal Balance
You can query the stablecoin balance of an internal address.
GET/accounts/{account_id}/addresses/address_id/balance?transfer_type=chain&value_type=token
{
"address": {
"id": "2VcUIonJeVQzFoBuC7LdFT0dRe4",
"address": "0xcdEA458750b9A8D6C4Ba8B3D68CE98Ba2330352A"
},
"balance": {
"value": "45314.07",
"currency": "USD"
},
"value_type": "SBC",
"transfer_type": "base"
}
Filtering Addresses
You can narrow results on GET /accounts/{account_id}/addresses with optional query parameters.
Query Parameters
| Param | Type | Description |
|---|---|---|
address | string | Exact on-chain address (e.g., EVM, Solana). |
type | enum | Filter by address type: internal | external. |
transfer_type | enum (repeatable) | Filter by one or more transfer types (e.g., ethereum, base, solana, stellar). |
Examples
External addresses usable on Solana OR Base
GET/accounts/{account_id}/addresses?type=external&transfer_type=solana&transfer_type=base
Exact EVM address (case-insensitive)
GET/accounts/{account_id}/addresses?address=0xEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
Internal EVM addresses that support Ethereum
GET/accounts/{account_id}/addresses?type=internal&transfer_type=ethereum