{
  "schema_version": "1.3.0",
  "slug": "where-must-an-instance-boundary-be-drawn-when-aaif-tokens-cross-a-federated-trust-domain-that-re-issues-rather-than-forwards",
  "title": "Where must an instance boundary be drawn when AAIF tokens cross a federated trust domain that re-issues rather than forwards",
  "date_of_record": "2026 November 9",
  "scope": "This record applies to agent-to-agent identity attestation where an AAIF (Agent Attestation and Identity Federation) token is presented by a relying agent to a verifying agent whose trust anchor is not the issuer of the presented token, and where the federation path includes at least one re-issuing intermediary. It does not apply to single-domain AAIF deployments, nor to token exchange protocols that preserve the original issuer signature end-to-end (e.g., pure JWT chaining with intact `iss`).",
  "projections": {
    "unified_markdown_uri": "https://corpusfetch.com/c/where-must-an-instance-boundary-be-drawn-when-aaif-tokens-cross-a-federated-trust-domain-that-re-issues-rather-than-forwards.md",
    "method_python_slice_uri": "https://corpusfetch.com/c/where-must-an-instance-boundary-be-drawn-when-aaif-tokens-cross-a-federated-trust-domain-that-re-issues-rather-than-forwards.py",
    "remnant_warrant_slice_uri": "https://corpusfetch.com/c/where-must-an-instance-boundary-be-drawn-when-aaif-tokens-cross-a-federated-trust-domain-that-re-issues-rather-than-forwards.warrant.json"
  },
  "token_profile": {
    "full_markdown_tokens": 1823,
    "python_slice_tokens": 364,
    "warrant_slice_tokens": 220
  },
  "remnant_summary": {
    "core_distinction": "The failure is not \"expired token\" or \"unknown issuer.\" It is the **instance-boundary ambiguity introduced by re-issuance**. When a federated intermediary (a trust broker, a domain gateway, or a peer agent acting as a delegation point) re-issues an AAIF token rather than forwarding the original, the resulting token carries two candidate identities: the *orig...",
    "what_was_observed": "In a three-domain federation (A → broker B → domain C), agents presented re-issued AAIF tokens to peers in C. Validation succeeded on every cryptographic check: the signature verified against B's published key, `aud` matched the target agent, `exp` was within skew. The tokens nonetheless asserted `sub` = the original agent in A. Two concrete consequences were observed: 1. **Identity laundering across a trust downgrad...",
    "condition_of_validity": "A re-issued AAIF token is a valid attestation of the *re-issuer's* assertion about the originator, and only under these conditions may it be treated as evidence about the originator: - The re-issuer is explicitly authorized by the originator's domain to make *identity assertions* (not merely to relay), and this authorization is itself attested in the token c...",
    "decision_boundary": "The boundary is drawn at the point where the verifier decides whether the token's `sub` is a *self-claim* or a *third-party claim*. The decision rule: - If `iss` == the domain that owns `sub`, the token is a self-claim; bind it to the presenting instance and validate instance liveness against the issuer's directory. - If `iss` != the domain that owns `sub`, ...",
    "operational_effect": "Enforcing this boundary changes verifier behavior in three ways. First, re-issued tokens from brokers that are not explicitly delegated for identity assertion are downgraded to \"assertion pending\" and trigger a direct resolution call to the subject's domain; this adds one round-trip on the cold path but eliminates the silent assurance downgrade. Second, inst..."
  },
  "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": "1705926b0d70cab71fe5277bbb4eee004874c07c8d01db9887c2e344194a4b5b",
    "verified_classes": [
      "FederatedAttestationError"
    ],
    "verified_functions": [
      "validate_federated_aaif",
      "_assurance_rank"
    ],
    "verified_functions_count": 2,
    "defensive_guards_count": 7,
    "raised_exceptions": [
      "FederatedAttestationError"
    ],
    "sample_fail_closed_invariants": [
      "token missing iss/sub; cannot establish instance boundary"
    ],
    "stdlib_dependencies": [],
    "observation_mode": "EMPIRICAL_BOUNDARY_CAPTURE",
    "zero_external_deps": true
  }
}
