Skip to main content
An Attestation is a signed record of an authorization decision. It provides non-repudiable proof that a check occurred.

Schema

{
  "uni_version": "1.1.0",
  "attestation_id": "att_abc123",
  "request_id": "req_abc123",
  "passport_id": "uni_abc123",
  "agent_id": "agent:my-agent",
  "action": "mcp:search",
  "target": "mcp://tools.example.com",
  "decision": "allow",
  "reason_code": null,
  "created_at": "2026-01-25T12:00:01Z",
  "gate_id": "gate:prod-1",
  "public_key": "base64...",
  "signature": "base64..."
}

Fields

FieldTypeRequiredDescription
attestation_idstringUnique identifier
request_idstringOriginal request ID
passport_idstringPassport that was checked
agent_idstringAgent that made the request
actionstringAction that was authorized
decisionstring“allow” or “deny”
reason_codestringDenial reason (if denied)
created_atstringISO 8601 timestamp
gate_idstringWhich gate made the decision
signaturestringSignature over canonical JSON

Use Cases

  • Audit trails: Prove exactly what was authorized, when, by whom
  • Compliance: Show auditors signed evidence of access control
  • Debugging: Trace why an action was allowed or denied
  • Billing: Prove service was authorized before charging

SDK Usage

from uniplex import Attestation

attestation = Attestation.from_decision(request, decision, gate_id="my-gate")

# Verify later
assert attestation.verify_signature() == True

# Export for storage
json_str = attestation.to_json()

Creating from Gate Decision

from uniplex import Gate, GateRequest, Attestation, TrustProfile

gate = Gate(profile=TrustProfile.L1)
request = GateRequest.create(passport, action="mcp:search")
decision = gate.authorize(request)

# Create attestation from the decision
attestation = Attestation.from_decision(request, decision, gate_id="prod-gate-1")