What happened
The destination address in your request did not match the expected format for the specified chain. This returns HTTP 400 with error codeINVALID_ADDRESS_FORMAT.
For EVM chains (Ethereum, Base, Polygon, Tempo, Arbitrum), Conduit accepts either all-lowercase hex addresses or addresses that pass EIP-55 checksum validation. A mixed-case address that fails the EIP-55 checksum is rejected. A Tron address must pass its base58check checksum, and a Stellar address must pass its CRC-16 checksum, so one mistyped character is rejected. A Solana address must decode to a 32-byte public key.
Common causes
- Mixed-case EVM address with wrong checksum — the address has a mix of upper and lower case letters but does not satisfy EIP-55; the checksum is defined by the hex value of the address, not arbitrary capitalization
- Copy-paste truncation — the address was truncated or has extra whitespace, making it the wrong length
- Mistyped Tron or Stellar address — one wrong character breaks the address checksum; copy the address again from its source wallet
- Wrong chain’s format — a Tron Base58 address was supplied for an Ethereum destination, or vice versa
Recovery
1. Normalize the EVM address The safest fix is to convert the address to all lowercase:Prevention
- Normalize EVM addresses at collection time — when accepting an EVM address from a user or an upstream system, normalize it to lowercase (or apply EIP-55 checksumming) before storing it and before sending it to Conduit. Never change the case of a Tron or Solana address: Base58 is case-sensitive. A case-changed Tron address fails its checksum, and a case-changed Solana address can still be valid but name a different account
- Validate before submitting — run EIP-55 checksum validation client-side on any mixed-case EVM address before it reaches the API; many web3 libraries expose this as
isAddressorgetAddress - Chain-specific rules — for Tron, validate Base58Check encoding; for Stellar, validate the StrKey checksum; for Solana, validate Base58 and check that it decodes to a 32-byte public key
Related endpoints
- POST /v2/payouts — submit a payout
- POST /v2/customers/:customerId/wallets/registered-addresses — register a destination address (also validates format)