Usage Event

The UsageEvent records every counted operation that is not an issuance or a verification: credentials received and presented by wallets, wallets created, keys created, DIDs resolved. It is written by the same call that counts the operation for usage and your license, so events and usage cannot disagree. API key requests are counted, but not written as events.

Example Usage Event

{
    "type": "id.walt.events.UsageEvent",
    "eventType": "UsageEvent",
    "_id": "6d0c1f8e-1c55-4a8b-9a43-0f7f6b8e2f10",
    "originator": "4b0e3c1a-8f0e-4c1d-9b7a-2f3e4d5c6b7a",
    "organization": "waltid",
    "target": "waltid.mycustomer.kms",
    "timestamp": 1791364823112,
    "action": {
      "type": "generate-key"
    },
    "status": {
      "type": "Success"
    },
    "callId": null,
    "error": null,
    "usageType": "KEY_OPERATION",
    "amount": 1,
    "details": {
      "keyType": "secp256r1",
      "keyId": "waltid.mycustomer.kms.2VhG..."
    }
  }

UsageEvent Attributes

  • type: Specifies the Kotlin class name of the event.
  • eventType: Indicates the type of event. In our case "UsageEvent".
  • _id: A unique identifier for the event, represented as a UUID.
  • originator: The account that did the operation, if known.
  • organization: The organization the operation was done in, e.g. "waltid".
  • target: The service (or an entry under it) the operation was done for, e.g. "waltid.mycustomer.kms".
  • timestamp: The time the operation was counted, as a Unix timestamp in milliseconds.
  • action: The API operation it was done in, e.g. "generate-key".
  • status: Always Success: failed operations are not counted.
  • usageType: What was counted, one of the types of What is counted, e.g. "KEY_OPERATION".
  • amount: How many units of usageType, e.g. 2 for two credentials received in one request.
  • details: What else is known about the operation: keyType and keyId for keys, didMethod for DIDs.
Last updated on November 3, 2026