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

# Live Attestation

> A per-tenant, externally-verifiable statement for the period: signed receipts produced for gateway-routed traffic, end-to-end chain verification, per-check coverage, enforcement actions, and packs in force — anchored by an RFC 6962 Merkle root over the receipts’ chain hashes (content-free). Scope is bounded to gateway-routed traffic; surface the `scope` and `disclaimer` verbatim. NOT a compliance certification.



## OpenAPI

````yaml GET /v1/compliance/attestation
openapi: 3.0.0
info:
  title: Wardin API
  description: AI governance & observability platform — external REST API
  version: '1.0'
  contact: {}
servers: []
security: []
tags: []
paths:
  /v1/compliance/attestation:
    get:
      tags:
        - compliance
      summary: Regulator-ready live attestation over the receipt chain
      description: >-
        A per-tenant, externally-verifiable statement for the period: signed
        receipts produced for gateway-routed traffic, end-to-end chain
        verification, per-check coverage, enforcement actions, and packs in
        force — anchored by an RFC 6962 Merkle root over the receipts’ chain
        hashes (content-free). Scope is bounded to gateway-routed traffic;
        surface the `scope` and `disclaimer` verbatim. NOT a compliance
        certification.
      operationId: ComplianceController_getAttestation
      parameters:
        - name: range
          required: false
          in: query
          description: Compact window, `Nd` or `Nh` (e.g. 30d, 24h).
          schema:
            example: 30d
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AttestationDto'
        '400':
          description: Malformed `range` (must match `Nd` or `Nh`)
      security:
        - bearer: []
components:
  schemas:
    AttestationDto:
      type: object
      properties:
        version:
          type: string
          example: '1'
        tenantId:
          type: string
          example: 018f1234-5678-7abc-def0-123456789abc
        generatedAt:
          type: string
          example: '2026-07-10T12:00:00.000Z'
        scope:
          type: string
          description: Exact, provable scope statement — surface verbatim.
        disclaimer:
          type: string
          description: Honesty posture — surface verbatim.
        period:
          $ref: '#/components/schemas/AttestationPeriodDto'
        totals:
          $ref: '#/components/schemas/AttestationTotalsDto'
        checkCoverage:
          type: array
          items:
            $ref: '#/components/schemas/AttestationCheckCoverageDto'
        packsInForce:
          type: array
          items:
            $ref: '#/components/schemas/AttestationPackDto'
        packVersionsObserved:
          example:
            - v1
          type: array
          items:
            type: string
        signingKeyIds:
          description: Signing key_ids that produced receipts in the period.
          type: array
          items:
            type: string
        merkle:
          $ref: '#/components/schemas/AttestationMerkleDto'
        anchor:
          $ref: '#/components/schemas/AttestationAnchorDto'
      required:
        - version
        - tenantId
        - generatedAt
        - scope
        - disclaimer
        - period
        - totals
        - checkCoverage
        - packsInForce
        - packVersionsObserved
        - signingKeyIds
        - merkle
        - anchor
    AttestationPeriodDto:
      type: object
      properties:
        label:
          type: string
          example: 30d
        days:
          type: number
          example: 30
        fromSeq:
          type: number
          nullable: true
          example: 1
        toSeq:
          type: number
          nullable: true
          example: 4210
        fromTs:
          type: string
          nullable: true
          example: '2026-06-10T00:00:00.000Z'
        toTs:
          type: string
          nullable: true
          example: '2026-07-10T00:00:00.000Z'
      required:
        - label
        - days
        - fromSeq
        - toSeq
        - fromTs
        - toTs
    AttestationTotalsDto:
      type: object
      properties:
        receipts:
          type: number
          example: 4210
          description: Signed receipts in the period.
        chainVerified:
          type: boolean
          example: true
          description: >-
            Whether the chain recomputed + verified end-to-end across the seq
            range with no gap or broken hash.
        chainVerifiedCount:
          type: number
          example: 4210
        signaturesVerified:
          type: boolean
          example: true
          description: >-
            Whether every receipt’s ED25519 signature verified against the
            signing-key registry.
        signaturesVerifiedCount:
          type: number
          example: 4210
        policyEvaluated:
          type: number
          example: 4210
          description: Receipts carrying ≥1 signed in-path check record.
        policyEvaluatedPct:
          type: number
          nullable: true
          example: 100
        enforcementActions:
          type: number
          example: 37
          description: Receipts where an in-path check blocked or redacted.
        upstreamFailures:
          type: number
          example: 5
          description: Receipts with a technical/upstream FAIL on a check.
      required:
        - receipts
        - chainVerified
        - chainVerifiedCount
        - signaturesVerified
        - signaturesVerifiedCount
        - policyEvaluated
        - policyEvaluatedPct
        - enforcementActions
        - upstreamFailures
    AttestationCheckCoverageDto:
      type: object
      properties:
        name:
          type: string
          example: GUARDRAIL
        receipts:
          type: number
          example: 4210
        pct:
          type: number
          nullable: true
          example: 100
      required:
        - name
        - receipts
        - pct
    AttestationPackDto:
      type: object
      properties:
        framework:
          type: string
          example: eu_ai_act
        version:
          type: string
          example: v1
        status:
          type: string
          example: draft
        packHash:
          type: string
          example: a1b2c3…
      required:
        - framework
        - version
        - status
        - packHash
    AttestationMerkleDto:
      type: object
      properties:
        algorithm:
          type: string
          example: RFC6962-SHA256
        leafCount:
          type: number
          example: 4210
        root:
          type: string
          example: 9f2c…
          description: Hex RFC 6962 Merkle root over the receipts’ chain hashes.
      required:
        - algorithm
        - leafCount
        - root
    AttestationAnchorDto:
      type: object
      properties:
        type:
          type: string
          example: merkle_root_v1
        root:
          type: string
          example: 9f2c…
        note:
          type: string
          description: How to verify the root; surface verbatim.
      required:
        - type
        - root
        - note
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: JWT
      type: http

````