> ## Documentation Index
> Fetch the complete documentation index at: https://v2.docs.conduit.financial/llms.txt
> Use this file to discover all available pages before exploring further.

# INVALID_ADDRESS_FORMAT error

> The destination blockchain address did not pass format validation for the specified chain

## What happened

The destination address in your request did not match the expected format for the specified chain. This returns HTTP 400 with error code `INVALID_ADDRESS_FORMAT`.

For EVM chains (Ethereum, Polygon, Base, etc.), 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. Tron and Solana use Base58 encoding and have their own format rules.

```json theme={null}
{
  "type": "INVALID_ADDRESS_FORMAT",
  "title": "Invalid Address Format",
  "status": 400,
  "detail": "The provided blockchain address does not match the expected format for ETHEREUM.",
  "resolution": "Use an all-lowercase EVM address or a correctly EIP-55-checksummed mixed-case address.",
  "docs": "/errors#invalid-address-format",
  "instance": "/v2/payouts",
  "correlationId": "corr_xyz789",
  "timestamp": "2026-01-15T09:30:00.000Z"
}
```

## 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
* **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:

```
0xABCdef... → 0xabcdef...
```

Alternatively, generate the correct EIP-55 checksum using your language's web3 library:

```js theme={null}
import { getAddress } from "viem";
const checksummed = getAddress("0xabcdef..."); // Returns correctly capitalized EIP-55 form
```

**2. Resubmit with the corrected address**

```bash theme={null}
curl -X POST https://api.conduit.financial/v2/payouts \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Idempotency-Key: idem_NEW_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "customerId": "cus_abc123",
    "assetAmount": {"code": "USDC", "amount": "50.000000", "chain": "ethereum"},
    "destination": {
      "recipient": {
        "rail": "crypto",
        "chain": "ethereum",
        "address": "0xabcdef1234567890abcdef1234567890abcdef12"
      }
    }
  }'
```

## Prevention

* **Normalize at collection time** -- when accepting an 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
* **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 `isAddress` or `getAddress`
* **Chain-specific rules** -- for Tron, validate Base58Check encoding; for Solana, validate Base58 and length (32 bytes / 44 chars)

## Related endpoints

* [POST /v2/payouts](/api-reference/payouts/create-a-payout) -- submit a payout
* [POST /v2/customers/:customerId/wallets/registered-addresses](/concepts/registered-addresses) -- register a destination address (also validates format)
