{"contract":"abraxas_institutional_trust_verification","contract_version":"586.v1","published_at":"2026-10-27T17:11:23.332Z","capabilities":["receipt_signature_offline","issuer_key_registry_offline","policy_tenant_binding_offline","presentation_strict_binding_offline","portable_revocation_snapshot_offline","receipt_consumption_replay_guard","revocation_checkpoint_freshness","cross_application_policy_isolation"],"algorithms":{"decision_receipt_signature":"Ed25519","portable_revocation_snapshot":"Ed25519"},"trust_material":{"receipt_verification_keys_path":"/api/receipts/verification-keys","well_known_path":"/.well-known/abraxas-trust/v1","receipt_key_document_digest":"4b4dc882928403fc622299d932b80aa985aaa990d6474cfa76a044dddfbb5489","receipt_key_environment":"production","bootstrap_notice":"Integrators must pin receipt_key_document_digest (digest v2 binds key lifecycle metadata) or ship ABRAXAS_RECEIPT_VERIFICATION_REGISTRY offline. Network fetch is rejected without a mandatory digest pin. An HTTPS response alone is never a new issuer grant.","institution_env_keys":{"receipt_registry":"ABRAXAS_RECEIPT_VERIFICATION_REGISTRY","portable_revocation_issuer_trust":"ABRAXAS_PORTABLE_REVOCATION_ISSUER_TRUST","portable_revocation_bootstrap_trusts":"ABRAXAS_PORTABLE_REVOCATION_BOOTSTRAP_TRUSTS"}},"integration":{"module":"@/lib/institutionalVerification","example":"examples/institutional-verifier-backend/verify.ts","developer_ui":"/developers/institutional-integration"},"migration":{"previous_contract_versions":["584.v0","569.v0"],"breaking_change_policy":"contract_version bump when rejection reason codes or required trust inputs change"},"limitations":["Live claim-dependency refresh may require issuer feeds beyond receipt signature verification.","Portable revocation issuer trust must be configured by the institution — not inferred from Abraxas UI.","Cryptographic verification does not depend on Abraxas billing or Supabase.","Production signing activation and private key rotation remain operator-controlled."]}