History
This page explains how to search history events and provides a reference for all recorded actions.
History entries
The system records most events involving the following entities:
- Credentials
- Proofs
- Keys
- Identifiers
- Certificates
- DIDs
- Schemas
- Organizations
- Trust anchors
- Trust entities
- Wallet units
- Wallet unit attestations
- Wallet relying parties
- Backups (in the mobile SDK)
- OpenID providers in OpenID Bridge
- Users
- STS roles, organizations, IAM roles, and tokens
Each event is represented by a history entry containing:
- The entity UUID, name, and type
- The action or event that took place
- The source service that recorded the event
- Metadata about the event
Here's a history entry of a wallet unit revocation:
{
"id": "3cb2384a-1198-4af3-b4c2-0a32bbd4deef", // UUID of the event
"createdDate": "2025-11-25T14:31:00.066Z", // Datetime of the event
"source": "CORE", // Service that recorded the event
"action": "REVOKED", // What happened
"name": "PROCIVIS_ONE-WEB-1764081045", // Name of the entity
"entityType": "WALLET_UNIT", // The type of entity
"entityId": "401602e7-13ce-440b-a406-4d2d3dc91c34", // UUID of the entity
"organisation": { // The organization the entity belongs to
"name": "Admin",
"id": "6a9275e4-8a28-4170-b79c-ee48c749f4a9"
},
"target": "401602e7-13ce-440b-a406-4d2d3dc91c34" // Related entity (context-dependent)
}
The history entry does not express an entity's current state,
but rather a historical event, named in the action field.
Name
For most entities, the name field of the history entry is the entity
name. There are two exceptions:
- Credentials: for all history events of a credential, this field provides the name of the credential schema.
- Proofs: for all history events of a proof, this field provides the name of the proof schema.
Target
For proofs and credentials, the target field provides the identifier UUID
of the external participant in the interaction, if available:
| System is issuer | System is holder | System is verifier | |
|---|---|---|---|
| Credential | Holder identifier | Issuer identifier | |
| Proof | Verifier identifier | Holder identifier |
How to search history
The history endpoint provides several methods for searching and filtering history events. Each method can be used alone or in conjuction with other methods.
By time frame
You can retrieve history events within a particular time frame by setting a start time, a stop time, or both. Use:
createdDateAfterto set a start time.createdDateBeforeto set a stop time.
Here's an example curl query to retrieve all events since a datetime:
-X 'GET' \
'https://{{example.com}}/api/history/v1?page=0&pageSize=999&createdDateAfter=2025-03-05T14%3A19%3A57.000Z&organisationId={{UUID}}' \
Since there is no createdDateBefore, this call will retrieve all events
that have occurred from the specified time up to the time you query the
history endpoint.
By schema ID
You can retrieve history events associated with a particular schema. This includes not only schema events but also the events of credentials and proofs created using the schema. Use:
credentialSchemaIdfor credential schemas.proofSchemaIdfor proof schemas.
Here's an example curl query to retrieve events for a credential schema:
-X 'GET' \
'https://{{example.com}}/api/history/v1?page=0&pageSize=999&credentialSchemaId={{UUID}}&organisationId={{UUID}}' \
And here's the response:
{
"values": [
{
"id": "8dc94bdd-7b00-4f20-b154-1ae36b4e01a4",
"createdDate": "2025-03-06T08:25:52.620Z",
"action": "ACCEPTED",
"entityId": "936bac3e-f9ed-4ce6-bae0-a1a6ba115d7a",
"entityType": "CREDENTIAL",
"name": "Driver's License",
"organisationId": "2476ebaa-0108-413d-aa72-c2a6babd423f",
"target": "did:key:z6MkiggrQ3WBydSo1FnEw38GPQ1upwk8hW5tHGecaFDQEzdP"
},
{
"id": "88e00dd1-ef16-4925-a00e-d1a82267e1aa",
"createdDate": "2025-03-06T08:25:51.099Z",
"action": "OFFERED",
"entityId": "936bac3e-f9ed-4ce6-bae0-a1a6ba115d7a",
"entityType": "CREDENTIAL",
"name": "Driver's License",
"organisationId": "2476ebaa-0108-413d-aa72-c2a6babd423f"
},
{
"id": "db88c2c1-47b9-4320-bedb-cd8278baf17f",
"createdDate": "2025-03-06T08:25:44.768Z",
"action": "SHARED",
"entityId": "936bac3e-f9ed-4ce6-bae0-a1a6ba115d7a",
"entityType": "CREDENTIAL",
"name": "Driver's License",
"organisationId": "2476ebaa-0108-413d-aa72-c2a6babd423f"
},
{
"id": "bb5756f2-f87c-482d-a9b2-673712f12214",
"createdDate": "2025-03-06T08:25:44.753Z",
"action": "PENDING",
"entityId": "936bac3e-f9ed-4ce6-bae0-a1a6ba115d7a",
"entityType": "CREDENTIAL",
"name": "Driver's License",
"organisationId": "2476ebaa-0108-413d-aa72-c2a6babd423f"
},
{
"id": "ce5bc098-c43d-47f8-b73a-0c86c42ea5e0",
"createdDate": "2025-03-06T08:25:44.619Z",
"action": "CREATED",
"entityId": "936bac3e-f9ed-4ce6-bae0-a1a6ba115d7a",
"entityType": "CREDENTIAL",
"name": "Driver's License",
"organisationId": "2476ebaa-0108-413d-aa72-c2a6babd423f"
},
{
"id": "0e1917f1-a7db-441e-a3f4-537dcd4862a9",
"createdDate": "2025-03-06T08:25:29.826Z",
"action": "CREATED",
"entityId": "3f526536-a118-4247-a3c4-69f86c1052d3",
"entityType": "CREDENTIAL_SCHEMA",
"name": "Driver's License",
"organisationId": "2476ebaa-0108-413d-aa72-c2a6babd423f"
}
],
"totalPages": 1,
"totalItems": 6
}
In the response we see events for the schema and for any credential that was created using the schema.
By action
You can retrieve history events of particular event types. Use:
actions[]to specify which kind(s) of event.
Here's an example curl query to retrieve all suspension and revocation events:
-X 'GET' \
'https://{{example.com}}/api/history/v1?page=0&pageSize=999&actions%5B%5D=SUSPENDED&actions%5B%5D=REVOKED&organisationId={{UUID}}' \
The full reference for actions is found in: What's recorded.
By entity type
You can retrieve history events of particular entity types. Use:
entityTypes[]to specify which kind(s) of entity.
Here's an example curl query to retrieve all history events for credential schemas and proof schemas:
-X 'GET' \
'https://{{example.com}}/api/history/v1?page=0&pageSize=999&entityTypes%5B%5D=CREDENTIAL_SCHEMA&entityTypes%5B%5D=PROOF_SCHEMA&organisationId={{UUID}}' \
By entity ID
You can retrieve history entries for particular entities. Use:
entityIds[]to specify which entity or entities.
Here's an example curl query to retrieve all history events for two credentials:
-X 'GET' \
'https://{{example.com}}/api/history/v1?page=0&pageSize=999&entityIds%5B%5D={{UUID}}&entityIds%5B%5D={{UUID}}&organisationId={{UUID}}' \
By string
You can retrieve history entries containing a string. Use:
searchTextto set which string.searchTypeto set where to search.
If no searchType is set, the system searches all searchTypes:
claimNamesearches claim keys.claimValuesearches claim values.credentialSchemaNamesearches credential schema names.issuerDidsearches issuer DID values.issuerNamesearches issuer DID names.verifierDidsearches verifier DID values.verifierNamesearches verifier DID names.proofSchemaNamesearches proof schema names.
Here's an example curl query to retrieve all history events involving the
claim key Birthdate:
-X 'GET' \
'https://{{example.com}}/api/history/v1?page=0&pageSize=999&searchText=Birthdate&searchType=claimName&organisationId={{UUID}}' \
The response will include history entries for any credential or proof with
a claim that contains "Birthdate" in a claim name. Note that "Birthdate" or
any other searchText does not appear in the history entry itself.
By DID ID
You can retrieve history events associated with a DID. This includes not only the DID's own history events but also credential and proof events for that DID. Use:
didIdto set which DID.
Here's an example curl query to retrieve events for a DID, sorted by entitytype:
-X 'GET' \
'https://{{example.com}}/api/history/v1?page=0&pageSize=999&sort=entityType&didId={{UUID}}&organisationId={{UUID}}' \
This will return history events for the DID's creation and potentially deactivation, and the issuance and verification interactions made using the DID.
Of OpenID providers
If you're using OpenID Bridge, you can filter its history events using
sources[]=BRIDGE as described in By server component,
then narrow further with:
entityType=PROVIDERto get provider creation, deletion, and update events.entityType=INTERACTIONto get login attempt events.providerIdto return history events of a specific provider, including its interactions.
Here's an example curl query to retrieve provider history from OpenID Bridge:
-X 'GET' \
'https://{{example.com}}/api/history/v1?page=0&pageSize=999&sources%5B%5D=BRIDGE&entityTypes%5B%5D=PROVIDER&organisationId={{UUID}}' \
By server component
If you have multiple services storing history in Core, you can filter events by their source. Use:
sources[]to specify which service(s).
Available values:
CORE— CoreBFF— Enterprise BackendBRIDGE— OpenID BridgeSTS— STS serviceWRPR— Wallet-Relying Party Registry
Here's an example curl query to retrieve history events from Core and Enterprise Backend:
-X 'GET' \
'https://{{example.com}}/api/history/v1?page=0&pageSize=999&sources%5B%5D=CORE&sources%5B%5D=BFF&organisationId={{UUID}}' \
By user
You can retrieve history events triggered by specific users. Use:
users[]to specify which user(s) by their user identifier (thesubclaim from the STS token).
Here's an example curl query to retrieve history events for two users:
-X 'GET' \
'https://{{example.com}}/api/history/v1?page=0&pageSize=999&users%5B%5D={{user_identifier}}&users%5B%5D={{user_identifier}}&organisationId={{UUID}}' \
Combining search methods
You can combine search methods.
Here's an example curl query to retrieve all claims deletion events for proof requests made using a particular proof schema, within a specified 24-hour period:
-X 'GET' \
'https://{{example.com}}/api/history/v1?page=0&pageSize=999&entityId={{UUID}}&action=CLAIMS_REMOVED&createdDateAfter=2025-03-05T14%3A19%3A57.000Z&createdDateBefore=2025-03-06T14%3A19%3A57.000Z&didId={{UUID}}&organisationId={{UUID}}' \
In this case the entityId is used to specify the proof schema but, given
the desired search parameters, the proofSchemaId could have been used as
well.
What's recorded
The following tables provide a reference for historical actions, organized by the type of entity.
Credentials
| Action | Description |
|---|---|
ACCEPTED | The credential transitioned to ACCEPTED state. |
CREATED | The credential was created. |
DELETED | The credential was deleted. This action has no impact on credential state. |
ERROR | The credential transitioned to ERROR state. |
ISSUED | For holder, the credential was issued. |
OFFERED | The credential transitioned to OFFERED state. |
PENDING | The credential transitioned to PENDING state. |
REACTIVATED | For holder, the credential was reactivated from SUSPENDED state. |
REJECTED | The credential transitioned to REJECTED state. |
REVOKED | The credential transitioned to REVOKED state. |
SHARED | The credential transitioned to SHARED state. |
SUSPENDED | The credential transitioned to SUSPENDED state. |
Related guide: Manage credential status
Proofs
| Action | Description |
|---|---|
ACCEPTED | The proof transitioned to ACCEPTED state. |
CLAIMS_REMOVED | The claim data was deleted from the proof. |
CREATED | The proof request was created. |
ERRORED | The proof transitioned to ERROR state. |
PENDING | The proof transitioned to PENDING state. |
REJECTED | The proof transitioned to REJECTED state. |
REQUESTED | The proof transitioned to REQUESTED state. |
RETRACTED | The proof transitioned to RETRACTED state. |
SHARED | The proof transitioned to SHARED state. |
Related guide: Proof request states
Keys
| Action | Description |
|---|---|
CREATED | The key was created. |
CSR_GENERATED | A Certificate Signing Request was generated using this key. |
Identifiers
| Action | Description |
|---|---|
CREATED | The identifier was created. |
DEACTIVATED | The identifier was deactivated. |
Certificates
| Action | Description |
|---|---|
ACTIVATED | The certificate became valid. |
CREATED | The certificate was uploaded. |
EXPIRED | The certificate expired. |
REVOKED | The certificate was revoked. |
DIDs
| Action | Description |
|---|---|
CREATED | The DID was created. |
DEACTIVATED | The DID was deactivated. |
Schemas
| Action | Description |
|---|---|
CREATED | The schema was created. |
DELETED | The schema was deleted. |
SHARED | The schema was shared with a mobile device. |
Organizations
| Action | Description |
|---|---|
CREATED | The organization was created. |
UPDATED | The organization name was updated. |
Trust anchors
| Action | Description |
|---|---|
CREATED | The trust anchor was created. |
DELETED | The trust anchor was deleted. |
Trust entities
| Action | Description |
|---|---|
ACTIVATED | A removed or withdrawn entity was reactivated to a trust anchor. |
CREATED | The trust entity was published to a trust anchor. |
REMOVED | The trust entity was removed from a trust anchor by the anchor publisher. |
WITHDRAWN | The trust entity was withdrawn from a trust anchor by the entity. |
Wallet Units and Wallet Unit Attestations
- Wallet providers can track the history of wallet units.
- Wallets can track the history of registration the wallet provider.
Both have the same history entries.
| Action | Description |
|---|---|
ACTIVATED | The wallet unit was registered. |
CREATED | The wallet unit was created; only occurs on holder side. |
ERRORED | The integrity check failed. |
ISSUED | A new key attestation was sent. |
PENDING | The wallet unit has requested an attestation and the integrity check is pending. |
REVOKED | The attestation was revoked. |
UPDATED | A new app attestation was sent. |
Wallet-relying party
| Action | Description |
|---|---|
CREATED | The wallet-relying party was added to the registry. |
REVOKED | The wallet-relying party was revoked. |
SUSPENDED | The wallet-relying party was suspended. |
UPDATED | The wallet-relying party registration was updated. |
Backups
| Action | Description |
|---|---|
CREATED | A backup was created. |
RESTORED | The import was finalized and the database was overwritten with the content of the backup. |
OpenID providers in OpenID Bridge
| Action | Description |
|---|---|
CLIENT_SECRET_REGENERATED | The provider client secret was regenerated. |
CREATED | The provider was created. |
DELETED | The provider was deleted. |
ERRORED | The login attempt resulted in an error. |
SUCCEEDED | The login attempt was successful. |
UPDATED | The provider was updated (attributes not including client secret). |