> ## Documentation Index
> Fetch the complete documentation index at: https://apidocs.finrock.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Validate Address: POST /dac/v1/validate-address by Asset

> Check that a blockchain address is correctly formatted and valid for a given asset before initiating a withdrawal or transfer via Finrock.

The Validate Address endpoint checks whether a given blockchain address is correctly formatted and valid for a specified asset. Call this endpoint before creating a withdrawal transaction to catch typos or incompatible address formats early, avoiding failed transactions and potential loss of funds. For assets that use destination tags or memos (such as XRP and XLM), you can also pass the `address_tag` to validate that its data type is correct.

## Request

<ParamField header="x-api-key" type="string" required>
  Your Finrock API key.
</ParamField>

<ParamField header="Authorization" type="string" required>
  Your JWT bearer token in the format `Bearer {JWT}`.
</ParamField>

<ParamField body="asset" type="string" required>
  The asset identifier for which to validate the address (e.g. `USDT_ETH`, `BTC`, `XRP`). Use the `asset_name` value from the [Supported Assets](/api-reference/utilities/supported-assets) list.
</ParamField>

<ParamField body="address" type="string" required>
  The blockchain address to validate (e.g. `0xc35d4DCd5a1638b08075185069ee041a70f4c742` for EVM assets).
</ParamField>

<ParamField body="address_tag" type="string">
  Optional destination tag or memo to validate alongside the address. Particularly relevant for XRP (numeric tag) and XLM (text memo). The API verifies that the value conforms to the correct data type for the asset.
</ParamField>

## Example Request

```bash cURL theme={null}
curl --request POST \
     --url https://api.finrock.io/dac/v1/validate-address \
     --header 'Authorization: Bearer {JWT}' \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --header 'x-api-key: YOUR_API_KEY' \
     --data '{
       "asset": "USDT_ETH",
       "address": "0xc35d4DCd5a1638b08075185069ee041a70f4c742"
     }'
```

## Response

A successful validation returns HTTP `200` with a result indicating whether the address is valid.

<ResponseField name="valid" type="boolean">
  `true` if the address (and tag, if provided) passes all format and checksum checks for the given asset; `false` otherwise.
</ResponseField>

<ResponseField name="message" type="string">
  A human-readable description of the validation result. Contains the reason for failure when `valid` is `false`.
</ResponseField>

```json Sample 200 Response — Valid theme={null}
{
  "valid": true,
  "message": "Address is valid."
}
```

```json Sample 400 Response — Invalid theme={null}
{
  "valid": false,
  "message": "Address checksum failed for asset USDT_ETH."
}
```

<Warning>
  A `200` status code does not guarantee that the address is reachable or that the recipient will accept the asset. Always confirm the destination address with your counterparty before initiating large transfers.
</Warning>
