# Get Accounts Address Identity

One wallet's on-chain identity or a decoded protocol-account label, as a single-element data array.

_Source: https://taostats.io/docs/api-reference/accounts/get-accounts-address-identity_

_Last reviewed: 2026-11-10_

```http
GET https://api.taostats.io/v1/accounts/{address}/identity
```

Requires an API key in the `Authorization` header.

One wallet's on-chain identity or a decoded protocol-account label, as a single-element `data` array. 404 when neither is known.

## Try it

Try this request in the browser on the HTML version of this page, or use the code samples below.

### Code samples

**cURL**

```bash
curl -H "Authorization: <YOUR_API_KEY>" \
  "https://api.taostats.io/v1/accounts/{address}/identity"
```

**JavaScript**

```js
const response = await fetch('https://api.taostats.io/v1/accounts/{address}/identity', {
  headers: {
    Authorization: '<YOUR_API_KEY>',
  },
});
const data = await response.json();
```

**Python**

```python
import requests

response = requests.get(
    "https://api.taostats.io/v1/accounts/{address}/identity",
    headers={"Authorization": "<YOUR_API_KEY>"},
)
data = response.json()
```

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `address` | path | `string` | Yes | SS58 or 0x-hex address |

## Responses

### `200` — The address's on-chain identity or decoded protocol-account label

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | `array` | Yes |  |
| `data[].additional` | `string, nullable` | Yes | The identity's free-form `additional` field. |
| `data[].address` | `string` | Yes | SS58 address for the identity or protocol account. |
| `data[].description` | `string, nullable` | Yes | Description. |
| `data[].discord` | `string, nullable` | Yes | Discord, as set on chain. |
| `data[].github_repo` | `string, nullable` | Yes | GitHub repository, as set on chain. |
| `data[].image` | `string, nullable` | Yes | Image URL, as set on chain. |
| `data[].is_protocol_account` | `boolean` | Yes | True when the address uses a known protocol pallet account id. Generated protocol labels are never presented as identities a wallet set on chain. |
| `data[].name` | `string, nullable` | Yes | On-chain display name or decoded protocol-account label. Null when neither the identity nor the address shape provides a known name. |
| `data[].url` | `string, nullable` | Yes | Website, as set on chain. |
| `data[].validator_hotkeys` | `array` | Yes | Hotkeys this address owns that are validators today (the owner `/v1/validators` shows), sorted. Empty when it owns none or is a generated protocol row. |
| `data[].validator_hotkeys[]` | `string` | Yes |  |

### `400` — Invalid address

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `message` | `string` | Yes | Plain-english message describing the failure from the caller's perspective. |
| `status_code` | `integer (int32)` | Yes | HTTP status code (mirrored in the response status line for convenience). |

### `404` — The address has neither an on-chain identity nor a known protocol-account label

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `message` | `string` | Yes | Plain-english message describing the failure from the caller's perspective. |
| `status_code` | `integer (int32)` | Yes | HTTP status code (mirrored in the response status line for convenience). |

### `500` — Internal server error

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `message` | `string` | Yes | Plain-english message describing the failure from the caller's perspective. |
| `status_code` | `integer (int32)` | Yes | HTTP status code (mirrored in the response status line for convenience). |

Every request needs an `Authorization` header holding your API key — see [Getting started with the Taostats API](https://taostats.io/docs/start-here/getting-started-with-taostats-api).
