<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.38 (Ruby 3.3.11) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-borthwick-msebenzi-environment-state-00" category="info" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="environment.*">Verifiable Intent — environment.* Constraint Family</title>

    <author initials="D." surname="Borthwick" fullname="Douglas Borthwick">
      <organization>InsumerAPI</organization>
      <address>
        <postal>
          <city>New Canaan</city>
          <region>CT</region>
          <country>USA</country>
        </postal>
        <email>douglas@insumermodel.com</email>
        <uri>https://insumermodel.com</uri>
      </address>
    </author>
    <author initials="M." surname="Msebenzi" fullname="Michael Msebenzi">
      <organization>Headless Oracle</organization>
      <address>
        <postal>
          <city>Midrand</city>
          <country>South Africa</country>
        </postal>
        <email>info@bytecraftresults.com</email>
        <uri>https://headlessoracle.com</uri>
      </address>
    </author>

    <date year="2026" month="May" day="11"/>

    <area>Security</area>
    <workgroup>Independent Submission</workgroup>
    <keyword>verifiable intent</keyword> <keyword>constraint family</keyword> <keyword>agent authorization</keyword> <keyword>environment state</keyword> <keyword>attestation</keyword>

    <abstract>


<?line 86?>

<t>The Verifiable Intent (VI) mandate format authorises autonomous agents to act on behalf of human principals through cryptographically signed constraint instances bound into Layer 2 mandates. VI's existing constraint families describe properties of the transaction itself — what is being purchased, by whom, for how much, against which credential. They do not describe properties of the environment in which the transaction is executed: whether the venue is open, whether the source of funds is funded, whether other relevant external conditions hold at the moment of execution.</t>

<t>This document specifies the environment.* constraint family for the Verifiable Intent mandate vocabulary. It defines the membership criterion under which a constraint type qualifies as a member of the family, the family-wide vocabulary every member uses, the composition discipline by which family members compose with each other and with constraints from other families, the register discipline under which family-wide and per-type prose is written, the family-wide security considerations, and the IANA registry mechanics under which new family members are registered. It does not define any individual constraint type. Two reference type specifications (environment.market_state and environment.wallet_state) are referenced informatively in Appendix A.</t>



    </abstract>



  </front>

  <middle>


<?line 92?>

<section anchor="introduction"><name>Introduction</name>

<t>Autonomous agents executing financial transactions on behalf of human principals require cryptographic awareness of external state at the moment of execution. This requirement exists independently of the constraints that authorize what the agent may do. An agent holding a valid mandate to purchase a specific asset for a specific amount must additionally know, at execution time, whether the venue at which it intends to execute is open and whether the source of funds it intends to draw from still satisfies the conditions under which the mandate was issued. Neither question is answered by the mandate itself. Both must be answered, with cryptographic evidence, before execution proceeds.</t>

<t>This document defines a constraint family — environment.* — for the Verifiable Intent (VI) mandate vocabulary that addresses this class of requirement. It does not specify any individual constraint type in detail. Instead, it defines the membership criterion under which a constraint type qualifies as a member of the environment.* family, the vocabulary by which family members compose with each other and with constraints from other families, and the discipline under which new family members may be added by future revisions or by independent implementations.</t>

<section anchor="motivation"><name>Motivation</name>

<t>The Verifiable Intent specification <xref target="VI-CONSTRAINTS"></xref> defines mandate constraints under a single transactional namespace, mandate.*, with two sub-namespaces: mandate.checkout.* declares what the agent may purchase (allowed merchants, line items), and mandate.payment.* declares how the agent may settle (allowed payees, amount ranges, budgets, recurrence, payment-mandate reference). These transactional constraint families are sufficient to authorize an agent's intended action and to bind that authorization cryptographically to a credential the agent presents at the moment of execution.</t>

<t>They are not sufficient to bind the agent's action to the state of the world at the moment of execution. An agent can present a valid mandate to purchase shares of a security listed on a venue that is currently halted; the mandate is cryptographically valid and the action is unauthorized in the real world. An agent can present a valid mandate to settle a payment in a stablecoin from a wallet that no longer holds sufficient balance; the mandate is cryptographically valid and the settlement will fail or, worse, succeed against an unintended source. These failure modes are not exotic edge cases. They are the autonomous-execution analog of well-documented races in financial markets and on-chain settlement, including market-execution events such as the 2010 Flash Crash and circuit-breaker session-boundary races, and on-chain TOCTOU exploits in the flash-loan-enabled class.</t>

<t>Existing transactional constraint families cannot close this gap because they describe properties of the transaction — what is being done, by whom, for how much, against what credential. The gap concerns properties of the environment in which the transaction is executed — whether the venue is open, whether the source is funded, and, by extension, whether other relevant conditions of the world hold at execution time. These properties are not under the control of any party to the transaction and cannot be asserted by the agent. They must be observed and signed by an entity outside the transaction whose identity and signing key are bound into the mandate at issuance time.</t>

<t>A constraint family is therefore the right primitive: each member type targets a specific environmental property, signed by an external attester, and verified at execution time before the transactional constraints are evaluated. This document defines the family. Specific member types are defined in their own specifications; reference implementations are cited in Appendix A.</t>

</section>
<section anchor="scope"><name>Scope</name>

<t>This document defines:</t>

<t>(1) the membership criterion under which a constraint type qualifies as a member of the environment.* family;</t>

<t>(2) the vocabulary used by family members, including required and optional fields whose semantics are family-wide;</t>

<t>(3) the composition discipline by which family members compose with each other and with constraints from other families;</t>

<t>(4) the register discipline (RFC 2119 keyword usage, normative versus informative material) under which family-wide and per-type prose is written.</t>

<t>This document does not define:</t>

<t>(1) any individual environment.* constraint type. Two reference type specifications (environment.market_state and environment.wallet_state) are documented in their own working-group submissions and are referenced informatively in Appendix A;</t>

<t>(2) any algorithm for canonicalising signed attestation payloads. Per-type canonicalisation is the responsibility of each type specification;</t>

<t>(3) any specific signing algorithm. Algorithm agility is family-wide; per-type MUST-implement declarations are made by each type specification;</t>

<t>(4) any specific attestation issuer, attestation endpoint, or operational detail of any reference implementation;</t>

<t>(5) any change to the transactional constraint families (mandate.*) defined in <xref target="VI-CONSTRAINTS"></xref>. Family composition is the only surface at which environment.* interacts with transactional constraints, and this composition is unidirectional: environment.* constraints gate execution; transactional constraints are evaluated after environment.* constraints have passed.</t>

<t>The deliberate narrowness of this scope reflects the family's design discipline: the document is the contract under which independent type authors and implementers can extend the family without coordinating with each other or with the authors of this document, provided they satisfy the membership criterion and respect the family-wide vocabulary and composition rules.</t>

</section>
<section anchor="relationship-to-verifiable-intent"><name>Relationship to Verifiable Intent</name>

<t>This document is a vocabulary specification for the Verifiable Intent mandate format. It does not modify the Verifiable Intent specification itself. It declares a constraint-family namespace (environment.*) and the rules under which constraint types within that namespace operate, in the same manner that any extension of an existing vocabulary declares its own namespace and rules without modifying the host vocabulary's grammar.</t>

<t>An open mandate, as used in this document and in <xref target="VI-CREDENTIAL-FORMAT"></xref>, Section 4.5, is a Layer 2 mandate carrying constraints rather than final values, identified by a <spanx style="verb">vct</spanx> value with the <spanx style="verb">.open</spanx> suffix. environment.* constraints appear only in open mandates.</t>

<t>VI mandate validators that do not recognize the environment.* namespace MUST reject open mandates containing environment.* constraints, per <xref target="VI-CONSTRAINTS"></xref>, Section 5.4: open mandates with unknown constraint types fail closed regardless of strictness mode, because an unevaluable constraint in an open mandate leaves agent authority unbounded. Because environment.* constraints appear only in open mandates, the rejection rule applies uniformly to every mandate in which environment.* constraints can appear.</t>

<t>Validators implementing this document MUST evaluate environment.* constraints in the order specified in Section 5 and MUST treat any failure as terminal for the mandate.</t>

</section>
<section anchor="document-organisation"><name>Document Organisation</name>

<t>Section 2 establishes terminology and references. Section 3 defines the constraint family and its membership criterion. Section 4 specifies family-wide vocabulary including the fields that appear, with identical semantics, on every member type, the field-scope taxonomy under which fields are classified, and the algorithm-agility framework under which signing-algorithm choice is made. Section 5 specifies family composition: conjunction semantics across family members, the L3 execution gate and its completeness rule, per-member diagnostic output, and the membership-criterion rationale these rules collectively encode. Section 6 specifies register discipline. Section 7 covers Security Considerations specific to family-wide concerns. Section 8 covers IANA Considerations including the proposed environment.* namespace registry. Appendix A documents the relationship between this specification and the two existing reference type specifications. Appendix B is reserved for future family-charter material per Section 6.7 Q3.</t>

</section>
</section>
<section anchor="terminology-and-references"><name>Terminology and References</name>

<section anchor="conventions-and-definitions"><name>Conventions and Definitions</name>

<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 <xref target="RFC2119" /> <xref target="RFC8174" /> when, and only when, they appear in all capitals, as shown here.</t>

<t>This document distinguishes between normative register and descriptive register, per the discipline catalogued at Section 6. Normative register uses RFC 2119 keywords in all capitals to bind implementers to specific behaviour. Descriptive register uses lowercase synonyms (or explicit non-keyword phrasing) when the prose explains intent, rationale, or context rather than imposing a requirement. The distinction is not stylistic; it determines what is conformance-checkable.</t>

</section>
<section anchor="terms"><name>Terms</name>

<t>The following terms are defined for use in this document and in any specification of an environment.* constraint type that claims membership in the family.</t>

<t>Constraint family. A set of constraint types that share a common membership criterion, a common composition discipline, and a common family-wide vocabulary. The environment.* family is the family this document defines. The mandate.checkout.* and mandate.payment.* groupings within <xref target="VI-CONSTRAINTS"></xref> are not constraint families in the sense of this document; they are sub-namespaces of the transactional constraint vocabulary that share a prefix but do not share a membership criterion.</t>

<t>Membership criterion. A property that a constraint type MUST satisfy to qualify as a member of a constraint family. Membership in the environment.* family requires that the constraint type's failure mode be gating: a failure of the constraint MUST terminate execution rather than degrade gracefully. Section 3 specifies the criterion in normative detail.</t>

<t>Transactional constraint. A constraint that describes a property of the transaction itself — what is being purchased, by whom, for how much, against which credential. The constraint families mandate.checkout.* and mandate.payment.* defined in <xref target="VI-CONSTRAINTS"></xref> are transactional. Transactional constraints are evaluated against fulfillment values derived from Layer 3 mandates. They do not require any external state observation at evaluation time.</t>

<t>Environmental constraint. A constraint that describes a property of the environment in which the transaction is executed — whether a venue is open, whether a wallet is funded, whether other relevant external conditions hold. Environmental constraints are evaluated against external state observations attested by an entity outside the transaction. The environment.* family is the set of environmental constraint types that satisfy the membership criterion of this document.</t>

<t>Attestation. A signed statement, issued by an entity outside the transaction, asserting that a specified environmental property held at a specified time. Attestations carry a binding to a subject (whose property is described), a binding to an issuer (whose key signed the statement), a freshness window (within which the attestation is acceptable), and an evaluation result (the property held or did not hold). The wire format and signing algorithm of an attestation are per-type concerns, specified by each constraint type. The role of the attestation in the verification path is family-wide and is specified by this document.</t>

<t>Issuer. The entity that produces an attestation by observing external state and signing the result. Each constraint type specification names the trust-root mechanism by which a verifier discovers an issuer's signing key (for example, <xref target="RFC7517"></xref> JWKS or <xref target="RFC8615"></xref> well-known key registry). The mandate-level binding to a specific issuer's signing key is enforced by the constraint instance, not by the family.</t>

