# Validate an Address

Whether an address is well formed for a chain, its checksum, and what sits there.

## Overview

- What each field means: [Address Checks](https://docs.aureahub.com/docs/guide-operations.md). An address that is not valid answers `200` with `valid: false`, `normalized: null`, `kind: null` and `reason` `format` or `checksum`.
- `chain` must be one of your tenant's (`404` `FEE_CHAIN_NOT_CONFIGURED`). For every role of a tenant; at most 60 calls a minute.

## Endpoint

### `POST /v1/addresses/validate`

Authentication: bearer token required.

Checks an address for one of the tenant's chains.

**Request body**

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `chain` | string | yes | The chain's slug |
| `isTestnet` | boolean | no | Default `false` |
| `address` | string | yes | The address, 1–128 characters |

**Responses**

`200` No checksum

```json
{
  "chain": "base",
  "chainId": 8453,
  "isTestnet": false,
  "family": "evm",
  "valid": true,
  "normalized": "0x8ba1f109551bD432803012645Ac136ddd64DBA72",
  "checksum": "absent",
  "kind": "eoa",
  "reason": null
}
```

`200` Bad checksum

```json
{
  "chain": "base",
  "chainId": 8453,
  "isTestnet": false,
  "family": "evm",
  "valid": false,
  "normalized": null,
  "checksum": "invalid",
  "kind": null,
  "reason": "checksum"
}
```

**Example request**

```bash
curl -X POST https://api.aureahub.com/v1/addresses/validate \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "chain": "base", "address": "0x8ba1f109551bd432803012645ac136ddd64dba72" }'
```

---

Web version: https://docs.aureahub.com/#address-validate
