> ## Documentation Index
> Fetch the complete documentation index at: https://docs.humanos.tech/llms.txt
> Use this file to discover all available pages before exploring further.

# Audit Credential Event Chain

> Walk a v0.2 credential's VIAEvent chain and re-verify every event, returning a tamper-evidence report.
For each event it reports whether its signature verifies (against the signer’s own key) and whether its `previousEvent` chain link is intact; `ok` is true only when the whole chain walks and every event verifies.
Audit-side only — this does not affect verification. A legacy (pre-0.2) credential has no event chain and returns an empty list.



## OpenAPI

````yaml /versions/2026-09-01.yaml get /credential/{credentialId}/events
openapi: 3.1.0
info:
  title: Humanos API
  description: Humanos API
  version: '1.0'
  contact: {}
servers: []
security: []
tags:
  - name: humanosApp
    description: ''
paths:
  /credential/{credentialId}/events:
    get:
      tags:
        - Credentials
      summary: Audit Credential Event Chain
      description: >-
        Walk a v0.2 credential's VIAEvent chain and re-verify every event,
        returning a tamper-evidence report.

        For each event it reports whether its signature verifies (against the
        signer’s own key) and whether its `previousEvent` chain link is intact;
        `ok` is true only when the whole chain walks and every event verifies.

        Audit-side only — this does not affect verification. A legacy (pre-0.2)
        credential has no event chain and returns an empty list.
      operationId: credentials_auditEvents
      parameters:
        - name: credentialId
          required: true
          in: path
          description: URN of the credential whose event chain to audit
          schema:
            example: urn:via:credential:550e8400-e29b-41d4-a716-446655440000
            type: string
        - $ref: '#/components/parameters/ApiVersion'
      responses:
        '200':
          description: >-
            The credential’s event chain with per-event integrity + signature
            results.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChainAuditEntity'
        '400':
          description: The credentialId is not a valid credential URN.
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    example: 400
                  message:
                    type: string
                    example: Invalid urn
                  error:
                    type: string
                    example: Bad Request
        '404':
          description: Credential not found.
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: number
                    example: 404
                  message:
                    type: string
                    example: Credential not found
                  error:
                    type: string
                    example: Not Found
components:
  parameters:
    ApiVersion:
      name: API-Version
      in: header
      required: false
      schema:
        type: string
        pattern: ^\d{4}-\d{2}-\d{2}$
        example: '2026-09-01'
      description: >-
        Pin request, response, and webhook shapes to a specific dated API
        version (YYYY-MM-DD). Omit to use the version pinned to your API key
        (set when the key is created; new keys default to the latest version).
        New integrations should target the latest version.
  schemas:
    ChainAuditEntity:
      type: object
      properties:
        credentialUrn:
          type: string
          description: URN of the audited credential.
        ok:
          type: boolean
          description: >-
            The chain is intact AND every event verified (signature + link).
            False if anything failed.
        reason:
          type: string
          description: >-
            Present when not ok — the walkEventChain reason, or a signature/link
            failure marker.
        eventCount:
          type: number
          description: Number of events in the chain.
        events:
          description: Per-event audit, in chain order.
          type: array
          items:
            $ref: '#/components/schemas/EventAuditEntity'
      required:
        - credentialUrn
        - ok
        - eventCount
        - events
    EventAuditEntity:
      type: object
      properties:
        urn:
          type: string
          example: urn:via:event:550e8400-e29b-41d4-a716-446655440000
          description: The event's own URN.
        event:
          type: string
          enum:
            - ISSUE
            - ACCEPT
            - REJECT
            - STAMP
            - REVOKE
            - CANCEL
            - EXPIRE
            - EXHAUST
            - VP_CREATED
            - VERIFICATION_APPROVED
            - VERIFICATION_DENIED
            - AGENT_REGISTERED
            - AFFILIATION
            - REGULATORY
          description: The signed event kind.
        actor:
          type: string
          description: DID of the actor who asserted the event.
        issuer:
          type: string
          description: DID of the event issuer (the platform for operational events).
        validFrom:
          type: string
          example: '2026-05-02T10:15:30.000Z'
          description: Event instant (ISO 8601).
        contentBound:
          type: boolean
          description: >-
            True for content-bound events (ISSUE/ACCEPT/REJECT commit to the
            credential bytes); false for reference-bound operational events.
        signatureValid:
          type: boolean
          description: The event's signature verifies against its signer's key.
        chainLinkValid:
          type: boolean
          description: >-
            previousEvent == SRI(JCS(prior event)) — the tamper-evidence link;
            null-valued at the ISSUE root.
      required:
        - urn
        - event
        - actor
        - issuer
        - validFrom
        - contentBound
        - signatureValid
        - chainLinkValid

````