<t>Mandate issuer. The party that constructs the Layer 2 mandate carrying environment.* constraints. The mandate issuer selects the constraint instances, populates per-instance fields (including the trust-root binding to a specific attestation issuer), and signs the mandate per <xref target="VI-CREDENTIAL-FORMAT"></xref>. The mandate issuer and the attestation issuer are distinct roles; an entity MAY occupy both roles in a deployment but the security analysis treats them separately.</t>

<t>Verifier. The party that evaluates an environment.* constraint at the moment of execution. A verifier fetches a fresh attestation per the constraint's binding, verifies the attestation signature against the issuer's published key, applies the family-wide vocabulary checks specified in Section 4 (including freshness against the constraint's max_attestation_age), and applies the per-type checks specified by the constraint type's specification. A verifier MUST NOT accept an agent's claim of constraint satisfaction in place of independent verification.</t>

<t>Agent. The autonomous principal that constructs Layer 3 mandates under the authority delegated by a Layer 2 mandate. In the family's evaluation path, an agent is a pre-Layer-3 verifier: it MUST itself satisfy every environment.* constraint before constructing Layer 3, with the agent-side discipline specified in Section 5.</t>

<t>Type specification author. The party that drafts and submits a constraint type specification proposing membership in the environment.* family. The type specification author is bound by the requirements of Section 3.4 and Section 4.2.2 governing how new types are specified.</t>

<t>Layer 2, Layer 3. Credential layers as defined in <xref target="VI-CREDENTIAL-FORMAT"></xref>. Layer 2 carries the user-signed mandate that includes constraint instances; Layer 3 carries the agent-signed fulfillment that the verifier accepts or rejects against the constraint instances. The terms are used in this document only to identify the points in the credential lifecycle at which family rules apply; this document does not modify the layer definitions.</t>

<t>Open mandate. A Layer 2 mandate carrying constraints rather than final values, identified by a <spanx style="verb">vct</spanx> value with the <spanx style="verb">.open</spanx> suffix per <xref target="VI-CREDENTIAL-FORMAT"></xref>, Section 4.5. environment.* constraints appear only in open mandates. The unknown-constraint rejection rule of <xref target="VI-CONSTRAINTS"></xref>, Section 5.4 applies uniformly to every mandate in which environment.* constraints can appear.</t>

<t>Family-wide field. A field whose semantics are identical across every constraint type in the family, independent of trust-root or evaluation mechanism. Family-wide fields are specified in this document.</t>

<t>Per-type field. A field whose semantics depend on the constraint type's trust-root mechanism or evaluation mechanism. Per-type fields are specified by each constraint type's specification under the field-scope taxonomy of Section 4.</t>

</section>
<section anchor="references"><name>References</name>

<t>Citations in this section are short forms; the canonical reference list is in Section 9.</t>

<section anchor="normative-references"><name>Normative References</name>

<t><xref target="RFC2119"></xref>, <xref target="RFC8174"></xref>, <xref target="RFC8126"></xref>, <xref target="VI-CONSTRAINTS"></xref>, <xref target="VI-CREDENTIAL-FORMAT"></xref>.</t>

</section>
<section anchor="informative-references"><name>Informative References</name>

<t><xref target="RFC1918"></xref>, <xref target="RFC7517"></xref>, <xref target="RFC7646"></xref>, <xref target="RFC7800"></xref>, <xref target="RFC8615"></xref>, <xref target="RFC8725"></xref>, <xref target="RFC8914"></xref>, <xref target="RFC9421"></xref>, <xref target="RFC6982"></xref>, <xref target="RFC-SD-JWT"></xref>, <xref target="ENVIRONMENT-MARKET-STATE"></xref>, <xref target="ENVIRONMENT-WALLET-STATE"></xref>.</t>

</section>
</section>
</section>
<section anchor="the-environment-constraint-family"><name>The environment.* Constraint Family</name>

<t>This section defines the environment.* constraint family. It specifies the membership criterion under which a constraint type qualifies as a member of the family, the namespace under which family members are named, and the discipline under which new family members may be added.</t>

<section anchor="family-definition"><name>Family Definition</name>

<t>The environment.* constraint family is the set of Verifiable Intent constraint types that:</t>

<t>(1) declare a property of the environment in which a transaction is executed, rather than a property of the transaction itself;</t>

<t>(2) are evaluated against an attestation produced by an entity outside the transaction, rather than against fulfillment values derived from a Layer 3 mandate;</t>

<t>(3) gate execution unconditionally on the result of that attestation; and</t>

<t>(4) are named under the environment.* namespace.</t>

<t>Constraint types satisfying these four properties MAY claim membership in the family by publishing a constraint type specification that conforms to this document. Constraint types that satisfy fewer than all four properties are not members of the family, regardless of how their type identifier is named.</t>

</section>
<section anchor="membership-criterion"><name>Membership Criterion</name>

<t>The membership criterion of the environment.* family is that the constraint type's failure mode MUST be gating. A constraint type's failure mode is gating if and only if every defined failure path of the type's verification algorithm produces termination of execution rather than partial fulfillment, retry, or graceful degradation.</t>

<t>A constraint type whose failure mode is OR-tolerable — that is, a type whose failure can be survived by composition with other passing constraints, or whose failure leads to a permitted reduced-functionality execution path — is by definition outside this family. The reasoning is structural: a constraint that does not gate execution is not load-bearing for execution safety, and a constraint that is not load-bearing for execution safety does not require the family-wide vocabulary, composition discipline, or trust-root machinery this document specifies. Such a constraint may belong to some other family, or to no family at all, but it does not belong here.</t>

<t>The membership criterion is not a per-type design choice that the type specification author makes when proposing a new type. It is a property the type specification author MUST establish before proposing the type for the family. A proposed type whose failure mode is not demonstrably gating MUST be rejected from the family on this ground alone.</t>

</section>
<section anchor="namespace"><name>Namespace</name>

<t>Family members are named under the environment.* namespace, using the dot-notation pattern of <xref target="VI-CONSTRAINTS"></xref>. The first component of the type identifier is the literal string environment; the second component identifies the specific environmental property the type addresses; further components MAY be used by future revisions for sub-classification.</t>

<t>The environment.* namespace is registered for this purpose by Section 8 (IANA Considerations). Names within the namespace SHOULD be chosen to identify the environmental property addressed (for example, market_state, wallet_state, regulatory_status) rather than the implementation, the issuer, or the wire format.</t>

<t>IANA MUST NOT register a type identifier within the environment.* namespace that does not satisfy the membership criterion of Section 3.2. The namespace and the criterion are coupled by design: a registered type within environment.* is, by registration, a member of the family in good standing, and a verifier encountering an environment.* identifier MAY rely on the family's discipline holding for that type. Permitting the namespace to contain types that do not satisfy the criterion would defeat this property and is non-conforming.</t>

</section>
<section anchor="adding-new-family-members"><name>Adding New Family Members</name>

<t>A new constraint type MAY be proposed for the environment.* family by a type specification author publishing a constraint type specification that:</t>

<t>(1) demonstrates that the proposed type satisfies the membership criterion of Section 3.2;</t>

<t>(2) specifies a trust-root mechanism (for example, <xref target="RFC7517"></xref> JWKS, <xref target="RFC8615"></xref> well-known key registry, or another mechanism with comparable security properties — meaning a mechanism that provides cryptographically authenticated key discovery, supports key rotation, and binds the discovered key to a specific issuer identity) under which a verifier discovers the issuer's signing key;</t>

<t>(3) specifies a verification algorithm that consumes attestations produced under the trust-root mechanism and produces either constraint-satisfied or constraint-violated as terminal states, with no other terminal states;</t>

<t>(4) declares the per-type fields the type adds to the family-wide vocabulary, classifying each under the field-scope taxonomy of Section 4.2;</t>

<t>(5) declares the per-type MUST-implement signing algorithm and the per-type SHOULD/MAY extension set under the algorithm-agility framework of Section 4.3;</t>

<t>(6) declares the per-type distinguishing field used for per-member diagnostic disambiguation under the family composition discipline of Section 5.4, with a fallback specified for cases where the distinguishing field is not present in a failing instance; and</t>

<t>(7) conforms to the register discipline of Section 6 throughout.</t>

<t>These seven requirements correspond to the Expert Review criteria specified in Section 8.3 for IANA registry purposes. A constraint type specification meeting all seven requirements is conforming. A specification missing any requirement is not conforming and the proposed type MUST NOT be registered until the gap is closed.</t>

<t>The relationship among Section 3.1, Section 3.2, and this section is as follows. Section 3.1 specifies the four properties that characterise a family member. Section 3.2 names the gating-failure-mode property — property (3) of Section 3.1 — as the membership criterion. This section's seven requirements establish the operational obligations a type specification must satisfy to demonstrate the four properties: requirement (1) demonstrates property (3) of Section 3.1 directly; requirements (2) and (3) establish the operational basis for property (2) (attestation-driven evaluation); requirements (4) through (7) establish the family-wide vocabulary, composition, and register obligations a member type must respect. Property (1) of Section 3.1 (environmental, not transactional) and property (4) (named under the environment.* namespace) are pre-conditions that the type specification author asserts before invoking the seven requirements. Together, Sections 3.1, 3.2, and 3.4 specify the same family membership relation from descriptive, normative, and operational viewpoints respectively.</t>

<t>This document does not prescribe the working-group process under which a conforming specification is reviewed and registered; that process is the responsibility of the standards body owning the environment.* registry. This document specifies only the technical conditions a specification MUST meet to be eligible for registration.</t>

</section>
<section anchor="handling-of-weakened-type-specifications"><name>Handling of Weakened Type Specifications</name>

<t>A registered family member's specification may be revised over its lifetime. If a revision weakens the type's failure mode below gating, the type's specification no longer satisfies the membership criterion of Section 3.2, even though the type's registration in the environment.* registry still asserts membership. This is a contradiction between registry state and specification content that this document does not resolve directly; resolution is a working-group concern, typically through deprecation per Section 8.4 followed by registration of a successor type.</t>

<t>Implementations MUST NOT silently accept the weakened semantics. If an implementation determines that a registered type's current specification no longer satisfies the membership criterion, the implementation MUST reject mandates containing instances of that type and SHOULD report the contradiction to the working group rather than continue verification under the weakened specification. The MUST is the family's fail-closed posture; the SHOULD is on discoverability of the contradiction by the registry's governance body.</t>

</section>
<section anchor="relationship-to-other-constraint-families"><name>Relationship to Other Constraint Families</name>

<t>The environment.* family is one constraint family among potentially many in the Verifiable Intent ecosystem. The mandate.checkout.* and mandate.payment.* groupings defined by <xref target="VI-CONSTRAINTS"></xref> are sub-namespaces of the transactional constraint vocabulary; they are not constraint families in the sense of this document because they do not share a single membership criterion across their members. A future specification MAY define additional constraint families under the same family-definition discipline this document establishes, with their own namespaces, membership criteria, and per-family vocabularies.</t>

<t>Composition of environment.* constraints with constraints from other families is specified in Section 5. The family relationship is unidirectional: environment.* constraints gate execution and are evaluated before transactional constraints; transactional constraints do not gate environment.* evaluation. This ordering is normative regardless of whether other families are defined in the future.</t>

<t>Constraint frameworks that bind agent authority to credential layers via Selective Disclosure JWT <xref target="RFC-SD-JWT"></xref> or HTTP Message Signatures <xref target="RFC9421"></xref>, including Verifiable Intent's Layer 2 mandate format and similar agent-authorization protocols, are interoperable with the environment.* family without modification to either side. An environment.* constraint instance, embedded in the Layer 2 mandate's constraint list and covered by the mandate's JWS signature, inherits the mandate's <xref target="RFC7800"></xref> cnf-claim binding to the agent's proof-of-possession key. The verifier's evaluation path under Section 5.5 (environment.* before transactional constraints) sequences correctly with the host framework's own Layer-2-to-Layer-3 verification path: environment.* constraints gate the entire mandate evaluation, including any transactional constraints the host framework specifies. No registration of environment.* identifiers in the host framework's constraint registry is required for this interoperability; recognition of the environment.* namespace is sufficient for a host framework's verifier to delegate evaluation to an environment.*-aware verification path. Per <xref target="VI-CONSTRAINTS"></xref>, Section 5.4 and Section 1.3 of this document, host frameworks whose validators encounter environment.* constraint instances without recognizing the namespace will reject the containing open mandates. This rejection is automatic; environment.*-aware verification paths operate against open mandates that the host-framework validator does recognize, without requiring host-framework registration of the environment.* namespace as a precondition.</t>

</section>
</section>
<section anchor="family-wide-vocabulary"><name>Family-Wide Vocabulary</name>

<t>This section specifies the vocabulary that all environment.* constraint types share. Three classes of vocabulary are family-wide:</t>

<t>(1) fields whose semantics are identical across every member type, specified in Section 4.1;</t>

<t>(2) the field-scope taxonomy under which fields are classified as family-wide or per-type, specified in Section 4.2;</t>

<t>(3) the algorithm-agility framework under which signing-algorithm choice is made, specified in Section 4.3.</t>

<t>Per-type vocabulary — fields, signing algorithms, evaluation outputs, distinguishing identifiers — is specified by each constraint type's specification under the framework this section establishes. This section does not specify per-type vocabulary.</t>

<section anchor="family-wide-fields"><name>Family-Wide Fields</name>

<t>The following fields appear, with identical semantics, on every environment.* constraint instance.</t>

<section anchor="attestationurl"><name>attestation_url</name>

<t>Type: string (HTTPS URL).
Required: Yes.</t>

<t>The HTTPS endpoint at which the verifier fetches the signed attestation for this constraint instance. The semantic role of attestation_url is identical across every environment.* constraint type: it names the location at which a fresh attestation can be obtained. Per-type variance in the wire protocol (HTTP method, request body shape, response envelope) is carried by per-type fields and per-type interface specifications under Section 4.2.3, not by attestation_url.</t>

<t>Verifiers MUST reject constraint instances whose attestation_url does not use the https scheme. This rejection is fail-closed: an attestation fetched over an unencrypted channel is by definition untrusted, and the constraint instance carrying such a URL is malformed regardless of whether the unencrypted endpoint would have returned a valid signature. Verifiers SHOULD apply additional transport-layer protections appropriate to the deployment context, including but not limited to rejection of URLs resolving to private address ranges, strict request timeouts, and bounded redirect handling. The specifics of these protections are deployment-defined.</t>

<t>The security implications of <spanx style="verb">attestation_url</spanx> — including server-side request forgery considerations and connection-time defences — are addressed in Section 7.7.</t>

</section>
<section anchor="maxattestationage"><name>max_attestation_age</name>

<t>Type: integer (seconds).
Required: Yes.</t>

<t>The maximum age in seconds, measured from the attestation's signing time to the verifier's evaluation time, beyond which the attestation MUST NOT be accepted. The mandate issuer declares this value at constraint-instance construction time. Verifiers MUST reject attestations whose age exceeds max_attestation_age, regardless of whether the attestation's own expiry has not yet passed.</t>

<t>max_attestation_age MUST be a positive integer. A constraint instance lacking an explicit max_attestation_age is malformed and verifiers MUST reject it. There is no default value at the family layer; specifications adding default values per constraint type are non-conforming because the freshness window is the family's primary security property, and a default at any layer recreates the implicit-freshness exposure the family is designed to close.</t>

<t>The freshness window is the primary exploitable surface of any environment.* constraint. The window is the period during which a signed attestation, valid at the moment of signing, may no longer reflect the current state of the property the constraint addresses. An attestation that is technically still inside its issuer's TTL but is operationally stale — that is, its signing time predates a relevant change in the underlying environmental property — is the canonical failure case: market state can change between signing and execution, wallet state can change between signing and execution, and any environmental property the family addresses can change between signing and execution. The mandate issuer is the party best positioned to declare the maximum tolerable window for the gated decision; max_attestation_age is the field through which that declaration is made.</t>

<t>The attestation issuer's TTL (the issuer-side time after which the issuer no longer claims the attestation is valid) and max_attestation_age (the consumer-side time after which the verifier no longer accepts the attestation) serve different parties and MUST be independently configurable. A verifier MUST honour both: an attestation that has passed either bound is unacceptable. The narrower of the two governs in practice.</t>

<t>The security implications of <spanx style="verb">max_attestation_age</spanx> — including attestation replay considerations — are addressed in Section 7.1.</t>

</section>
</section>
<section anchor="field-scope-taxonomy"><name>Field-Scope Taxonomy</name>

<t>The environment.* constraint family contains fields that appear under identical names in multiple constraint types. A shared field name does not, by itself, imply shared semantics: some fields carry identical meaning across types, while others have parallel-but-mechanism-specific meaning tied to each type's trust-root or evaluation mechanism. To prevent ambiguity, each field in the family MUST be classified by its specification author under one of the categories defined below.</t>

<t>The family currently recognises three scope categories:</t>

<t>family-wide-trust-root-agnostic. The field carries identical semantics across every environment.* constraint type, independent of the trust-root mechanism each type uses. A single verification code path handles the field for every type in the family.</t>

<t>per-type-trust-root-mechanism-bound. The field's operational semantics depend on the specific trust-root mechanism of the constraint type (<xref target="RFC7517"></xref> JWKS, <xref target="RFC8615"></xref> well-known key registry, or another mechanism). The field name may appear in multiple specifications with parallel but mechanism-specific semantics.</t>

<t>per-type-evaluation-mechanism-bound. The field's operational semantics depend on the constraint type's evaluation mechanism: the output shape the evaluator produces or the wire-protocol binding to the evaluator. The field name may appear in multiple specifications with parallel but evaluation-specific semantics; distinct from per-type-trust-root-mechanism-bound in that the binding is to how the attestation is produced and shaped, not to how the signing key is discovered.</t>

<t>Within Section 4.2, the term "field" encompasses both constraint schema fields and, where operationally relevant, claims within the signed attestation payload.</t>

<section anchor="scope-declarations-for-family-wide-fields"><name>Scope Declarations for Family-Wide Fields</name>

<t>The family-wide fields specified in Section 4.1 are classified as follows:</t>

<t>attestation_url: family-wide-trust-root-agnostic. Its semantic role — the HTTPS endpoint at which the verifier fetches the signed attestation — is identical across every environment.* constraint type. Per-type variance in HTTP method or request body is carried by neighbouring per-type fields, not by the URL field itself.</t>

<t>max_attestation_age: family-wide-trust-root-agnostic. The freshness window is a temporal property of the attestation signing event, independent of how the verifier retrieves the signing key.</t>

</section>
<section anchor="scope-declarations-for-per-type-fields"><name>Scope Declarations for Per-Type Fields</name>

<t>Type specification authors MUST declare the scope of every per-type field they introduce. Declarations MUST appear in a Field Scope Declaration section of the type specification. The declaration MUST classify the field under one of the three categories of Section 4.2 and MUST justify the classification in prose.</t>

<t>The type specifications referenced in Appendix A carry such declarations for the per-type fields they introduce. This document does not enumerate those fields, because doing so would couple the family-definition layer to the current set of registered types in a way that future revisions of either type's specification could invalidate.</t>

</section>
<section anchor="adding-scope-categories"><name>Adding Scope Categories</name>

<t>The three categories of Section 4.2 are sufficient for every field introduced by every member type registered at the time of this document's publication. Type specification authors proposing new fields SHOULD place them under one of the three existing categories.</t>

<t>A type specification author MAY propose a new scope category. Such a proposal is a working-group revision of this document, not a per-type design choice. The proposing specification MUST demonstrate that no existing category is sufficient for the field's classification, and the working group MUST converge on the new category's definition and integration with the existing three before any registered type uses it.</t>

</section>
</section>
<section anchor="algorithm-agility"><name>Algorithm Agility</name>

<t>The environment.* constraint family is algorithm-agnostic at the family layer. This document does not name a signing algorithm that all family members must use, and it does not prefer any algorithm over any other. Algorithm choice is a per-type concern, made by each constraint type specification under the framework this section establishes.</t>

<t>The framework follows the discipline of <xref target="RFC8725"></xref>, Section 3.1: each constraint type specification MUST declare a single MUST-implement signing algorithm that all conformant verifiers for that type MUST support, and MAY declare a SHOULD-implement extension set and a MAY-implement extension set. Verifiers negotiate the algorithm per constraint instance by reading the attestation's algorithm declaration and confirming that the declared algorithm is in their supported set for the constraint type. Verifiers MUST reject attestations whose algorithm is not in the type's supported set; this rejection is fail-closed and is not a permitted silent downgrade.</t>

<t>Algorithm deprecation within a registered family member is a per-type concern. Type specification authors SHOULD specify, in the type's specification, a deprecation mechanism for the type's MUST-implement algorithm before that algorithm is needed — including the conditions under which the algorithm is deprecated, the timeline for verifier migration to a successor MUST-implement, and the backward-compatibility guarantees during the transition. The family-wide obligation is structural: every type specification MUST declare its current MUST-implement algorithm, and verifiers MUST honour the declaration without fallback. Deprecation discipline ensures that the family does not inherit a brittle commitment to any specific algorithm beyond the cryptographic lifetime that algorithm provides.</t>

<t>The framework is deliberately minimal at the family layer because the security properties of signing-algorithm choice are well-specified by the JOSE family of specifications and by <xref target="RFC8725"></xref>. The family-layer obligation is structural: every type specification MUST declare its choice explicitly, and verifiers MUST honour the declaration without fallback. This obligation prevents the family from accidentally inheriting a single-algorithm constraint by implementation convergence rather than by specification.</t>

<t>A type specification's choice of MUST-implement algorithm is not constrained by this document. The choice is properly made on the basis of the reference implementation's signing stack, the wider VI ecosystem's existing JWS infrastructure, the operational properties of the algorithm at the type's expected verification volume, and the security properties relevant to the type's threat model. This document is silent on these factors because they are per-type concerns; it requires only that the choice be made, declared, and respected.</t>

</section>
</section>
<section anchor="family-composition"><name>Family Composition</name>

<t>This section specifies how environment.* constraints compose with each other and with constraints from other families. Six concerns are addressed: conjunction semantics across family members (Section 5.1), mixed pass/fail handling (Section 5.2), the L3 execution gate and its completeness rule (Section 5.3), per-member diagnostic output (Section 5.4), composition with other families (Section 5.5), and the rationale these rules collectively encode (Section 5.6).</t>

<section anchor="conjunction-semantics"><name>Conjunction Semantics</name>

<t>The environment.* family is a conjunction. A mandate satisfies the family's gate if and only if every environment.* constraint instance in the mandate passes. There is no partial-fulfillment path within the family, no quorum across members, and no precedence by which one member can override another.</t>

<t>This semantic is family-wide and is not a per-type design choice. A constraint type whose composition with sibling family members is anything other than conjunction is by definition outside the family, because the membership criterion of Section 3.2 requires that each type's failure mode be gating, and a gating failure cannot be survived by composition with passing siblings.</t>

</section>
<section anchor="mixed-passfail"><name>Mixed Pass/Fail</name>

<t>When one environment.* constraint instance passes and another fails in the same mandate, the family's gate fails. The passing instance does not rescue the failing instance. This rule applies regardless of:</t>

<t>(1) whether the instances are of the same type or different types;</t>

<t>(2) whether the instances bind to the same subject or to different subjects;</t>

<t>(3) the order in which the instances appear in the mandate; and</t>

<t>(4) the order in which the verifier evaluated the instances.</t>

<t>A verifier that returns a passing result for a mandate containing one passing and one failing environment.* constraint is non-conforming.</t>

</section>
<section anchor="l3-execution-gate-and-completeness"><name>L3 Execution Gate and Completeness</name>

<t>The environment.* family gates Layer 3 acceptance. A verifier MUST NOT accept a Layer 3 mandate whose Layer 2 mandate carries any failed environment.* constraint, regardless of whether the verifier evaluated the failed constraint first, last, or in any other order.</t>

<t>The verifier MUST evaluate every environment.* constraint in the mandate to completion before refusing Layer 3, even after the first failure has been observed. This is the completeness requirement. Short-circuit evaluation of environment.* constraints — terminating the family-evaluation pass at the first failure without evaluating subsequent members — is non-conforming because it denies downstream consumers the per-member evidence the family's diagnostic output (Section 5.4) depends on.</t>

<t>The completeness requirement applies to the verifier-side L3-acceptance evaluation path. It does not apply to the agent-side pre-L3-creation evaluation path. An agent constructing Layer 3 MUST itself satisfy every environment.* constraint before constructing Layer 3, and an agent that observes any environment.* failure during pre-L3-creation evaluation MUST halt construction at the first failure as a fail-closed agent-side response. The agent's halt is operationally distinct from the verifier's diagnostic-completeness obligation: the agent's purpose is to avoid producing a Layer 3 that the verifier would refuse; the verifier's purpose is to produce complete diagnostic output even when refusing.</t>

<t>Evaluation of constraints from other families (for example, transactional constraints under mandate.*) after a confirmed environment.* failure remains implementation-defined. A verifier MAY evaluate them for diagnostic completeness or MAY skip them for efficiency, provided the resulting refusal of Layer 3 is unambiguous.</t>

</section>
<section anchor="per-member-diagnostic-output"><name>Per-Member Diagnostic Output</name>

<t>Each failed environment.* constraint MUST produce its own entry in the verifier's violations output. Verifiers MUST NOT collapse multiple environment.* failures into a single generic violation entry.</t>

<t>Each violation entry MUST carry two identifiers:</t>

<t>(1) the array index of the failing constraint within the mandate's constraints array, as the primary machine identifier. The index is unambiguous across any combination of constraint types and across mandates containing multiple instances of the same type;</t>

<t>(2) a human-readable identifier derived from the failing constraint's distinguishing field, as the secondary identifier intended for operator diagnostics and dispute resolution.</t>

<t>The selection of the distinguishing field is a per-type obligation. Each constraint type specification author MUST declare which field of the type is the distinguishing field, and MUST specify a fallback when the distinguishing field is not present in the failing instance (for example, when the constraint's signed attestation could not be obtained at all). The reference type specifications cited in Appendix A carry such declarations for their respective types.</t>

<t>The diagnostic output requirement is family-wide because the family's audit value depends on it. A mandate carrying multiple environment.* constraints — whether multiple instances of the same type or instances of multiple types — produces, at refusal, an audit record showing exactly which environmental conditions failed and which held. Collapsing per-member diagnostics destroys that record.</t>

</section>
<section anchor="composition-with-other-families"><name>Composition with Other Families</name>

<t>environment.* constraints MUST be evaluated before constraints from other families in the same mandate. If any environment.* constraint fails, the verifier MUST refuse Layer 3 regardless of how constraints from other families would evaluate. The ordering is one-directional: environment.* gates execution, and other families do not gate environment.* evaluation.</t>

<t>The rationale is structural. Evaluating transactional constraints (allowed merchants, allowed payees, amount ranges) before confirming the execution environment is valid exposes the verifier to a time-of-check-to-time-of-use race in which a transactional constraint passes against a Layer 3 that names an environment the verifier has not yet attested. environment.* evaluation precedes transactional evaluation so that the environment is established before the transaction is authorised against it.</t>

<t>This ordering is normative regardless of whether other constraint families exist at the time of this document's publication or are added later. A future family with its own membership criterion and its own family-definition specification MUST document its own ordering relationship to environment.*, but environment.* itself is not subject to ordering preemption by any other family.</t>

</section>
<section anchor="rationale"><name>Rationale</name>

<t>The composition rules of Sections 5.1 through 5.5 are not arbitrary. Two arguments, co-equal and reinforcing, motivate them.</t>

<t>The semantic argument: each member of the environment.* family answers an independent question about the world at the moment of execution — is this venue open? is this wallet funded? does this counterparty's regulatory status hold? Because the questions are independent, their answers compose as conjunction, not disjunction: a failure on any member removes the basis for execution. There is no construction in which "the venue is open OR the wallet is funded" is the correct gate for an autonomous transaction. Both must hold.</t>

<t>The architectural argument: conjunction also falls out of the family's membership criterion (Section 3.2) directly. A constraint type whose failure mode is OR-tolerable is, by the criterion, outside the family. If a constraint's failure is survivable by composition with passing siblings, the constraint is not gating execution; if it is not gating execution, it does not satisfy the membership criterion; if it does not satisfy the criterion, it is not in the family. Conjunction is therefore not a design choice the working group makes when registering each new type — it is a consequence of the membership criterion the type satisfied to enter the family in the first place.</t>

<t>The two arguments meet at the same conclusion from independent directions. The semantic argument applies regardless of how the family is defined. The architectural argument applies regardless of what the family means. That both arguments converge on conjunction is the strongest evidence that conjunction is the right composition rule for environment.*.</t>

<t>The per-member diagnostic requirement of Section 5.4 follows from the same logic. Collapsing per-member diagnostics would destroy the audit trail that makes the family load-bearing for downstream dispute resolution. Preserving per-member diagnostics makes every signed attestation recoverable from the verifier's output, and makes dispute resolution an application-layer concern with complete evidence rather than a debugging exercise. Both type specifications cited in Appendix A already encode this discipline; this document promotes it from per-type rationale to family-wide normative requirement so that every future family member inherits it without re-litigation.</t>

</section>
</section>
<section anchor="register-discipline"><name>Register Discipline</name>

<t>This section specifies the discipline under which RFC 2119 keywords are used in this document and in any specification of an environment.* constraint type that claims membership in the family. The discipline distinguishes normative register from descriptive register and constrains the use of each.</t>

<t>The discipline is family-wide. A constraint type specification that does not conform to this section is non-conforming as a family member, regardless of the soundness of its technical content, because mixed register defeats the conformance-checkability that makes the family's normative statements actionable for implementers.</t>

<section anchor="normative-register"><name>Normative Register</name>

<t>Normative register uses RFC 2119 keywords (MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, NOT RECOMMENDED, MAY, OPTIONAL) in all capitals, per <xref target="RFC2119"></xref> and <xref target="RFC8174"></xref>, to bind implementers to specific behaviour.</t>

<t>Normative register specifies behaviour that an implementation either satisfies or fails to satisfy; it is conformance-checkable. Any RFC 2119 keyword in all capitals MUST appear only in a sentence that imposes a requirement on a named implementer (an agent, a verifier, a mandate issuer, an attestation issuer, a type specification author, IANA, or a designated expert). The Section 2.1 boilerplate per <xref target="RFC8174"></xref> binds the interpretation throughout this document.</t>

</section>
<section anchor="descriptive-register"><name>Descriptive Register</name>

<t>Descriptive register explains intent, rationale, precedent, context, or structural reasoning. It uses lowercase synonyms (or explicit non-keyword phrasing) where RFC 2119 keywords would otherwise appear.</t>

<t>Descriptive register is not conformance-checkable. It exists to make the normative register actionable: a reader of normative requirements is better served by descriptive prose explaining why the requirement holds than by the requirement standing alone without context. Descriptive prose SHOULD use lowercase synonyms ("must" rather than MUST, "should" rather than SHOULD, "may" rather than MAY) when no new requirement is being imposed. Where the lowercase synonym would be ambiguous about whether it imposes a requirement, explicit non-keyword phrasing ("the section establishes", "the type specification author's choice is", "the framework requires") is preferred over either capitalisation.</t>

<t>The discipline matters because a specification that mixes normative and descriptive register — for example, by using all-capitals MUST in a rationale paragraph that does not impose a requirement — produces ambiguous conformance: a reviewer or implementer reading prose with all-capitals keywords in descriptive context cannot tell whether the text imposes a requirement or merely describes one. Resolving such ambiguity requires reading the surrounding sentences to infer intent, which is precisely the work the discipline is designed to avoid.</t>

</section>
<section anchor="redundancy-avoidance"><name>Redundancy Avoidance</name>

<t><xref target="RFC2119"></xref>, Section 3 establishes that SHOULD and RECOMMENDED carry identical normative force; <xref target="RFC2119"></xref>, Section 5 establishes that MAY and OPTIONAL carry identical normative force. Field labels, section headers, and parenthetical qualifiers that duplicate the normative keyword present in the containing sentence add visual weight without adding normative content.</t>

<t>A specification SHOULD NOT pair a label such as "(RECOMMENDED)" with a sentence whose verb is already SHOULD, and SHOULD NOT pair a label such as "(OPTIONAL)" with a sentence whose verb is already MAY. The keyword in the containing sentence carries the requirement; the parenthetical label adds register noise.</t>

<t>This rule applies to specification authors as a stylistic discipline. A specification that violates it remains technically conformant; the rule's purpose is to keep the document surface clean enough that the discipline of Sections 6.1 and 6.2 is visible to a reviewer scanning for register issues.</t>

</section>
<section anchor="scope-of-application"><name>Scope of Application</name>

<t>Normative requirements MUST name the implementer they bind. A requirement that does not name its implementer is ambiguous and the ambiguity is not resolved by context.</t>

<t>Where a requirement could be read at multiple layers of the stack — for example, "verifiers MUST re-verify" read as a network-transport obligation versus an application-layer obligation — the specification text MUST name the application-layer scope explicitly. A sentence such as "verifiers MUST re-verify the attestation against the chain's then-current state at settlement time" reads ambiguously without scope: it could bind a chain client, an RPC layer, a cryptographic library, or the VI verifier's L3-acceptance logic. The specification text MUST name which.</t>

<t>The application-layer scope of family-wide requirements in this document is the VI verifier's L3-acceptance logic. Requirements at other layers (network transport, cryptographic library, chain client) are out of this document's scope and are governed by the specifications appropriate to those layers.</t>

</section>
<section anchor="forward-rule-for-new-sections-and-new-specifications"><name>Forward Rule for New Sections and New Specifications</name>

<t>New sections introduced in future revisions of this document, and all sections of any constraint type specification that claims membership in the environment.* family, MUST apply the rules of Sections 6.1 through 6.4 at introduction.</t>

<t>Editorial register polish — conversion of all-capitals to lowercase in descriptive context, removal of RECOMMENDED/SHOULD redundancy, application-layer scope naming — is a patch-level revision and does not require a minor-version bump in any specification that adopts patch-level versioning. The rule is not that the discipline be applied perfectly on first draft, but that it be applied without exception by the time a specification is presented for working-group adoption.</t>

</section>
<section anchor="relationship-to-section-21-conventions"><name>Relationship to Section 2.1 Conventions</name>

<t>This section extends the Section 2.1 Conventions and Definitions statement. Section 2.1 binds the interpretation of RFC 2119 keywords when they appear in all capitals per <xref target="RFC8174"></xref>. This Section 6 specifies the editorial discipline for when RFC 2119 keywords SHOULD appear in all capitals (Section 6.1, normative register) versus when they SHOULD NOT (Section 6.2, descriptive register). Together, Section 2.1 and Section 6 establish the register discipline of the environment.* family.</t>

</section>
<section anchor="open-questions"><name>Open Questions</name>

<t>This section reproduces three questions that the type specifications cited in Appendix A raise about register discipline and that the working group has not yet converged on. The questions are reproduced here so that working-group review of this document addresses them as family-wide concerns rather than per-type concerns. The current draft takes provisional positions on each; the working group is invited to revise.</t>

<t>Q1. Is this section informative — describing the discipline that the family's normative sections already follow — or normative — binding future type specifications to the rules at Sections 6.1 through 6.5? Provisional position: Sections 6.1 through 6.5 are treated as normative (with all-capitals RFC 2119 keywords throughout) and Sections 6.6 and 6.7 as informative. The working group may reclassify any subsection.</t>

<t>Q2. Should the family adopt a formal register-discipline audit cadence — for example, a pre-release audit before each minor version of a type specification — or is the ad-hoc audit pattern established by the type specifications cited in Appendix A sufficient? Provisional position: The current draft does not mandate a cadence; the rule of Section 6.5 is that the discipline be applied by the time a specification is presented for adoption.</t>

<t>Q3. What is the relationship between this section and other family-charter material that may be added to future revisions? Provider neutrality, peer-author coordination discipline, patch-level versioning conventions, and lockstep commit patterns across sibling specifications are family-charter concerns that the type specifications cited in Appendix A have raised. Provisional position: The working group decides whether such material consolidates into a future revision of this section, into a separate family-charter section, or into a hybrid structure; the current draft does not foreclose.</t>

</section>
</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>This section enumerates security concerns that apply family-wide to environment.* constraints. Per-type security considerations — those tied to a specific trust-root mechanism, a specific signing algorithm, or a specific evaluation mechanism — are addressed by each constraint type's specification. The family-wide concerns below apply to every member type and to every implementation of every member type.</t>

<section anchor="attestation-replay"><name>Attestation Replay</name>

<t>A signed attestation is a bearer artifact within its acceptance window. Any party in possession of a valid signed attestation may present it to a verifier, and the verifier — applying only the cryptographic checks the attestation supports — will accept it. The acceptance window is bounded by the attestation's expiry and further narrowed by the constraint instance's max_attestation_age (Section 4.1.2), but within that window the attestation is replayable.</t>

<t>For deployment contexts where attestation reuse would authorise duplicate state changes (for example, payment execution, where an attestation justifying one settlement could otherwise justify a second settlement against the same wallet within the freshness window), verifiers MUST maintain a per-attestation deduplication cache keyed on the attestation's unique identifier. For deployment contexts where attestation reuse is benign (for example, idempotent read-only operations), verifiers SHOULD maintain a per-attestation deduplication cache as defence in depth, but MAY rely on the freshness window alone. The unique identifier and the cache TTL are per-type concerns: each constraint type specification names the field its attestations carry as the unique identifier, and the cache TTL is bounded by max_attestation_age plus an implementation-defined margin to absorb clock skew.</t>

<t>The replay surface is family-wide because it follows from the bearer-artifact property of signed attestations, which is itself family-wide: every environment.* attestation is a signed statement that a verifier accepts on the strength of the signature, and any signed statement that travels over the wire is replayable to any verifier that accepts the same signature. The specific mitigation varies by deployment context.</t>

</section>
<section anchor="issuer-trust-bootstrapping"><name>Issuer Trust Bootstrapping</name>

<t>The security of any environment.* constraint depends on the verifier correctly establishing the attestation issuer's signing key. Each constraint type names a trust-root mechanism (Section 4.2) under which a verifier discovers the key — JWKS at a known HTTPS URL, a well-known key registry per <xref target="RFC8615"></xref>, or another mechanism — but every trust-root mechanism reduces, eventually, to an out-of-band initial trust establishment.</t>

<t>Verifiers SHOULD establish initial trust in an attestation issuer through at least one channel independent of the trust-root mechanism: DNSSEC for the issuer's domain, certificate transparency log inspection for the issuer's TLS certificates, published key fingerprints in a venue independent of the issuer's primary infrastructure, or out-of-band fingerprint comparison with a known-good party. The specifics of initial-trust channels are deployment-defined; the family-wide requirement is that no implementation rely on the trust-root mechanism alone to bootstrap trust in a previously-unknown issuer.</t>

<t>This concern is family-wide because the trust-root mechanism's job is to make ongoing key discovery secure once initial trust is established, not to establish initial trust ex nihilo. A verifier that fetches an unknown issuer's JWKS over HTTPS and accepts whatever keys are returned has authenticated only that the JWKS was served by the host named in the URL. It has not authenticated that the host named in the URL is the issuer the mandate intended. Initial trust is the gap between those two facts.</t>

</section>
<section anchor="constraint-stripping-and-insertion"><name>Constraint Stripping and Insertion</name>

<t>An attacker with the ability to modify a Layer 2 mandate could remove environment.* constraint instances from the mandate before the agent or verifier evaluates it. A mandate with environment.* constraints stripped expands the agent's authority to environments the user did not authorise.</t>

<t>The defence against constraint stripping is the Layer 2 signature, which covers the full constraint list as presented at issuance time. Any modification to the constraint list — including removal or insertion of an unauthorised constraint — invalidates the signature. Verifiers MUST reject any Layer 2 mandate whose signature does not validate over the full constraint list as presented, and implementations MUST NOT accept mandates whose verified signature covers only a subset of the declared constraints.</t>

<t>The same defence applies to constraint insertion: a mandate issuer acting outside the user's authorisation cannot add a constraint instance to a user-signed mandate without invalidating the user's signature. Note that this defence depends on the mandate issuer's honesty regarding what the user authorised at the time the mandate was signed; it does not protect against a mandate issuer who constructs a mandate with constraint instances the user did not authorise. Trust in the mandate issuer's faithfulness to user intent is a deployment-level concern outside the scope of this document.</t>

<t>This concern is family-wide because it follows from the family's insertion into Verifiable Intent's Layer 2 mandate format: any constraint in any family is subject to stripping and insertion, and the Layer 2 signature is the family-agnostic defence. The family inherits the defence; it does not add new defences.</t>

</section>
<section anchor="substitution-of-attestation-endpoints"><name>Substitution of Attestation Endpoints</name>

<t>A more subtle attack than stripping is substitution: an attacker who can modify a Layer 2 mandate replaces a constraint's attestation_url with a URL pointing to an attacker-controlled endpoint that returns valid-looking signed responses. The signature on the substituted attestation is, by construction, valid against whatever key the attacker chose; the trust-root mechanism's binding to a specific issuer's key is what defeats the attack.</t>

<t>The defence is per-type, but its family-wide minimum is specified here. Each constraint type specification MUST identify, at minimum, two binding fields signed into the Layer 2 mandate alongside attestation_url: an issuer-identifier binding (the field that names which attestation issuer's key is acceptable) and a key-identifier binding (the field that names which specific key, within that issuer's key set, is acceptable). For <xref target="RFC7517"></xref> JWKS-based types, this typically means a JWKS URL, a key identifier, and an issuer identifier; for <xref target="RFC8615"></xref> well-known key registry-based types, this typically means a key identifier together with the issuer identity from which the key registry URL is derived. An attacker who substitutes attestation_url MUST also substitute every binding field to evade detection, and the substitution is detectable provided the verifier honours every binding.</t>

<t>The family-wide minimum is that every constraint type's binding fields — at minimum, the issuer-identifier binding and the key-identifier binding — MUST be signed into the Layer 2 mandate by the mandate issuer at issuance time and MUST be honoured by verifiers at evaluation time. A type specification whose verification algorithm does not honour every declared binding field, or whose declared binding fields do not satisfy the family-wide minimum, is non-conforming. This minimum applies independent of trust-root mechanism: future trust-root mechanisms admitted under Section 3.4(2) ("comparable security properties") inherit the same issuer-identifier and key-identifier binding obligations.</t>

</section>
<section anchor="mandate-issuer-versus-attestation-issuer-trust-separation"><name>Mandate-Issuer-Versus-Attestation-Issuer Trust Separation</name>

<t>Section 2.2 distinguishes the mandate issuer (the party that constructs the Layer 2 mandate) from the attestation issuer (the party that signs the attestation the verifier evaluates against). The two roles are separately trusted and separately compromised. A compromised mandate issuer could construct mandates with attestation bindings pointing to compromised attestation issuers; a compromised attestation issuer could sign valid attestations for false world-states. Each compromise is independently consequential, and each role's trust establishment is independently the deployment's responsibility.</t>

<t>The family does not specify formal trust-establishment procedures for either role; that work belongs in Verifiable Intent's threat model and in deployment-specific operational documentation. The family-wide requirement is that the two roles MUST NOT be conflated by an implementation. An implementation that treats a mandate issuer's signature as evidence about the attestation issuer's signing key — or vice versa — is non-conforming because the two signatures bind different facts and a verifier acting on one as evidence for the other has reduced its security to whichever role is currently more trusted.</t>

<t>A concrete check that follows from this requirement: a verifier MUST NOT use the mandate issuer's identity (or any binding field attesting to the mandate issuer) as input to the verification of the attestation's signature. The attestation signature is verified against the attestation issuer's key, discovered through the trust-root mechanism, with no mandate-issuer-derived inputs. This check is conformance-testable.</t>

<t>This concern is family-wide because the role distinction is family-wide: every environment.* constraint instance carries both a mandate-issuer signature (over the Layer 2 mandate) and an attestation-issuer signature (over the attestation the constraint binds to), and every verification path involves both signatures. Conflating them is a verification-path error rather than a per-type error.</t>

</section>
<section anchor="time-synchronisation"><name>Time Synchronisation</name>

<t>The freshness check of Section 4.1.2 (max_attestation_age) requires that the verifier's clock is reasonably synchronised with the attestation issuer's clock. A clock skew exceeding max_attestation_age would cause the verifier to reject all attestations from a correctly-operating issuer.</t>

<t>Implementations SHOULD use clock-synchronisation mechanisms appropriate to the deployment context (such as NTP) and SHOULD log clock-skew-related verification failures distinctly from other failure modes to aid diagnosis. The family does not specify a clock-synchronisation mechanism; the family-wide requirement is that implementations use a mechanism whose accuracy is bounded below the smallest max_attestation_age value the implementation expects to encounter in production.</t>

<t>This concern is family-wide because max_attestation_age is family-wide. A constraint type specification that uses a clock-anchored field other than max_attestation_age inherits the same concern; this section's requirement applies to whichever clock-anchored field the type uses.</t>

</section>
<section anchor="ssrf-and-other-verifier-initiated-fetch-risks"><name>SSRF and Other Verifier-Initiated Fetch Risks</name>

<t>The attestation_url field of every environment.* constraint instance is a mandate-controlled URL that the verifier will fetch. Without protection, this is a server-side request forgery primitive: an attacker who can modify the Layer 2 mandate (or who can introduce constraint instances at mandate construction time) can direct the verifier to fetch arbitrary URLs.</t>

<t>Verifiers MUST apply transport-layer protections appropriate to the deployment context. Family-wide minimum requirements:</t>

<t>(1) reject URLs that do not use the https scheme (already required by Section 4.1.1);</t>

<t>(2) reject URLs whose hostnames resolve to address ranges not appropriate for outbound verifier traffic. At minimum, this includes the <xref target="RFC1918"></xref> private address ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16), loopback (127.0.0.0/8), link-local (169.254.0.0/16), and any deployment-specific exclusion list;</t>

<t>(3) bound request timeouts to a value short enough that verifier-side SSRF attempts cannot extract significant information through timing observation;</t>

<t>(4) bound redirect handling to at most one redirect, and apply the same address-range and scheme checks to redirect targets;</t>

<t>(5) re-resolve the hostname at connection time and apply the address-range checks of (2) to the resolved IP, defending against DNS rebinding attacks where a domain resolves to a public IP at fetch-time and a private IP at connection-time.</t>

<t>The specific timeout values, deployment-specific exclusion list extensions, and redirect-handling specifics beyond the minima above are deployment-defined. Per-type specifications MAY tighten these requirements but MUST NOT relax them; a type specification that permits non-HTTPS URLs, omits any of the address-range exclusions in (2), or admits unbounded redirects is non-conforming.</t>

<t>This concern is family-wide because every environment.* constraint instance carries an attestation_url and every verifier fetches it. The mitigation is family-wide minimum plus deployment-specific tightening.</t>

</section>
<section anchor="signer-failure-handling"><name>Signer Failure Handling</name>

<t>The trust-root mechanisms specified by per-type specifications (e.g., <xref target="RFC7517"></xref> JWKS, <xref target="RFC8615"></xref> well-known key registry) provide cryptographically authenticated key discovery under correct operation. They do not address the failure mode in which an attestation issuer publishes signatures or key material that, while cryptographically well-formed, are operationally incorrect — for example, signatures over stale or misconfigured state, or key-rotation events that publish keys in an inconsistent intermediate state. Such failures are not theoretical: cryptographic infrastructure depending on similar trust-root mechanisms (DNSSEC zone-signing key rollovers, certificate transparency log misissuance) has experienced documented outages of this class.</t>

<t>A constraint type's verification algorithm under Section 3.4(3) terminates as constraint-satisfied or constraint-violated; it does not have a third terminal state for "issuer is currently malfunctioning." Verifiers SHOULD therefore implement an application-layer mechanism analogous to the Negative Trust Anchor pattern of <xref target="RFC7646"></xref> under which a verifier MAY temporarily decline to validate against a specific issuer's keys when that issuer is known to be publishing incorrect attestations. Verifiers SHOULD additionally surface the reason for declined verification through a mechanism analogous to Extended DNS Errors <xref target="RFC8914"></xref>, so that downstream consumers (agents, mandate issuers, audit systems) can distinguish issuer-failure refusals from constraint-violation refusals.</t>

<t>The family-wide requirement is operational rather than cryptographic: the verification algorithm continues to fail closed regardless of whether issuer-failure handling is implemented, and an agent observing any failure halts construction of Layer 3 per Section 5.3. The Negative Trust Anchor and Extended DNS Errors patterns do not weaken the failure-closed posture; they make the cause of refusal diagnosable by humans and audit systems. Implementations choosing not to implement these patterns inherit a coarser failure mode in which all verifications against a malfunctioning issuer fail without distinguishing cause, which is conformant but operationally degraded.</t>

<t>This concern is family-wide because every environment.* constraint type relies on a trust-root mechanism whose failure modes are external to the cryptographic verification path, and the operational consequences of those failures (mass agent halt, indistinguishable refusal causes) are family-wide regardless of which trust-root mechanism the type uses.</t>

</section>
</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>This document requests that IANA establish a registry for environment.* constraint type identifiers and register this document as the family-definition document for the namespace. The registry's scope, registration policy, and expert review criteria are specified below.</t>

<t>The Verifiable Intent specification <xref target="VI-CONSTRAINTS"></xref> establishes a Constraint Type Registry for VI mandate constraint types. The environment.* registry described here is either a sub-registry of that VI Constraint Type Registry or a separate registry coordinated with it; the working group's choice between these two structures does not affect the registration content this document specifies and is left to the working group at adoption time.</t>

<section anchor="the-environment-namespace"><name>The environment.* Namespace</name>

<t>IANA is requested to register the environment.* namespace as a constraint type prefix in the registry of Section 8.2. The namespace is the literal string environment followed by a dot followed by one or more dot-separated components identifying a specific environmental property and, optionally, sub-classifications.</t>

<t>This document is registered as the family-definition document for the environment.* namespace. Specifications proposing new environment.* type identifiers MUST conform to this document. IANA MUST NOT register a specification that does not conform, regardless of the technical merit of the proposed type.</t>

</section>
<section anchor="the-environment-constraint-type-registry"><name>The environment.* Constraint Type Registry</name>

<t>IANA is requested to establish a registry titled "Verifiable Intent environment.* Constraint Types" (or a name the working group prefers) with the following structure.</t>

<t>Registry fields. Each registration entry has the following fields:</t>

<t><list style="symbols">
  <t>Type identifier — the dot-separated string under the environment.* namespace (for example, environment.market_state, environment.wallet_state).</t>
  <t>Defined In — a reference to the constraint type specification document that defines the type. The reference SHOULD be a stable identifier (RFC number, Internet-Draft name and revision, or a permanent published-document URL).</t>
  <t>Version — the version of the type specification at the time of registration.</t>
  <t>Status — one of: Provisional, Stable, Deprecated.</t>
  <t>Distinguishing Field — the field per Section 5.4 that the type's diagnostic output uses for per-member identification. The fallback for cases where the distinguishing field is not present in a failing instance MUST be either listed here or referenced from the Defined-In document.</t>
  <t>MUST-Implement Algorithm — the per-type signing algorithm declared per Section 4.3.</t>
  <t>Notes — implementation-status references per <xref target="RFC6982"></xref>, known-issues references, or coordination references with sibling specifications. May be empty.</t>
</list></t>

<t>Initial registry contents. This document does not register any specific type identifier. The two reference type specifications cited in Appendix A are expected to register environment.market_state and environment.wallet_state respectively under their own working-group-adoption procedures. Registration of those types is the responsibility of their respective specifications, not of this document.</t>

<t>Registration policy. Registration follows the Specification Required policy of <xref target="RFC8126"></xref>, Section 4.6 with Expert Review by designated experts the working group appoints. The criteria the experts apply are specified in Section 8.3.</t>

</section>
<section anchor="expert-review-criteria"><name>Expert Review Criteria</name>

<t>Designated experts evaluating a proposed registration MUST verify that the proposed type satisfies all seven requirements of Section 3.4:</t>

<t>(1) the type satisfies the membership criterion of Section 3.2 (failure mode is gating);</t>

<t>(2) the type's specification names a trust-root mechanism with comparable security properties as defined in Section 3.4(2);</t>

<t>(3) the type's verification algorithm produces only constraint-satisfied or constraint-violated as terminal states;</t>

<t>(4) the type's per-type fields are classified under the field-scope taxonomy of Section 4.2;</t>

<t>(5) the type's per-type MUST-implement signing algorithm and extension sets are declared per Section 4.3;</t>

<t>(6) the type's per-type distinguishing field for diagnostic disambiguation is declared per Section 5.4, with a fallback specified;</t>

<t>(7) the type specification conforms to the register discipline of Section 6.</t>

<t>A proposed registration that fails any of these checks MUST be rejected by the designated experts. Rejection is not punitive; it indicates that the gap should be closed in the proposed specification before the registration is reconsidered. Designated experts SHOULD provide specific feedback identifying which check the proposed registration failed and what closure of the gap would look like.</t>

<t>Designated experts SHOULD also evaluate proposed registrations for:</t>

<t><list style="symbols">
  <t>Namespace coherence. The proposed identifier SHOULD identify the environmental property the type addresses (for example, market_state, wallet_state, regulatory_status), not the implementation, the issuer, or the wire format. An identifier such as environment.fooissuer_jwt is poorly chosen even if its specification is technically conformant.</t>
  <t>Coordination with sibling types. Where a proposed type's vocabulary overlaps with a registered type's vocabulary, the proposed specification SHOULD use the existing field name with the existing semantics, or SHOULD justify why a divergent name or semantics is necessary. Proliferation of near-synonymous fields across types defeats the family's vocabulary discipline.</t>
  <t>Implementation status. Proposed registrations from specifications that document at least one running implementation per <xref target="RFC6982"></xref> SHOULD be preferred over proposed registrations from specifications without running implementations, because the family's discipline depends on every member being implementable end-to-end with the family's vocabulary.</t>
</list></t>

<t>These additional criteria are guidance for designated experts. They are not normative requirements that proposed registrations MUST satisfy.</t>

</section>
<section anchor="status-field-lifecycle"><name>Status Field Lifecycle</name>

<t>The Status field of Section 8.2 has three values:</t>

<t>Provisional. The type's specification has been adopted by the working group but has not yet been published as an RFC or equivalent stable document. Implementations of provisional types are encouraged but should expect specification changes during the provisional period.</t>

<t>Stable. The type's specification has been published as an RFC or equivalent stable document. Implementations rely on a stable contract; specification changes after the Stable transition follow normal protocol-evolution procedures (errata, new versions, deprecation).</t>

<t>Deprecated. The type's specification has been superseded or withdrawn. Deprecation does not suspend the membership criterion of Section 3.2; a deprecated type whose specification still satisfies the criterion remains a family member in good standing for backward-compatibility purposes, while a deprecated type whose specification no longer satisfies the criterion enters the contradiction state of Section 3.5. The Notes field SHOULD reference the superseding specification or document the reason for withdrawal. Verifiers MAY continue to support deprecated types for backward compatibility but SHOULD log their use distinctly to surface candidates for migration.</t>

<t>A type's Status field is updated by the working group as the type's specification matures, by the same Expert Review process specified in Section 8.2. A status transition MUST NOT change a registered type's field-scope classifications (per Section 4.2) or its distinguishing field (per Section 5.4); changes to either are working-group revisions of the type's specification, not administrative status updates.</t>

</section>
<section anchor="updates-to-this-document"><name>Updates to This Document</name>

<t>Future revisions of this document that change the registry structure, the registration policy, or the Expert Review criteria are working-group revisions and MUST be processed by the working group through the same procedures that produced the current document. Editorial revisions that do not change the registry's substantive structure are patch-level revisions per Section 6.5.</t>

<t>A future revision that adds a new scope category to Section 4.2.3 implicitly affects the Expert Review criteria of Section 8.3 (criterion 4 is updated to include the new category). Such a revision MUST update Section 8.3 explicitly so the criteria remain self-contained.</t>

</section>
</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">



<reference anchor="RFC2119">
  <front>
    <title>Key words for use in RFCs to Indicate Requirement Levels</title>
    <author fullname="S. Bradner" initials="S." surname="Bradner"/>
    <date month="March" year="1997"/>
    <abstract>
      <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="2119"/>
  <seriesInfo name="DOI" value="10.17487/RFC2119"/>
</reference>
<reference anchor="RFC8174">
  <front>
    <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <date month="May" year="2017"/>
    <abstract>
      <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="8174"/>
  <seriesInfo name="DOI" value="10.17487/RFC8174"/>
</reference>
<reference anchor="RFC8126">
  <front>
    <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
    <author fullname="M. Cotton" initials="M." surname="Cotton"/>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <author fullname="T. Narten" initials="T." surname="Narten"/>
    <date month="June" year="2017"/>
    <abstract>
      <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
      <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
      <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="26"/>
  <seriesInfo name="RFC" value="8126"/>
  <seriesInfo name="DOI" value="10.17487/RFC8126"/>
</reference>

<reference anchor="VI-CONSTRAINTS" target="https://verifiableintent.dev/spec/constraints/">
  <front>
    <title>Verifiable Intent — Constraint Type Definitions and Validation Rules</title>
    <author >
      <organization>Verifiable Intent Working Group</organization>
    </author>
    <date year="2026" month="February"/>
  </front>
  <seriesInfo name="Internet-Draft" value="v0.1-draft"/>
</reference>
<reference anchor="VI-CREDENTIAL-FORMAT" target="https://verifiableintent.dev/spec/credential-format/">
  <front>
    <title>Verifiable Intent — Credential Format Specification</title>
    <author >
      <organization>Verifiable Intent Working Group</organization>
    </author>
    <date year="2026" month="February"/>
  </front>
  <seriesInfo name="Internet-Draft" value="v0.1-draft"/>
</reference>


    </references>

    <references title='Informative References' anchor="sec-informative-references">



<reference anchor="RFC1918">
  <front>
    <title>Address Allocation for Private Internets</title>
    <author fullname="Y. Rekhter" initials="Y." surname="Rekhter"/>
    <author fullname="B. Moskowitz" initials="B." surname="Moskowitz"/>
    <author fullname="D. Karrenberg" initials="D." surname="Karrenberg"/>
    <author fullname="G. J. de Groot" initials="G. J." surname="de Groot"/>
    <author fullname="E. Lear" initials="E." surname="Lear"/>
    <date month="February" year="1996"/>
    <abstract>
      <t>This document describes address allocation for private internets. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="5"/>
  <seriesInfo name="RFC" value="1918"/>
  <seriesInfo name="DOI" value="10.17487/RFC1918"/>
</reference>
<reference anchor="RFC7646">
  <front>
    <title>Definition and Use of DNSSEC Negative Trust Anchors</title>
    <author fullname="P. Ebersman" initials="P." surname="Ebersman"/>
    <author fullname="W. Kumari" initials="W." surname="Kumari"/>
    <author fullname="C. Griffiths" initials="C." surname="Griffiths"/>
    <author fullname="J. Livingood" initials="J." surname="Livingood"/>
    <author fullname="R. Weber" initials="R." surname="Weber"/>
    <date month="September" year="2015"/>
    <abstract>
      <t>DNS Security Extensions (DNSSEC) is now entering widespread deployment. However, domain signing tools and processes are not yet as mature and reliable as those for non-DNSSEC-related domain administration tools and processes. This document defines Negative Trust Anchors (NTAs), which can be used to mitigate DNSSEC validation failures by disabling DNSSEC validation at specified domains.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7646"/>
  <seriesInfo name="DOI" value="10.17487/RFC7646"/>
</reference>
<reference anchor="RFC7517">
  <front>
    <title>JSON Web Key (JWK)</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <date month="May" year="2015"/>
    <abstract>
      <t>A JSON Web Key (JWK) is a JavaScript Object Notation (JSON) data structure that represents a cryptographic key. This specification also defines a JWK Set JSON data structure that represents a set of JWKs. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and IANA registries established by that specification.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7517"/>
  <seriesInfo name="DOI" value="10.17487/RFC7517"/>
</reference>
<reference anchor="RFC7800">
  <front>
    <title>Proof-of-Possession Key Semantics for JSON Web Tokens (JWTs)</title>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <author fullname="J. Bradley" initials="J." surname="Bradley"/>
    <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
    <date month="April" year="2016"/>
    <abstract>
      <t>This specification describes how to declare in a JSON Web Token (JWT) that the presenter of the JWT possesses a particular proof-of- possession key and how the recipient can cryptographically confirm proof of possession of the key by the presenter. Being able to prove possession of a key is also sometimes described as the presenter being a holder-of-key.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7800"/>
  <seriesInfo name="DOI" value="10.17487/RFC7800"/>
</reference>
<reference anchor="RFC8615">
  <front>
    <title>Well-Known Uniform Resource Identifiers (URIs)</title>
    <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
    <date month="May" year="2019"/>
    <abstract>
      <t>This memo defines a path prefix for "well-known locations", "/.well-known/", in selected Uniform Resource Identifier (URI) schemes.</t>
      <t>In doing so, it obsoletes RFC 5785 and updates the URI schemes defined in RFC 7230 to reserve that space. It also updates RFC 7595 to track URI schemes that support well-known URIs in their registry.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8615"/>
  <seriesInfo name="DOI" value="10.17487/RFC8615"/>
</reference>
<reference anchor="RFC8725">
  <front>
    <title>JSON Web Token Best Current Practices</title>
    <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
    <author fullname="D. Hardt" initials="D." surname="Hardt"/>
    <author fullname="M. Jones" initials="M." surname="Jones"/>
    <date month="February" year="2020"/>
    <abstract>
      <t>JSON Web Tokens, also known as JWTs, are URL-safe JSON-based security tokens that contain a set of claims that can be signed and/or encrypted. JWTs are being widely used and deployed as a simple security token format in numerous protocols and applications, both in the area of digital identity and in other application areas. This Best Current Practices document updates RFC 7519 to provide actionable guidance leading to secure implementation and deployment of JWTs.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="225"/>
  <seriesInfo name="RFC" value="8725"/>
  <seriesInfo name="DOI" value="10.17487/RFC8725"/>
</reference>
<reference anchor="RFC8914">
  <front>
    <title>Extended DNS Errors</title>
    <author fullname="W. Kumari" initials="W." surname="Kumari"/>
    <author fullname="E. Hunt" initials="E." surname="Hunt"/>
    <author fullname="R. Arends" initials="R." surname="Arends"/>
    <author fullname="W. Hardaker" initials="W." surname="Hardaker"/>
    <author fullname="D. Lawrence" initials="D." surname="Lawrence"/>
    <date month="October" year="2020"/>
    <abstract>
      <t>This document defines an extensible method to return additional information about the cause of DNS errors. Though created primarily to extend SERVFAIL to provide additional information about the cause of DNS and DNSSEC failures, the Extended DNS Errors option defined in this document allows all response types to contain extended error information. Extended DNS Error information does not change the processing of RCODEs.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8914"/>
  <seriesInfo name="DOI" value="10.17487/RFC8914"/>
</reference>
<reference anchor="RFC9421">
  <front>
    <title>HTTP Message Signatures</title>
    <author fullname="A. Backman" initials="A." role="editor" surname="Backman"/>
    <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
    <author fullname="M. Sporny" initials="M." surname="Sporny"/>
    <date month="February" year="2024"/>
    <abstract>
      <t>This document describes a mechanism for creating, encoding, and verifying digital signatures or message authentication codes over components of an HTTP message. This mechanism supports use cases where the full HTTP message may not be known to the signer and where the message may be transformed (e.g., by intermediaries) before reaching the verifier. This document also describes a means for requesting that a signature be applied to a subsequent HTTP message in an ongoing HTTP exchange.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9421"/>
  <seriesInfo name="DOI" value="10.17487/RFC9421"/>
</reference>
<reference anchor="RFC6982">
  <front>
    <title>Improving Awareness of Running Code: The Implementation Status Section</title>
    <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
    <author fullname="A. Farrel" initials="A." surname="Farrel"/>
    <date month="July" year="2013"/>
    <abstract>
      <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
      <t>The process in this document is offered as an experiment. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. The authors of this document intend to collate experiences with this experiment and to report them to the community.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6982"/>
  <seriesInfo name="DOI" value="10.17487/RFC6982"/>
</reference>

<reference anchor="RFC-SD-JWT" target="https://datatracker.ietf.org/doc/draft-ietf-oauth-selective-disclosure-jwt/">
  <front>
    <title>Selective Disclosure for JWTs (SD-JWT)</title>
    <author initials="D." surname="Fett" fullname="D. Fett">
      <organization></organization>
    </author>
    <author initials="K." surname="Yasuda" fullname="K. Yasuda">
      <organization></organization>
    </author>
    <author initials="B." surname="Campbell" fullname="B. Campbell">
      <organization></organization>
    </author>
    <date year="2025"/>
  </front>
  <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-selective-disclosure-jwt-22"/>
</reference>
<reference anchor="ENVIRONMENT-MARKET-STATE" >
  <front>
    <title>Verifiable Intent — External State Attestation Constraint Proposal (environment.market_state)</title>
    <author >
      <organization>Headless Oracle Project</organization>
    </author>
    <date year="2026"/>
  </front>
  <seriesInfo name="Work in Progress" value="v0.5.11-draft"/>
</reference>
<reference anchor="ENVIRONMENT-WALLET-STATE" >
  <front>
    <title>Verifiable Intent — Wallet State Attestation Constraint Proposal (environment.wallet_state)</title>
    <author initials="D." surname="Borthwick" fullname="D. Borthwick">
      <organization></organization>
    </author>
    <date year="2026"/>
  </front>
  <seriesInfo name="Work in Progress" value="v0.6.5-draft"/>
</reference>


    </references>

</references>


<?line 650?>

<section anchor="reference-type-specifications"><name>Reference Type Specifications</name>

<t>This appendix records the constraint type specifications that have proposed registration in the environment.* namespace at the time of this document's publication. The appendix is informative, per <xref target="RFC6982"></xref>.</t>

<t>This appendix is intended to be removed by the RFC Editor before final publication, per <xref target="RFC6982"></xref>, Section 2. The version-control history of this document retains the appendix permanently as evidence of the family's running-code state during working-group review.</t>

<section anchor="environmentmarketstate"><name>environment.market_state</name>

<t><xref target="ENVIRONMENT-MARKET-STATE"></xref> proposes environment.market_state as a member of the environment.* family. The type addresses market-session state at a named exchange, with an attestation issued by an exchange-state oracle and verified against an <xref target="RFC8615"></xref> well-known key registry.</t>

<t>The reference implementation associated with <xref target="ENVIRONMENT-MARKET-STATE"></xref> is documented in that specification per <xref target="RFC6982"></xref> in its own Implementation Status appendix; this document does not duplicate that content.</t>

<t>Conformance to this document by <xref target="ENVIRONMENT-MARKET-STATE"></xref> at v0.5.11-draft covers Sections 3.1 through 3.4 (family definition and addition rules), Section 4.1 (family-wide fields), Section 4.2 (field-scope taxonomy), Section 4.3 (algorithm-agility framework), Section 5 (family composition, including conjunction, completeness, and per-member diagnostic output), Section 6 (register discipline), and the applicable subsections of Section 7 (Security Considerations).</t>

</section>
<section anchor="environmentwalletstate"><name>environment.wallet_state</name>

<t><xref target="ENVIRONMENT-WALLET-STATE"></xref> proposes environment.wallet_state as a member of the environment.* family. The type addresses on-chain wallet state under a specified condition predicate, with an attestation issued by an on-chain-state attestation issuer and verified against an <xref target="RFC7517"></xref> JWKS.</t>

<t>The reference implementation associated with <xref target="ENVIRONMENT-WALLET-STATE"></xref> is documented in that specification per <xref target="RFC6982"></xref> in its own Implementation Status appendix; this document does not duplicate that content.</t>

<t>Conformance to this document by <xref target="ENVIRONMENT-WALLET-STATE"></xref> at v0.6.5-draft covers Sections 3.1 through 3.4 (family definition and addition rules), Section 4.1 (family-wide fields), Section 4.2 (field-scope taxonomy), Section 4.3 (algorithm-agility framework), Section 5 (family composition, including conjunction, completeness, and per-member diagnostic output), Section 6 (register discipline), and the applicable subsections of Section 7 (Security Considerations). <xref target="ENVIRONMENT-WALLET-STATE"></xref> additionally specifies cross-chain temporal consistency at its own Section 6.9; the family-wide implications of cross-chain temporal consistency are out of this document's scope and are addressed at the type-specification layer.</t>

</section>
<section anchor="disclaimer"><name>Disclaimer</name>

<t>Listing in this appendix does not imply endorsement of either type specification by the editors of this document, by the working group, or by IANA. Each type specification is independently reviewed under the registration process of Section 8. Verifiers MUST independently verify attestations from any implementation per the verification algorithm of the implementation's type specification.</t>

</section>
</section>
<section anchor="reserved"><name>Reserved</name>

<t>This appendix is reserved for a future revision of this document. Per Section 6.7 Q3, broader family-charter material — provider neutrality, peer-author coordination discipline, patch-level versioning conventions, lockstep commit patterns across sibling specifications, and a catalog of register-discipline instances across registered family members — may be consolidated under this appendix in a future revision, may be relocated to a separate appendix, or may be distributed across the relevant specification sections. The choice is a working-group decision the current revision does not foreclose.</t>

<t>This appendix is informative.</t>

</section>
<section numbered="false" anchor="acknowledgments"><name>Acknowledgments</name>

<t>The authors thank the Verifiable Intent Working Group for the host specification on which this family-definition document depends. The authors additionally acknowledge the contributors and reviewers of <xref target="ENVIRONMENT-MARKET-STATE"></xref> and <xref target="ENVIRONMENT-WALLET-STATE"></xref>, whose parallel review work converged the family-wide vocabulary, composition discipline, and register practices that this document formalises.</t>

</section>


  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA+29+3Ijx5U3+D+foqL9R5MOFCSyL5LY++18dHdrTE9f5CYl
hcOjsAtAgSx1AQVXFciGNzZiH2KfcJ9kzzXzZFYWiJZk727ExkzIbKCQlZeT
535+J8/zo7vz7MnRopmvi1V5ni3aYtnns6btb++r+cd81ZWzcv3PKi/Xd1Xb
rFflus+7vujL/Msvj/qqr+FHP5RttayKWV1ml+sensj+r//j/8zML6a/z142
665viwq+/LZYVfXuqJjN2hLeHjx3NIehb5p2d55V62Vz1G1nq6rrqmbd7zYl
frgoNyX8Z90fVZv2POvbbdefffnlN1+eHRVtWZxnV+V821b97ui+aT/etM12
cw7Tcj/LrtyQRx/LHTy0OD/Ksjy786uoaBX06dzPe8nzxk+LGxyp2Pa3TVv9
s+hxMPzcrCWjXeKn+77Ef+FT/Bt+I2/5q2Z7Uxdd9gfddPguy5r2BqfdbVdl
e/HdJX1WroqqhjPiH/zPir9dNYuyns6bFT0DSz/Pbvt+051/8UXyiTnszXn2
rrzPXhbroljTh215A7M7z15e8zPNdt3jIXx/dWGm+raa3xZlnb0VqvAz/WNZ
LOqy67L3bTGvSztdPMf/Odv15Rxpqy27bd136fneyigNDRLN+G0FxLlehPO7
amA/s4tlW82LowVs+Hl29uXZ8/zLZ/np6dG6aVew7Xcl7veHb1+enZ5+I39+
ffrVU/fn2XP884fL/OX7d1fXHy4u311fndOL9lK4oelroM7sVbms1hUec5fB
TLMfirpa0LFnH7awLhrRTvKMPulg8LLDbeJ3ZvSOdl32+SvcsvPs7svpaU5X
kydVtDdl77fNUy4T7nRR3n3Rbcr5F556uy/op5783NEN1/YjXJxqfZP9J14e
2ZgPr1+9fnd9efEm//b9h7cX14dsT1vihauKOvuWDiK7gjnBg3O9MP/u3XAT
ypc0oV+8Jzi9kLROvzn9Wv786vnT5/rns9Ov9M+vv/xSCe756TP986sz9+c3
p0qR3zw9O5U/n3/z9Zn8mV+9yv/0Y7jzV2VdznEa2auqm9dNt23LDOaWwYNd
dsy/OAm3+tmB+8yyoCr7Zd7gHuWdvixfuJflP9/3+dlZ8iTgjQVQ3/xj2U5x
mCns7Rcgar44eOTUATm+Oc2+Lfs++vS/ptlfim67KKLP/zAFdrfazMq6hm9e
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
pPJV4RL5LGalJIOqBqAF3B0v0mT6ZqbAZzTLFx0ie2CdaYRy0KgcX3lIVRCY
SWCx6/LC4NZndUPNjn3++ekJqMHVJyzaAwvmC+p1rJlS9rmzk8/uoWp//uRk
f0dV++zTkxDazwAruuof8/izE093B3detQM8P5lqU0+3g1e6g/trBwu77Rhw
0bh5WBHqElJow5KImg+mx6oa5XqSFJxacW1ycQQuM7dQshTpMX5iBTBcY8O6
psXkLqYR1yoXJ7emQN0ca6JY12YlCZ0BcoSYT4B2V8vdftjycjdDvLdVsinQ
fnt9DL1zQBJdNSMqjYgbj2W96ynluultwas73T3YmX6DrGA/oOw76tVnI6Pp
Dn2agyS4hwZllHEj9wONKsSobEIn6LJ0k7/Dm/wtjHd09CPCQTbrPUa+oy8J
TXBuiV63qvbFoRzjkRb3Q7Kmh7W9BU/OjW0ry+db3ecQZ0czcW138iCTTkob
bD6dT/0tfJ9DmigRDjXT0lwJcg9KAUN6DKoNFOlEg2hnMQb79EPJ550pTOA+
5UFLMDM552M2N9jgLo8M4LHvXF1mMC7pLb5cCcmO83zJZJMzEOBnLnZyLRtM
Qc/anxezJX8040STRq8D4fDaCYf/VOHw0giGPez0htK0FONackvW80TWiu1/
E4NiC7NI9ajgRBluEV/Graz94vblb46ciIxoXWeIBToBEwH/27TaqZavFR21
GB3hynTYh4VCIAsInpA2GTdeTGLQIRnJ1DWzIVwKTj9i3yXilSrfwUyfGWaF
cYs1TrGtHDJJKN1tb+Ar7F6Qz6t2vq2CvpF7y6AppKcQ0NrKnkVFUIOJ/Zf6
xHTVvNCHKWt+xqWWHrJbgn0jOaTUs3hN2SHNPU6tLFYuY8vjnInAK9FWXM/L
kPU9oMlIwB71TznwsY30PaPCdGnOHHvzJPc3Iq5SJWhfx2I5e9/Wv/IQ1DPp
SU65reSwjAe50BZLPjnaU89v3llJmiLyG4l3CeF1icxXPXVxjexZCpukRW1X
wQU0Qxqiyr7Am+Z3S0tfpBGWlBHTwIM81DBDwR5eQCB5cPTeED73J/XYg+Ry
wkJx11SKjMgmsJ7HsBcRR9Lo2gv0hplGOKwkPDhiTJAxMQtCk1ZGgj1gg9v9
EIpBCM45XmHMbjjFxvjv358IkyrUWxtx6//2BAF3h5LwQjPZ1WsEogPBEJW/
UoBr2QSWSHg8/IPuI2KL6MOlxH/moB6K80jsDhKyLG5hsxBYbelOinMlKd2t
2YqihiFvRnbNXvkZvKeth22mhLj9YoopXQ8SDTAqJ1hT6fQ6Pn4GyuQIKL1k
4K9GoYqGUrHpSp+8k7yGVIbd+JgDUC6MNfcv4WlMZSHRxxIFo7AzZoiaskjR
8Og6tG2xo4SDTx4pmLUSswfGrkkhDXQ8zETx8zTjXiDhzav5mvPrwvNS8wiZ
ElDIzPQsGJTrEk8TayqB5+N2NQL2MSqr9hzJbrcwQo4RDkqhNvjGQVOQ9L4w
2PEA7tLtA9fxFC5FlHHJEYpiIcX2zOCC+8HLg3GBekoDCOXSeeswS2IMcNNY
fp4HHtSo1QLTq5/S1BqHgOvd6CQmPqdCK2ENiiixvH3zjwBDU6ZMxPnckMEJ
JXKTOPtAzD+t55TWAifazEE9g6ksjzlV1H1WgkfVGlg8SUbmEx3KhAjg05r2
QV2OKkfFdlFpZZBXhKiE6CJQzXfB9divNao+fsBtYs3bfOt+w/dVoDcp+XGS
kflE3JvbTdLkMSW4xaRArnuGM2X8jriFW4ikJ7y7cDVtt9Tv7CXzV83+GjjD
qIaob5tdp9Ycvly9U5EHgOGuPMbV+K5pGvUA3udBGKKh5S8oanu0PvIDTELV
RCKiqJk4sTjsn/PQdFjB0VXwfbAIQmC65nsAkNjAjMpoolcchF0kILTO1xgE
WICTeZNkXOc5LgT7DkwNjHlS2ap8tIEdIoJcIaqHlLuemEPzEWyL4hT0w5Ly
FK5VUwAKg2xSUDwTEXEIogyhZvQDPKS2mJtWhcU4zJh6jbQtVqifcuFDCJcS
TsUWPjIrRLVtbOvVKdlFEzJPdI1XjaMd8SkaHuBKg6y+YZgALHWm2VfVq2fz
8wGrUghmFJv5jGwuSl1vpRNbhojnrcFRM3BOTg9M47GJpx4fGGbZpYKBLhAj
v3LLbyPsvVA95zY4MQ4Q244iQdW1Br91g8LhlqsN+zB2xl/i6g8Q9E9vnbem
lSuys997ZTsMb2RaPIbYTQqBV7SzCs6EkFJBAy3aG1pmh3GHvMQOfBIHqqiD
OhdFNj1XoaM14HQe8XPrCJK4E3a4SHq7gOTutX+8yaql1GE6q1kjbb7vm7ZO
VGv6e+/KE/HSl4jpiAA6/+E+kyLDJdXD/wc7CgTegkCDqKqP8Uml10nGvU6o
TcZ/ZH8wol3nJ1AyfuYT0SV0XRrsKjrreedcPdCs9INzscCRjhv2kcnmgZrR
aCaxR3cOyxRd4COw9R3besScBneEbfZ19v4D7ylvCQ5Ku/LIu7kIoUs82lQx
YrtgG1Yxzf6ASfyUqYb7pOWHwM0rhBFAWWDowoYfirprSOEkYyxshPK4S9/d
YxNqOHHArOPRkr29zqQxCy3YI5QOgyACrhuorTow5UNigIJGPCREMYnzpirX
a4xVKznaFxgVq0a/ngT5gA+1vNHBkj8wi/fvC4uegqggE0nLooOjWHGbrjjl
03Tl0hSrSjtEaGsuvsG9CygqYJxSRpIgnKXje2MQH3beXddXxzu+KLlXk8Qt
42OUZ+ExpO5hmLneUqIeqWKWSTkdq4vQcHS8dPzG1QvYknnx04xfnZGx7qPk
IaxMpOkgxiNeTL82m3A7H5wmqm5Yddv11sPLsBHxo211c9sPZA4zJsvkZYvT
AW9rRIUtLVyeqDPt6Sjq5gZLOR42HrTlEJkQ7EUhGwavW82LYnI0+zZoyWdc
4QlbP/sOLd/2bs8s+BXsGk7YuGjT3AkfSvlL2dScSFk1DjWcRsYNslU9kpQn
yYzw3XvIs+kONWz/uihn25sbYSwg4tHTSwz9ULO6qNE54/IJWHtzSW5xr3Ww
MkGBoFzssI7Npiw0gUVt1UtPMareSgVBoAFqxqaiZVa9gcLLa6DYGzVgED1Z
uhS8cpPei1430jb4w7cvM+wyjVU+wPkW+3racz57kL7nfGmDjl6xWOM7yWVv
Y91jpQzHz9T4cMpIYefFx50ETDu2tQno8RZsGRwZebdzkbhXhf6Qh9uuhJ3b
JDrlWtiaXiVR8EqCFubA44AlMQ4shFzLB4ScagH/e1LY1GXD6T++lw21LFN1
SHLE5yXbiYrbnWQmj+0WE6YFM2Ax07RzgPPVIxw0N240jcV5FkdH74aHRcUM
Q4I7Rltl4rzYk+zD6z9/f/nh9atJdvXHizdv5H/4O05O1v/V51++f/v29btX
+BP0gwcfvL34yyR7/9315ft3F29OiIAxe77YVH2Bjg5MUHe91olsTLt1bJyA
WQV2zdRRVNNXZ+VtcVc1W4wHJ5bs76B7kPd+CGSvsL0u86jRBA58H2s9L0TN
SJwrwUPAzYz3N15wUDXHOUzIT9Ed6mVntWKvQxFKO3yQe5OY/ciONQw4MQ3K
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

-->

</rfc>

