Skip to content

Wallet addresses

When creating a checkout or offer, you provide a walletAddress where the purchased cryptocurrency will be sent.

Yes, walletAddress is required. Omitting it will result in error ER325. Some partners have a custom configuration where wallet address handling works differently. This is configured by BTC Direct and your account manager will inform you if this applies to your integration.

Each cryptocurrency has its own address format. The API validates the address against the selected baseCurrency. Invalid addresses will result in error ER014.

The validation uses mainnet addresses in all environments, including the sandbox. Do not use testnet addresses.

The list of supported currencies and their chains can be retrieved from the API. The chain field in the response determines the expected wallet address format.

Common address formats:

ChainFormatExample prefix
BitcoinP2PKH, P2SH, Bech32, Bech32m1, 3, bc1
Ethereum and EVM chainsEIP-55 checksummed, 0x-prefixed0x
SolanaBase58varies
XRP LedgerClassic addressr
Cosmos-based (ATOM, INJ, SEI)Bech32chain-specific prefix
StellarEd25519 public keyG
CardanoShelley/Byronaddr1
AlgorandBase32varies
TONRaw or user-friendlyvaries
PolkadotSS581
KaspaBech32-likekaspa:

Some cryptocurrencies require an additional walletAddressTag (destination tag or memo). Check the supportsTag field in the currency-pairs response to determine if a tag is needed. Currencies that support tags include XRP, XLM, ATOM, INJ, TON, HBAR, and CC.