Identity claim events API reference
List the chronological claim lifecycle events for a registered identity, including added, changed, removed, and revoked claims, with filtering, sorting, and faceted counts through the DALP Platform API.
When an auditor reviews a registered identity, one question decides whether they can trust its current claims: how did those claims get here? The identity claim events endpoint answers it. It lists every claim lifecycle event recorded for one identity contract, in order, so a reviewer can trace each claim from the moment it was added through any change, removal, or revocation. Each event carries the claim topic, the claim id, the block and transaction that recorded it, and the addresses that emitted and sent it.
The endpoint is read-only. It reports the indexed history that the identity already produced on chain. It does not issue, change, or revoke claims. To issue a claim, use POST /api/v2/system/identity-claims. To revoke a claim, use POST /api/v2/system/identity-claim-revocations. For authentication and base URL setup, see Getting started.
Endpoint
| Endpoint | Use it for |
|---|---|
GET /api/v2/system/identities/{identityAddress}/claim-events | List the chronological claim lifecycle events for one identity. |
The endpoint uses the collection envelope: data holds the page of events, meta carries the total count and facet breakdowns, and links carries pagination links. The active organization and system context bound every read, as described in Organization and system scope.
The {identityAddress} path parameter is the on-chain identity contract address whose history you want. The identity must be registered in the active system's identity registry. A request for an identity the registry does not track returns a not-found error rather than an empty list, so an empty page always means the identity exists and has no matching events. To find the identity addresses registered in your system, list them with Registered identities, where the id field of each row is the identity contract address you pass here.
curl --globoff \
"https://your-platform.example.com/api/v2/system/identities/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/claim-events" \
-H "x-api-key: YOUR_API_KEY"{
"data": [
{
"id": "0xabc123...-0",
"eventName": "ClaimAdded",
"topic": "1",
"claimId": "0xbb...",
"blockNumber": "12345678",
"blockTimestamp": "2024-01-15T10:30:00.000Z",
"transactionHash": "0xabc123...",
"emitter": { "id": "0x71C7656EC7ab88b098defB751B7401B5f6d8976F" },
"sender": { "id": "0x2546BcD3c84621e976D8185a91A922aE77ECEc30" },
"values": [
{ "id": "val-0", "name": "topic", "value": "1" },
{ "id": "val-1", "name": "issuer", "value": "0x2546bcd3c84621e976d8185a91a922ae77ecec30" }
]
}
],
"meta": {
"total": 1,
"facets": {
"topic": [{ "value": "1", "count": 1 }],
"eventName": [{ "value": "ClaimAdded", "count": 1 }]
}
},
"links": {
"self": "/v2/system/identities/0x71c7656ec7ab88b098defb751b7401b5f6d8976f/claim-events?sort=-blockTimestamp&page[offset]=0&page[limit]=50",
"first": "/v2/system/identities/0x71c7656ec7ab88b098defb751b7401b5f6d8976f/claim-events?sort=-blockTimestamp&page[offset]=0&page[limit]=50",
"prev": null,
"next": null,
"last": "/v2/system/identities/0x71c7656ec7ab88b098defb751b7401b5f6d8976f/claim-events?sort=-blockTimestamp&page[offset]=0&page[limit]=50"
}
}Event types
Each event names the lifecycle change the identity recorded. The eventName field carries one of these values, and you can filter on it.
| Event | What it records |
|---|---|
ClaimAdded | A new claim was attached to the identity. |
ClaimChanged | An existing claim was updated in place, for example its data or signature. |
ClaimRemoved | A claim was removed from the identity. |
ClaimRevoked | A claim was revoked, so it no longer counts toward the identity's active set. |
Read the events as an ordered trail rather than a current state. A topic that shows a ClaimAdded followed later by a ClaimRevoked means the claim was issued and then revoked, which is exactly the kind of sequence an audit needs to see. For the current trust posture of an identity, including active, revoked, and untrusted claim totals, see Registered identities.
Event fields
Each row describes one claim lifecycle event.
| Field | Type | Description |
|---|---|---|
id | string | A stable event identifier built from the transaction hash and log index, such as 0xabc...-0. |
eventName | string | The lifecycle event: ClaimAdded, ClaimChanged, ClaimRemoved, or ClaimRevoked. |
topic | string | The claim topic id as a decimal string, identifying what the claim asserts. |
claimId | string | The stable claim identifier the event applies to. |
blockNumber | string | The block number where the event was mined, as a decimal string. |
blockTimestamp | string | The timestamp when the event was mined. |
transactionHash | string | The transaction hash that emitted the event. |
emitter | object | The contract or account that emitted the event, as { "id": "0x..." }. |
sender | object | The address that initiated the transaction, as { "id": "0x..." }. |
values | array | The decoded event arguments as { id, name, value } entries. See Decoded values. |
Decoded values
The values array holds the decoded arguments the event carried, as ordered name and value pairs. An entry appears only when the underlying event recorded that argument, so a given event may include some or all of the following names:
| Name | Meaning |
|---|---|
topic | The claim topic id the event applies to. |
scheme | The claim scheme that describes how the claim is signed and verified. |
issuer | The address of the issuer that produced the claim. |
signature | The issuer's signature over the claim data. |
data | The claim data payload. |
uri | A reference to off-chain claim data, when the claim records one. |
Use the issuer value to confirm which issuer stands behind a claim and the signature and data values to reconcile a claim against the issuer's records during an audit.
Query controls
| Parameter | Description |
|---|---|
filter[eventName] | Restrict the list to one event type: ClaimAdded, ClaimChanged, ClaimRemoved, or ClaimRevoked. |
filter[topic] | Restrict the list to one claim topic id. |
filter[claimId] | Restrict the list to events for one claim id. |
filter[issuerAddress] | Restrict the list to claims issued by one issuer address. |
filter[senderAddress] | Restrict the list to events sent by one address. |
filter[blockTimestamp] | Restrict the list to a time range, for an audit window. |
filter[blockNumber] | Restrict the list to a block-number range. |
sort | JSON:API sort. Sortable fields include blockTimestamp and blockNumber. Prefix with - for descending. Defaults to -blockTimestamp (newest first). |
page[offset], page[limit] | Page through the result. The default page is 50 rows, up to 200. |
The {identityAddress} in the path scopes every read to one identity, so it is not a filter. The meta.facets block reports counts for the topic and eventName values across the current filtered set, so an interface can show option badges without a second call. The counts reflect the active filters.
Who can read claim events
Reading the claim events list requires an authenticated session in the active system context. The same data backs the Console identity detail view, so an operator can confirm an identity's claim history there before calling the endpoint from an integration.
Related pages
Registered identities API
List the on-chain registered contract identities in your system's identity registry, with filtering, search, sorting, and claim counts, through the DALP Platform API.
Identity keys API
List the ERC-734 keys registered on an identity contract, with each key's purpose, key type, and the block and transaction that added it, through the DALP Platform API.