# Identity registration status

Source: https://docs.settlemint.com/docs/api-reference/reference/identity-registration-status
Check whether a wallet holds a registered, active on-chain identity in a DALP system before you transact, through the Platform API registration status endpoint.



Identity registration status answers one question for a wallet: does it hold an
on-chain identity that is registered and active in the current system? Each
read returns a single status that maps to a clear next step, from no system at
all through to a fully active identity.

Use this endpoint as a pre-flight check before an operation that requires a
verified counterparty. A regulated issuer can confirm that a recipient is a
registered, active identity before a transfer leaves the queue, instead of
discovering the gap when the transaction reverts. The status also tells an
onboarding flow whether the wallet still needs an identity created or
registered. For the model behind on-chain identities and claims, see
[Identity and compliance](/docs/compliance-security/security/identity-compliance).

## Endpoint [#endpoint]

```
GET /api/v2/system/identity-registration-statuses
```

The endpoint uses the single-resource envelope: `data` holds the status object
and `links.self` echoes the request path. The active organisation and its
system context bound every read, as described in
[Organization and system scope](/docs/api-reference/reference/organization-system-scope).

## Query parameters [#query-parameters]

Both parameters are optional. With neither set, the endpoint checks the
authenticated caller's own wallet in their active organisation.

| Parameter        | Type             | Description                                                                                   |
| ---------------- | ---------------- | --------------------------------------------------------------------------------------------- |
| `wallet`         | Ethereum address | The wallet to check. Defaults to the authenticated caller's wallet.                           |
| `organizationId` | string           | The organisation whose system to check against. Defaults to the caller's active organisation. |

## Status values [#status-values]

The `status` field is the primary answer. It takes one of five values.

| Status           | Meaning                                                                                  |
| ---------------- | ---------------------------------------------------------------------------------------- |
| `NO_SYSTEM`      | The organisation has no deployed system to register an identity against.                 |
| `NO_IDENTITY`    | The wallet has no on-chain identity yet.                                                 |
| `NOT_REGISTERED` | The wallet has an identity, but it is not registered in this system.                     |
| `PENDING`        | The identity is registered and waiting to become active.                                 |
| `ACTIVE`         | The identity is registered and active. The wallet can hold and transfer eligible assets. |

## Response fields [#response-fields]

| Field             | Type                     | Description                                                                       |
| ----------------- | ------------------------ | --------------------------------------------------------------------------------- |
| `status`          | string                   | One of the five status values above.                                              |
| `identityAddress` | Ethereum address or null | The wallet's on-chain identity contract address. Present once an identity exists. |
| `systemAddress`   | Ethereum address or null | The organisation's system contract address. Present once a system is deployed.    |

`identityAddress` is absent for `NO_IDENTITY` and `NO_SYSTEM`. `systemAddress`
is absent only when the organisation has no system at all.

## Check a wallet [#check-a-wallet]

To check whether a specific wallet is an active identity before you transact:

```bash
curl --globoff "https://your-platform.example.com/api/v2/system/identity-registration-statuses?wallet=0x71C7656EC7ab88b098defB751B7401B5f6d8976F" \
  -H "X-Api-Key: YOUR_DALP_API_KEY"
```

An active identity returns:

```json
{
  "data": {
    "status": "ACTIVE",
    "identityAddress": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F",
    "systemAddress": "0x8ba1f109551bD432803012645Ac136ddd64DBA72"
  },
  "links": {
    "self": "/v2/system/identity-registration-statuses"
  }
}
```

Treat any status other than `ACTIVE` as not ready to transact. Route the
caller to the step the status implies: create an identity for `NO_IDENTITY`,
register it for `NOT_REGISTERED`, or wait and re-check for `PENDING`.

A wallet with no identity yet returns the status and the system address, with
no `identityAddress`:

```json
{
  "data": {
    "status": "NO_IDENTITY",
    "systemAddress": "0x8ba1f109551bD432803012645Ac136ddd64DBA72"
  },
  "links": {
    "self": "/v2/system/identity-registration-statuses"
  }
}
```

The endpoint always returns a status rather than an error when the wallet has
no identity or the organisation has no system. Read `status` first, then the
address fields that the status makes available.

## Authorisation [#authorisation]

To check a wallet other than your own, your caller must hold the identity
management role that governs registration reads. Checking your own wallet does
not need that role: the endpoint always lets a caller read the registration
status of their own wallet.

## Related [#related]

* [Identity and compliance](/docs/compliance-security/security/identity-compliance)
* [Participant compliance eligibility](/docs/api-reference/compliance/participant-compliance-eligibility)
* [Organization and system scope](/docs/api-reference/reference/organization-system-scope)
* [Request headers](/docs/api-reference/reference/request-headers)
