{
  "schema_version": "1.3.0",
  "slug": "where-must-an-instance-refuse-a-federated-agent-identity-attestation-the-aaif-credential-chain-depth-versus-trust-domain-epoch-boundary",
  "title": "Where must an instance refuse a federated agent identity attestation: the AAIF credential-chain depth versus trust-domain epoch boundary",
  "date_of_record": "2026 November 12",
  "scope": "Applies to agents validating AAIF-issued verifiable credentials (VCs) presented by peer agents across organizational trust domains, where the credential chain includes one or more delegation links and the verifier caches trust-domain epoch state. Does not apply to single-domain deployments where issuer and verifier share one trust anchor, nor to credentials with no delegation (depth-0 leaf issuance).",
  "projections": {
    "unified_markdown_uri": "https://corpusfetch.com/c/where-must-an-instance-refuse-a-federated-agent-identity-attestation-the-aaif-credential-chain-depth-versus-trust-domain-epoch-boundary.md",
    "method_python_slice_uri": "https://corpusfetch.com/c/where-must-an-instance-refuse-a-federated-agent-identity-attestation-the-aaif-credential-chain-depth-versus-trust-domain-epoch-boundary.py",
    "remnant_warrant_slice_uri": "https://corpusfetch.com/c/where-must-an-instance-refuse-a-federated-agent-identity-attestation-the-aaif-credential-chain-depth-versus-trust-domain-epoch-boundary.warrant.json"
  },
  "token_profile": {
    "full_markdown_tokens": 1688,
    "python_slice_tokens": 207,
    "warrant_slice_tokens": 220
  },
  "remnant_summary": {
    "core_distinction": "The common mental model treats federated identity attestation as a signature-verification problem: if the VC's issuer chain terminates at a trust anchor the verifier recognizes, and the signatures check out, the agent identity is attested. This model is wrong at exactly one seam. An AAIF credential is valid only relative to a *trust-domain epoch* — the tuple...",
    "what_was_observed": "In a three-domain federation (issuer domain I, delegate domain D, verifier domain V), agent `agent:orders@D` presented a depth-2 AAIF chain: `I → D (delegation) → orders@D (leaf)`. All signatures valid. The `D` delegation VC had `issued_at` 40 seconds before presentation, well within the 300-second clock skew tolerance. V's revocation root for D was fetched 12 seconds prior and current. V nonetheless had to refuse. D...",
    "condition_of_validity": "A federated attestation from delegate domain D is honored by verifier V iff, at the instant of verification: 1. The chain terminates at a trust anchor in V's configured anchor set. 2. Every signature verifies against a key not revoked as of V's freshest revocation root for the relevant domain. 3. For every delegation link `(X → Y)` in the chain, the scope ca...",
    "decision_boundary": "The decision boundary is not \"valid vs. invalid credential.\" It is a three-way partition that must be resolved before any accept: - **Accept** when conditions 1–4 hold and the epoch cache is fresh. - **Refuse (terminal)** when the chain is structurally sound but condition 3 fails — a delegated scope exceeds the delegating domain's current epoch authority. Th...",
    "operational_effect": "Enforcing the epoch boundary correctly changes verifier behavior in three measurable ways. First, cross-domain delegation latency gains a fixed cost: one epoch-state fetch per delegating domain per evaluation window, amortized by cache but bounded by `max_epoch_staleness`. Second, delegating domains gain a *policy lever with immediate cross-domain effect* — ..."
  },
  "matched_failure_symptoms": [
    "DOMAIN:EPISTEMIC_PROVENANCE_AND_FEDERATION_ROUTING"
  ],
  "composition_edges": {
    "primary_domain": "epistemic_provenance_and_federation_routing",
    "upstream_precondition_residuals": [
      "https://corpusfetch.com/c/according-to-what-precedence-hierarchy-must-an-instance-resolve-contradictory-directives-across-system-developer-and-user-tiers.md",
      "https://corpusfetch.com/c/how-should-an-instance-decide-that-a-stored-conclusion-has-gone-stale-without-a-new-observation.md"
    ],
    "downstream_consequence_residuals": [
      "https://corpusfetch.com/c/by-what-checkpoint-and-compaction-boundaries-must-an-instance-externalize-working-state-to-prevent-context-window-drift-and-truncation-amnesia.md",
      "https://corpusfetch.com/c/across-what-additive-schema-and-unknown-field-preservation-boundaries-must-an-instance-evolve-wire-contracts-to-prevent-rolling-deploy-deserialization-crashes.md"
    ],
    "co_occurring_sibling_residuals": [
      "https://corpusfetch.com/c/how-can-an-instance-capture-implicit-user-preferences-without-storing-private-data.md",
      "https://corpusfetch.com/c/how-can-an-instance-compress-long-reasoning-traces-into-binding-conclusions.md"
    ]
  },
  "empirical_verification_warrant": {
    "status": "AST_AND_INVARIANT_VERIFIED",
    "syntax_valid": true,
    "code_sha256": "d52109e2c704793c7a42fe6bd376cba9c18b2b8dad74b37de3c7954338413ea4",
    "verified_classes": [
      "DelegationAuthorityEpochSkew",
      "EpochStateStale"
    ],
    "verified_functions": [
      "verify_federated_attestation"
    ],
    "verified_functions_count": 1,
    "defensive_guards_count": 2,
    "raised_exceptions": [
      "DelegationAuthorityEpochSkew",
      "EpochStateStale"
    ],
    "sample_fail_closed_invariants": [],
    "stdlib_dependencies": [],
    "observation_mode": "EMPIRICAL_BOUNDARY_CAPTURE",
    "zero_external_deps": true
  }
}
