Overview
Register an external address so you can use it as a transfer source or destination. External addresses can be onchain wallets, offchain bank accounts, or Canton parties. When you create an external address, Brale returns anaddress_id (KSUID) that binds the destination (wallet, party, or bank account) to its supported transfer_types. Use this address_id in all subsequent transfers.
If the same user has wallets on multiple non-EVM chains (e.g., Solana and Stellar), create separate external addresses and you’ll receive distinct address_id values for each.
Endpoint
POST /accounts/{account_id}/addresses/external
Onchain wallets
Each blockchain has its own address format. EVM-compatible chains share addresses, but non-EVM chains require separate entries. EVM (one address, multiple chains)Note: Canton transfers to external parties require acceptance within 72 hours or they expire. Transfers to parties also custodied by Brale are accepted automatically.
Offchain bank account (Direct bank entry)
Direct bank entry supportswire, ach_credit, same_day_ach_credit, and rtp_credit. bank_address and beneficiary_address are required only when transfer_types includes wire. Omit those fields for ACH/RTP-only addresses unless you have accurate values—do not enter placeholder or generic bank addresses.
Need
ach_debit? Use the Plaid-linked bank account flow. Direct bank entry supports wire, ach_credit, same_day_ach_credit, and rtp_credit, but not ach_debit.Example request
Example response
id as the address_id in transfers.
Notes
- External addresses have
type: externalwhen fetched viaGET /addresses. - You cannot query balances for external addresses—only internal (custodial) ones.
- Bank accounts can also be linked via Plaid instead of manual entry.
- You can add
transfer_typesto an existing address viaPATCH /accounts/{account_id}/addresses/{address_id}. - If you need to stop using a previously linked external bank address without deleting the record, use the PATCH address endpoint to archive it (
{ "status": "archived" }). You can later restore it by unarchiving ({ "status": "active" }). - See Transfer Types for all supported chains/rails.