<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.38 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-borthwick-wallet-state-attestation-00" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.0 -->
  <front>
    <title abbrev="Wallet State Attestation">Wallet State Attestation: Signed Booleans about On-Chain State</title>
    <seriesInfo name="Internet-Draft" value="draft-borthwick-wallet-state-attestation-00"/>
    <author initials="D." surname="Borthwick" fullname="Douglas Borthwick">
      <organization>InsumerAPI</organization>
      <address>
        <postal>
          <street/>
          <city>New Canaan</city>
          <region>CT</region>
          <code/>
          <country>US</country>
        </postal>
        <email>douglas@insumermodel.com</email>
      </address>
    </author>
    <date year="2026" month="May" day="13"/>
    <keyword>wallet</keyword>
    <keyword>attestation</keyword>
    <keyword>blockchain</keyword>
    <keyword>JWKS</keyword>
    <keyword>JWT</keyword>
    <keyword>condition-based access</keyword>
    <abstract>
      <?line 80?>

<t>This document defines Wallet State Attestation: a primitive in which an issuer reads on-chain state for a wallet address, evaluates one or more operator-defined conditions, and returns a cryptographically signed boolean (or structured fact profile) that any verifier can check offline using a published JWKS endpoint. The primitive enables condition-based access decisions without identity presentation, credential exchange, or trust in the issuer at runtime. This document describes the request and response surface, the signing algorithm posture, the JWKS discovery pattern, and the security and privacy considerations of the primitive. It does not define a new wire protocol; rather, it profiles existing IETF building blocks (JWT, JWKS, JOSE) for the wallet-state-attestation use case.</t>
    </abstract>
  </front>
  <middle>
    <?line 84?>

<section anchor="introduction">
      <name>Introduction</name>
      <section anchor="motivation">
        <name>Motivation</name>
        <t>Existing access-control primitives --- OAuth 2.0 <xref target="RFC6749"/>, OIDC <xref target="OIDC-CORE"/>, SAML, and the broader credential-presentation family --- answer the question "who is this user?" by accepting a presented artifact (token, assertion, credential) from a holder.</t>
        <t>Wallet State Attestation answers a different question: "does this wallet currently satisfy a specified condition over on-chain state?" The holder presents nothing. An issuer reads canonical on-chain state for a specified wallet address, evaluates the operator-defined condition, and returns a signed boolean. Verifiers check the signature offline using a published JWKS endpoint.</t>
        <t>This is a distinct primitive from identity verification, credential issuance, or holder-presentation flows. It belongs in a parallel category --- what this document terms wallet-state-attestation --- alongside, not within, the existing credential-presentation stack.</t>
      </section>
      <section anchor="position-relative-to-identity-primitives">
        <name>Position Relative to Identity Primitives</name>
        <t>OAuth and OIDC prove who a subject is. Wallet State Attestation proves what a wallet currently holds, owns, or has been attested to in on-chain state.</t>
        <t>These are complementary, not competing. A system may use OAuth to authenticate a human or service principal, then call a wallet-state attestation issuer to verify that a wallet associated with that principal satisfies an on-chain condition. The two primitives operate on different subjects (identity vs. wallet state) and answer different questions.</t>
      </section>
      <section anchor="position-relative-to-credentials">
        <name>Position Relative to Credentials</name>
        <t>Wallet State Attestation is <strong>not</strong> a Verifiable Credential (W3C VC) <xref target="VC-DATA-MODEL"/>, an mDoc / ISO/IEC 18013-5 mobile document, an eIDAS attestation, a SAML assertion, or an OIDC ID token. These are credential-presentation primitives: an authority issues a credential, the holder presents it, the verifier checks the issuer's signature over the holder's presented bytes.</t>
        <t>Wallet State Attestation does not involve credential presentation. The holder does not present anything. The issuer pulls public on-chain state directly, evaluates a condition, and signs the result. The signed payload is an observation about external state, not a credential about the holder's identity.</t>
        <t>This document treats the credential / VC / eIDAS / SAML stack as adjacent prior art for explicit non-conflation purposes. See <xref target="whatisnot"/> ("What This Is Not") for the full enumeration.</t>
      </section>
      <section anchor="position-relative-to-other-documents">
        <name>Position Relative to Other Documents</name>
        <t>Wallet State Attestation is referenced or adopted in the following public artifacts (all informative; see References):</t>
        <ul spacing="normal">
          <li>
            <t><strong>Knowledge Context Protocol (KCP) RFC-0004</strong> <xref target="KCP-0004"/> --- defines an <tt>attestation_url</tt> / <tt>attestation_jwks</tt> mechanism in KCP YAML manifests for verifying agent eligibility before access. The pattern is mechanism-agnostic; wallet state attestation is one valid implementation shape.</t>
          </li>
          <li>
            <t><strong>Verifiable Intent (VI) <tt>environment.*</tt> constraint family</strong> <xref target="VI-ENVIRONMENT"/> --- defines an environmental constraint family for autonomous-mode (L3) execution in agent commerce, establishing family-wide vocabulary (<tt>attestation_url</tt>, <tt>max_attestation_age</tt>), composition rules, and IANA registry mechanics for individual constraint types. The wallet-state-attestation primitive is the reference implementation shape used by VI's <tt>environment.wallet_state</tt> constraint type.</t>
          </li>
          <li>
            <t><strong>Agent Governance Vocabulary</strong> <xref target="AGV"/> --- defines <tt>wallet_state</tt> as a foundation-layer signal type with named production issuers.</t>
          </li>
          <li>
            <t><strong>Open Agent Trust Registry (OATR)</strong> <xref target="OATR"/> --- third-party trust registry of attestation issuers, including wallet-state-attestation issuers.</t>
          </li>
          <li>
            <t><strong>Draft ERC-8210 Agent Assurance Protocol</strong> <xref target="ERC-8210"/> --- proposed IRiskHook verification taxonomy identifies wallet state attestation as the representative shape for pre-commitment eligibility verification (one of three categories in the verification framework, alongside post-hoc resolution evidence and behavioral reputation).</t>
          </li>
          <li>
            <t><strong>Universal Commerce Protocol (UCP) identity-linking</strong> <xref target="UCP-IDENTITY"/> --- wallet attestation acknowledged as a reserved extensibility point for future non-OAuth identity-mechanism types.</t>
          </li>
        </ul>
        <t>Wallet state attestation is <strong>not</strong> dependent on or normatively related to any of these documents. They are listed as evidence of adoption and as informative context for readers seeking to understand where the primitive is in use.</t>
      </section>
      <section anchor="use-cases">
        <name>Use Cases</name>
        <t>Common deployments of wallet state attestation include:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Condition-based access</strong> --- gating API access, content access, or commerce flows on whether a specified wallet holds a specified token, NFT, or attested status at request time, without exposing actual balance or transaction history.</t>
          </li>
          <li>
            <t><strong>Agent-to-agent trust verification</strong> --- autonomous agents verifying counterparty wallet state (holdings, attested compliance status, etc.) before transaction execution.</t>
          </li>
          <li>
            <t><strong>Compliance gating</strong> --- verifying on-chain compliance attestations (KYC status from external attestors, country attestations, sanctions clearance) against a wallet without handling personally-identifiable information.</t>
          </li>
          <li>
            <t><strong>Pre-commitment eligibility</strong> --- agent commerce protocols verifying that an agent wallet satisfies pre-conditions (sufficient stake, sufficient balance, attested status) before contract commitment.</t>
          </li>
        </ul>
        <t>The primitive is read-only and does not interact with chain state beyond observation. Implementations issue attestations on demand; attestations are short-lived and expire (typically thirty minutes; see <xref target="response"/>).</t>
      </section>
    </section>
    <section anchor="terminology">
      <name>Terminology</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>The following terms are used throughout this document:</t>
      <t><strong>Issuer</strong> --- The party that reads on-chain state, evaluates conditions, and signs the resulting attestation. The issuer is the sole signer of attestations within its declared scope (see <xref target="single-issuer"/>).</t>
      <t><strong>Holder</strong> --- The wallet whose on-chain state is observed. The holder does not present anything in this primitive; the issuer reads chain state directly. The holder need not be aware of any individual attestation.</t>
      <t><strong>Verifier</strong> --- The party that consumes the attestation, checks the signature against the issuer's published JWKS, and acts on the result.</t>
      <t><strong>Condition</strong> --- An operator-defined predicate over wallet state. Examples include: "balance of token T at address A is greater than or equal to value V", "wallet A owns NFT N", "wallet A has a valid on-chain attestation of type T from attestor X".</t>
      <t><strong>Attestation</strong> --- The signed payload returned by the issuer in response to a request. Distinguish explicitly from a credential (which is presented by a holder), from a JWT claim in the credential sense (which carries identity information), and from a VC (which is issued by an authority over a holder's presented identity). An attestation in this document's sense is an issuer-signed observation about public on-chain state.</t>
      <t><strong>Fact profile</strong> --- A multi-condition, multi-dimension attestation payload consisting of a structured collection of independently-signed condition results. Used for richer wallet-state queries where a single boolean is insufficient. Distinguish explicitly from a "trust score" or "reputation rating" --- a fact profile contains observed evidence organized by dimension, not an opinion or aggregate.</t>
      <t><strong>Block reference</strong> --- Chain-specific freshness evidence included in every attestation. EVM chains MUST include block number and block timestamp. XRPL MUST include ledger index and ledger hash. Solana MUST include slot. Bitcoin MUST include block height and block hash (chain-tip evidence; see <xref target="merkleproofs"/> for Bitcoin-specific considerations).</t>
      <t><strong>Condition hash</strong> --- A SHA-256 hash of the JSON serialization of the evaluated condition, with top-level keys sorted in lexical order, represented as a <tt>0x</tt>-prefixed lowercase hexadecimal string, included in the response for tamper-evidence over the condition itself.</t>
    </section>
    <section anchor="architecture-overview">
      <name>Architecture Overview</name>
      <t>The primitive operates as a three-step pipeline: <strong>read -&gt; evaluate -&gt; sign</strong>.</t>
      <ol spacing="normal" type="1"><li>
          <t>The issuer receives a request specifying a wallet address, a chain identifier, and one or more conditions.</t>
        </li>
        <li>
          <t>The issuer reads canonical on-chain state for the specified wallet at the current chain tip (or, where supported, at a specified block).</t>
        </li>
        <li>
          <t>The issuer evaluates each condition against the observed state.</t>
        </li>
        <li>
          <t>The issuer signs the result and returns the attestation.</t>
        </li>
      </ol>
      <t>The attestation is <strong>deterministic</strong>: the same inputs evaluated against the same chain state at the same block produce the same output. A verifier can independently re-derive the attestation by reading the same chain state and applying the same condition logic.</t>
      <t>The primitive is <strong>read-only</strong>: the issuer does not modify chain state, does not request a wallet signature from the holder, and does not custody any assets. The issuer is a passive reader of public chain state.</t>
      <t>For each chain referenced in the request, the issuer captures a chain-tip reference (block number and block timestamp for EVM chains; ledger index and, where available, ledger hash for XRPL; slot for Solana; block height and block hash for Bitcoin) at attestation time. The chain-tip reference is carried inside each per-condition result and is therefore covered by the issuer's signature. If a required chain observation cannot be acquired, the issuer MUST NOT sign the attestation; see <xref target="refuse"/>.</t>
      <t>This document does not specify how the issuer reads chain state (RPC routing, indexer choice, archive node selection), how it manages signing keys (HSM, software, federated), or how it handles chain-specific edge cases (reorgs, finality, data availability). These are implementation concerns, deliberately left out of scope.</t>
    </section>
    <section anchor="request-shape">
      <name>Request Shape</name>
      <t>A request is a JSON object with the following structure:</t>
      <sourcecode type="json"><![CDATA[
{
  "wallet": "<address>",
  "chainId": "<chain identifier>",
  "conditions": [
    {
      "type": "<condition type>",
      "...": "<condition-specific parameters>"
    }
  ],
  "options": {
    "format": "json",
    "proof": "none"
  }
}
]]></sourcecode>
      <t><strong><tt>wallet</tt></strong> --- A chain-specific address string. EVM addresses use the standard 0x-prefixed hexadecimal form. Solana addresses use base58. XRPL addresses use the r-address format. Bitcoin addresses MAY use any standard format (P2PKH, P2SH, bech32 / SegWit, bech32m / Taproot). Implementations MAY accept the wallet in a chain-specific field (e.g., <tt>solanaWallet</tt>, <tt>xrplWallet</tt>, <tt>bitcoinWallet</tt>) when the address format is ambiguous.</t>
      <t><strong><tt>chainId</tt></strong> --- A chain identifier. EVM chains use a numeric chain identifier consistent with CAIP-2 <xref target="CAIP-2"/>, expressible as integer (e.g., <tt>1</tt> for Ethereum mainnet) or string. Non-EVM chains use a string identifier (<tt>solana</tt>, <tt>xrpl</tt>, <tt>bitcoin</tt>).</t>
      <t><strong><tt>conditions</tt></strong> --- A list of one or more condition objects. Each has a <tt>type</tt> field discriminating the condition category, and type-specific fields specifying the parameters of that category. This document does not enumerate all possible condition types. Common categories include token balance evaluation, NFT ownership evaluation, on-chain attestation reference (e.g., reference to an Ethereum Attestation Service entry), and identity-registry membership evaluation. Implementations MAY define additional condition types.</t>
      <t><strong><tt>options.format</tt></strong> --- Selects the response envelope. Values: <tt>"json"</tt> (default; raw JSON object) or <tt>"jwt"</tt> (RFC 7519 JWT token).</t>
      <t><strong><tt>options.proof</tt></strong> --- Requests an optional cryptographic proof layer. Values: <tt>"none"</tt> (default) or <tt>"merkle"</tt> (where supported by the underlying chain; returns <xref target="EIP-1186"/> Merkle storage proofs anchored to the block header).</t>
    </section>
    <section anchor="response">
      <name>Response Shape</name>
      <t>A response contains a signed attestation object together with the signature and key identifier. The signed attestation object has the following structure:</t>
      <sourcecode type="json"><![CDATA[
{
  "id": "<opaque attestation identifier>",
  "pass": true,
  "results": [
    {
      "condition": 0,
      "label": "<operator-provided label>",
      "type": "<condition type>",
      "chainId": "<chain identifier>",
      "met": true,
      "evaluatedCondition": { /* condition object */ },
      "conditionHash": "0x<sha256 of evaluatedCondition>",
      "blockNumber": "<chain-specific block reference>",
      "blockTimestamp": "<ISO 8601 timestamp>"
    }
  ],
  "attestedAt": "<ISO 8601 timestamp>"
}
]]></sourcecode>
      <t>The signature is computed over a JSON serialization of this object with field order <tt>id</tt>, <tt>pass</tt>, <tt>results</tt>, <tt>attestedAt</tt>. The signature, the key identifier (<tt>kid</tt>), expiry timestamp (<tt>expiresAt</tt>), and any deployment-specific wrappers are transmitted alongside the signed object but are NOT part of the signed bytes. A typical wire response carries the signed object plus these adjacent fields:</t>
      <sourcecode type="json"><![CDATA[
{
  "attestation": {
    /* signed object above */
    "expiresAt": "<ISO 8601 timestamp>"
  },
  "sig": "<base64 P1363 ECDSA signature>",
  "kid": "<key identifier for JWKS lookup>"
}
]]></sourcecode>
      <t>Field semantics (signed object):</t>
      <t><strong><tt>id</tt></strong> --- An opaque attestation identifier. Implementation-specific format. Useful for correlation and logging; not used for verification.</t>
      <t><strong><tt>pass</tt></strong> --- The aggregate result. Default semantics: logical AND of all per-condition <tt>met</tt> values. Operators MAY specify alternate combination logic in extensions.</t>
      <t><strong><tt>results</tt></strong> --- An array of per-condition result objects. Each MUST include the per-condition <tt>met</tt> boolean, the condition <tt>type</tt>, the verbatim <tt>evaluatedCondition</tt> (as it was evaluated, after any normalization), and the <tt>conditionHash</tt> (SHA-256 of the JSON serialization of <tt>evaluatedCondition</tt> with top-level keys sorted lexically). Each result MUST include chain-specific freshness evidence: <tt>blockNumber</tt> and <tt>blockTimestamp</tt> for EVM chains; <tt>ledgerIndex</tt> and (where available) <tt>ledgerHash</tt> for XRPL; <tt>slot</tt> for Solana; <tt>blockHeight</tt> and <tt>blockHash</tt> for Bitcoin. All such freshness fields are inside the signed <tt>results</tt> array and are therefore covered by the issuer's signature. Implementations MAY include additional informational fields (<tt>condition</tt> index, <tt>label</tt>, etc.) echoed from the request.</t>
      <t><strong><tt>attestedAt</tt></strong> --- ISO 8601 timestamp of when the attestation was signed.</t>
      <t>Field semantics (adjacent, unsigned):</t>
      <t><strong><tt>expiresAt</tt></strong> --- ISO 8601 timestamp of when the attestation expires. Verifiers MUST check expiry. Recommended default: thirty minutes after <tt>attestedAt</tt>. Implementations MAY use shorter expiries; longer expiries SHOULD be justified by the use case. <tt>expiresAt</tt> is transmitted with the attestation but is not part of the signed payload; verifiers concerned with tamper-evidence over the expiry SHOULD use the JWT format (<xref target="jwt"/>), where <tt>exp</tt> is a signed claim.</t>
      <t><strong><tt>kid</tt></strong> --- Key identifier (RFC 7517) for the public key used to sign this attestation. Verifiers use this to look up the appropriate public key in the issuer's JWKS. <tt>kid</tt> is transmitted alongside the signed payload but is not part of the signed bytes; verifiers identify the verification key by trying the issuer's published JWKS entries indexed by the transmitted <tt>kid</tt>. The JWT format embeds <tt>kid</tt> in the protected header where it is covered by the JWT signature.</t>
      <t><strong><tt>sig</tt></strong> --- The signature. Default: ECDSA P-256 signature over the JSON serialization of the signed object, in base64-encoded P1363 (raw R || S) format. See <xref target="signing"/>.</t>
      <t>The signature scope includes the <tt>evaluatedCondition</tt> and <tt>conditionHash</tt> fields nested inside <tt>results</tt>, ensuring the signature is tamper-evident over both the result and the condition that produced it.</t>
    </section>
    <section anchor="signing">
      <name>Signing Algorithm</name>
      <t>The default signing algorithm is <strong>ECDSA with P-256 curve and SHA-256 (ES256)</strong> per <xref target="RFC7518"/>.</t>
      <t>The signed bytes are the JSON serialization of the signed object (<tt>id</tt>, <tt>pass</tt>, <tt>results</tt>, <tt>attestedAt</tt>) using deterministic field-order serialization in that order. Verifiers MUST verify the signature against the exact bytes the issuer produced; verifiers reconstructing the preimage from a parsed JSON object MUST preserve the original field order. Issuers and verifiers SHOULD treat the signed bytes as opaque transport-layer material, not a re-serializable JSON object. For nested objects whose key order is not externally meaningful (notably the <tt>evaluatedCondition</tt> object hashed into <tt>conditionHash</tt>), keys are sorted in lexical order before serialization. See <xref target="RFC8785"/> for a general canonical-JSON scheme; this document does not require RFC 8785 conformance for the outer signed payload, because the outer field set is fixed and ordered by this specification.</t>
      <t>The signature output is the raw P1363 (R || S) representation of the ECDSA signature, base64-encoded (88 characters for P-256). Implementations producing DER-encoded ECDSA signatures MUST convert to P1363 before transmission.</t>
      <t>Implementations MAY support additional algorithms (ES384, EdDSA / Ed25519). Algorithm selection is encoded in the JWKS entry indexed by <tt>kid</tt>. Verifiers MUST consult the JWKS entry to determine the algorithm before verifying.</t>
    </section>
    <section anchor="jwks-discovery">
      <name>JWKS Discovery</name>
      <t>The issuer publishes its public key set at a discoverable HTTPS endpoint following <xref target="RFC7517"/>. The recommended path is <tt>/.well-known/jwks.json</tt> per <xref target="RFC5785"/>.</t>
      <t>Each JWKS entry MUST include <tt>kid</tt>, <tt>kty</tt>, <tt>crv</tt>, <tt>alg</tt>, <tt>x</tt>, and <tt>y</tt> fields appropriate for the curve and algorithm. Issuers MAY publish multiple active keys simultaneously to support key rotation.</t>
      <t>Key rotation: when the issuer rotates signing keys, the new public key MUST be published in JWKS before the issuer signs any attestation with the corresponding private key. Retired public keys SHOULD remain published in JWKS for a duration at least equal to the longest possible outstanding attestation expiry (typically the default thirty-minute window).</t>
      <t>Verifiers MUST cache the JWKS appropriately (HTTP cache headers as published by the issuer; the issuer SHOULD set <tt>Cache-Control: max-age=3600</tt> or shorter).</t>
    </section>
    <section anchor="jwt">
      <name>JWT Format</name>
      <t>When <tt>options.format</tt> is <tt>"jwt"</tt>, the response is wrapped in an RFC 7519 JWT.</t>
      <t>Protected header: <tt>{"alg": "ES256", "typ": "JWT", "kid": "&lt;key id&gt;"}</tt> per <xref target="RFC7519"/>. The <tt>kid</tt> in the protected header is covered by the JWT signature.</t>
      <t>Standard claims:</t>
      <ul spacing="normal">
        <li>
          <t><tt>iss</tt> --- issuer identifier (e.g., the issuer's base URL)</t>
        </li>
        <li>
          <t><tt>sub</tt> --- wallet address (the subject of the attestation)</t>
        </li>
        <li>
          <t><tt>jti</tt> --- JWT identifier (typically the attestation <tt>id</tt>)</t>
        </li>
        <li>
          <t><tt>iat</tt> --- issuance timestamp (Unix seconds)</t>
        </li>
        <li>
          <t><tt>exp</tt> --- expiry timestamp (Unix seconds)</t>
        </li>
      </ul>
      <t>Custom claims carrying the attestation payload:</t>
      <ul spacing="normal">
        <li>
          <t><tt>pass</tt> --- aggregate result</t>
        </li>
        <li>
          <t><tt>results</tt> --- per-condition result array</t>
        </li>
        <li>
          <t><tt>conditionHash</tt> --- array of per-condition <tt>conditionHash</tt> values, in <tt>results</tt> order</t>
        </li>
        <li>
          <t><tt>blockNumber</tt> --- chain block reference (typically the first result's <tt>blockNumber</tt>, where chain-homogeneous)</t>
        </li>
        <li>
          <t><tt>blockTimestamp</tt> --- chain block timestamp (typically the first result's <tt>blockTimestamp</tt>)</t>
        </li>
      </ul>
      <t>The JWT signature is computed by the issuer using the corresponding private key. Verifiers verify using any standard JWT library that supports ES256 and JWKS discovery.</t>
      <t>The JWT format provides signed coverage of <tt>exp</tt> and <tt>kid</tt> (via standard claim and protected header, respectively); deployments requiring tamper-evident expiry or signed key-identifier binding SHOULD use the JWT format rather than the JSON format described in <xref target="response"/>.</t>
    </section>
    <section anchor="merkleproofs">
      <name>Optional Merkle Proofs</name>
      <t>When <tt>options.proof</tt> is <tt>"merkle"</tt> and the underlying chain supports Merkle storage proofs (typically EVM chains for storage-slot-mappable conditions), the response MAY include <xref target="EIP-1186"/> Merkle storage proofs anchored to the block header for each per-condition result.</t>
      <t>Merkle proofs permit trustless verification: a verifier can independently check the Merkle proof against the block reference without trusting the issuer's evaluation. When a Merkle proof is included (<tt>proof.available</tt> is <tt>true</tt> in the per-result proof object), the proof object MUST include the block reference and the storage slot path.</t>
      <t>Not all conditions or chains support Merkle proofs. Implementations MUST indicate proof availability per result and MAY return <tt>proof.available: false</tt> with a <tt>reason</tt> field when proof generation is unsupported for the condition or chain (e.g., NFT ownership conditions, non-storage-slot-mappable conditions, non-EVM chains).</t>
      <t><strong>Privacy trade-off:</strong> Merkle proofs reveal raw on-chain values (e.g., the actual token balance). The default <tt>"none"</tt> mode preserves privacy by returning only the boolean result. Operators MUST consider whether the trustlessness benefit of Merkle proofs is worth the privacy cost in each deployment.</t>
      <t>Bitcoin, XRPL, and Solana have different state-proof models and may not support Merkle proofs in the <xref target="EIP-1186"/> sense. Implementations targeting those chains MAY define chain-appropriate proof shapes or MAY return <tt>proof.available: false</tt>.</t>
      <t>For Bitcoin specifically: the UTXO model does not permit reproducible balance-at-block queries. Bitcoin implementations anchor the attestation to the chain tip (block height + block hash) at observation time as the cryptographically-bound freshness evidence appropriate to the UTXO model. The <tt>blockHeight</tt> and <tt>blockHash</tt> are covered by the issuer's signature inside the result and bind the observation to a recent chain tip rather than to a specific block's historical state. Issuers MUST refuse to sign Bitcoin attestations when the chain-tip lookup fails; see <xref target="refuse"/>.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="single-issuer">
        <name>Single-Issuer Architecture</name>
        <t>This document describes a single-issuer attestation primitive. The issuer is the sole signer of attestations within its declared scope. This is a deliberate design choice for several reasons:</t>
        <ol spacing="normal" type="1"><li>
            <t><strong>Deterministic signature surface.</strong> Verifiers can independently re-derive an attestation from chain state without resolving issuer trust hierarchies, federation policies, or multi-party signing logic.</t>
          </li>
          <li>
            <t><strong>No re-signing or wrapping.</strong> Attestations cannot be re-signed by intermediaries, aggregated under a wrapper signature, or repackaged in derivative forms. The original observation's signature is the authoritative artifact end-to-end.</t>
          </li>
          <li>
            <t><strong>Unambiguous attribution.</strong> For audit, dispute resolution, and accountability, the issuer is unambiguously identified by the JWKS endpoint and signing key.</t>
          </li>
        </ol>
        <t>Multi-issuer federation, key delegation, cross-issuer attestation aggregation, and threshold signing are explicitly out of scope for this document. Future Internet-Drafts MAY define such mechanisms as separate primitives, but they are distinct from the single-issuer wallet-state attestation defined here.</t>
      </section>
      <section anchor="freshness-anchors-and-replay-considerations">
        <name>Freshness Anchors and Replay Considerations</name>
        <t>The cryptographically-bound freshness anchors are the block reference inside each per-condition result and the <tt>attestedAt</tt> timestamp in the outer signed payload. Both are covered by the issuer's signature. Verifiers requiring strict tamper-evident freshness derive their policy from these signed anchors (e.g., "reject if <tt>attestedAt</tt> is older than thirty minutes", or "reject if <tt>blockTimestamp</tt> is older than sixty seconds").</t>
        <t>The <tt>expiresAt</tt> field is an issuer-provided TTL hint, transmitted alongside the attestation but outside the signed payload in the JSON format described in <xref target="response"/>. Verifiers MAY honor <tt>expiresAt</tt> directly as a convenience. Deployments requiring tamper-evident expiry SHOULD use the JWT format described in <xref target="jwt"/>, where <tt>exp</tt> is a signed claim.</t>
        <t>For replay-sensitive deployments, implementations MAY include a nonce binding or audience binding in custom JWT claims (when the JWT format is used). This document does not normatively specify these extensions; deployments requiring replay protection beyond freshness checking SHOULD define them explicitly in their integration profile.</t>
      </section>
      <section anchor="refuse">
        <name>Refuse-on-Observation-Failure</name>
        <t>Issuers MUST refuse to sign an attestation when any required observation fails: chain-tip lookup, balance query, on-chain attestation registry lookup, or any other data source the condition depends on. A successfully signed attestation therefore implies that all underlying observations were acquired against a current chain reference at attestation time. Partial or degraded observations MUST NOT be signed.</t>
        <t>Verifiers MAY cross-check the included block reference against an independent chain source if the deployment requires it.</t>
      </section>
      <section anchor="what-this-primitive-does-not-protect-against">
        <name>What This Primitive Does Not Protect Against</name>
        <ul spacing="normal">
          <li>
            <t><strong>Chain-level reorganizations after attestation.</strong> If a chain reorgs after an attestation has been signed, the historical state observed in the attestation may no longer be canonical. Operators handling this concern SHOULD use chains with strong finality, SHOULD use sufficiently old block references, or SHOULD include reorg-handling logic in their verification flow.</t>
          </li>
          <li>
            <t><strong>Off-chain state changes.</strong> This primitive observes on-chain state only. It does not attest to off-chain identity, off-chain agreements, or off-chain commitments.</t>
          </li>
          <li>
            <t><strong>Malicious issuer.</strong> A compromised or malicious issuer could sign false attestations. This is mitigated by: (a) JWKS publication of signing keys, (b) optional Merkle proofs for trustless verification (where supported), (c) condition hashes for tamper-evidence over the evaluated logic, and (d) deterministic re-derivation by independent verifiers.</t>
          </li>
        </ul>
      </section>
      <section anchor="algorithm-agility">
        <name>Algorithm Agility</name>
        <t>The default ES256 algorithm is widely supported and provides 128-bit security. Implementations supporting additional algorithms MUST include the algorithm in the JWKS entry indexed by <tt>kid</tt>. Verifiers MUST check the algorithm before verifying.</t>
        <t>Algorithm migration: when the cryptographic landscape changes (e.g., post-quantum migration), issuers can rotate to new algorithms via JWKS without breaking the verification protocol. The protocol surface remains stable.</t>
      </section>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <section anchor="boolean-by-default">
        <name>Boolean by Default</name>
        <t>The default response mode returns only the result of condition evaluation, never the underlying on-chain value. A verifier learns whether a wallet satisfies a condition (e.g., "holds at least 100 USDC") but does not learn the actual balance.</t>
        <t>This is the privacy-preserving default and SHOULD be used unless specific deployment requirements justify a less-private mode.</t>
      </section>
      <section anchor="merkle-mode-trade-off">
        <name>Merkle Mode Trade-Off</name>
        <t>When <tt>options.proof</tt> is <tt>"merkle"</tt>, raw on-chain values are revealed for trustless verification. Operators MUST consider the privacy implications of revealing actual balances or asset holdings in each deployment.</t>
      </section>
      <section anchor="no-pii">
        <name>No PII</name>
        <t>The primitive operates on public on-chain state only. No personally-identifiable information is collected, processed, signed, or transmitted.</t>
      </section>
      <section anchor="wallet-address-handling">
        <name>Wallet Address Handling</name>
        <t>The wallet address is the subject of the query but is public information on the underlying chain. Issuers SHOULD NOT log or retain wallet addresses beyond what is required for service delivery, abuse prevention, and operational integrity. Implementations targeting privacy-conscious deployments SHOULD document their address-handling policy.</t>
      </section>
      <section anchor="awareness-of-observation">
        <name>Awareness of Observation</name>
        <t>This primitive observes public chain state without holder participation. The holder is not required to consent to nor be aware of any individual attestation, consistent with the public nature of blockchain state. Deployers operating in regulated or consumer-facing contexts SHOULD consider whether their deployment context requires additional transparency mechanisms; such mechanisms are out of scope for this document.</t>
      </section>
    </section>
    <section anchor="whatisnot">
      <name>What This Is Not</name>
      <t>This section explicitly enumerates adjacent primitives that wallet state attestation is <strong>not</strong>, to prevent conflation:</t>
      <ul spacing="normal">
        <li>
          <t><strong>Not a Verifiable Credential (W3C VC) <xref target="VC-DATA-MODEL"/>.</strong> VCs are issued by an authority, presented by a holder, and verified against the holder's presented bytes. Wallet state attestations are pulled by the issuer from public chain state without holder presentation.</t>
        </li>
        <li>
          <t><strong>Not an mDoc or eIDAS attestation.</strong> mDocs (ISO/IEC 18013-5) are pre-issued, batched, and stored by the holder for later presentation. Wallet state attestations are issued on demand, are short-lived, and are not stored by the holder.</t>
        </li>
        <li>
          <t><strong>Not a SAML assertion or OIDC ID token.</strong> These primitives carry identity claims about a user. Wallet state attestations carry observations about wallet state, with no identity component.</t>
        </li>
        <li>
          <t><strong>Not a reputation score, trust score, or credit rating.</strong> A wallet state attestation contains observed facts (boolean results, optionally with structured fact profiles). It does not contain opinions, scores, ratings, or aggregated judgments. A separate primitive built on top of wallet state attestations might produce a score; this primitive does not.</t>
        </li>
        <li>
          <t><strong>Not a settlement attestation, delivery attestation, or transaction proof.</strong> Wallet state attestation is read-only state observation at observation time. It does not attest to action confirmation, transaction completion, or delivery of goods or services.</t>
        </li>
        <li>
          <t><strong>Not an oracle in the price-feed sense.</strong> This primitive observes specific wallet state on demand for a specific request; it does not publish continuous data streams or aggregate market data.</t>
        </li>
      </ul>
      <t>These distinctions are essential to keeping wallet state attestation as a distinct primitive in the agent-commerce, condition-based-access, and verification ecosystems.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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="RFC5785">
          <front>
            <title>Defining Well-Known Uniform Resource Identifiers (URIs)</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <author fullname="E. Hammer-Lahav" initials="E." surname="Hammer-Lahav"/>
            <date month="April" year="2010"/>
            <abstract>
              <t>This memo defines a path prefix for "well-known locations", "/.well-known/", in selected Uniform Resource Identifier (URI) schemes. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5785"/>
          <seriesInfo name="DOI" value="10.17487/RFC5785"/>
        </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="RFC7518">
          <front>
            <title>JSON Web Algorithms (JWA)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>This specification registers cryptographic algorithms and identifiers to be used with the JSON Web Signature (JWS), JSON Web Encryption (JWE), and JSON Web Key (JWK) specifications. It defines several IANA registries for these identifiers.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7518"/>
          <seriesInfo name="DOI" value="10.17487/RFC7518"/>
        </reference>
        <reference anchor="RFC7519">
          <front>
            <title>JSON Web Token (JWT)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signature (JWS) structure or as the plaintext of a JSON Web Encryption (JWE) structure, enabling the claims to be digitally signed or integrity protected with a Message Authentication Code (MAC) and/or encrypted.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7519"/>
          <seriesInfo name="DOI" value="10.17487/RFC7519"/>
        </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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC6749">
          <front>
            <title>The OAuth 2.0 Authorization Framework</title>
            <author fullname="D. Hardt" initials="D." role="editor" surname="Hardt"/>
            <date month="October" year="2012"/>
            <abstract>
              <t>The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowing the third-party application to obtain access on its own behalf. This specification replaces and obsoletes the OAuth 1.0 protocol described in RFC 5849. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6749"/>
          <seriesInfo name="DOI" value="10.17487/RFC6749"/>
        </reference>
        <reference anchor="RFC8785">
          <front>
            <title>JSON Canonicalization Scheme (JCS)</title>
            <author fullname="A. Rundgren" initials="A." surname="Rundgren"/>
            <author fullname="B. Jordan" initials="B." surname="Jordan"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <date month="June" year="2020"/>
            <abstract>
              <t>Cryptographic operations like hashing and signing need the data to be expressed in an invariant format so that the operations are reliably repeatable. One way to address this is to create a canonical representation of the data. Canonicalization also permits data to be exchanged in its original form on the "wire" while cryptographic operations performed on the canonicalized counterpart of the data in the producer and consumer endpoints generate consistent results.</t>
              <t>This document describes the JSON Canonicalization Scheme (JCS). This specification defines how to create a canonical representation of JSON data by building on the strict serialization methods for JSON primitives defined by ECMAScript, constraining JSON data to the Internet JSON (I-JSON) subset, and by using deterministic property sorting.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8785"/>
          <seriesInfo name="DOI" value="10.17487/RFC8785"/>
        </reference>
        <reference anchor="CAIP-2" target="https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-2.md">
          <front>
            <title>Chain Agnostic Improvement Proposal 2: Blockchain ID Specification</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="EIP-1186" target="https://eips.ethereum.org/EIPS/eip-1186">
          <front>
            <title>Ethereum Improvement Proposal 1186: RPC-Method to get Merkle Proofs</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="OIDC-CORE" target="https://openid.net/specs/openid-connect-core-1_0.html">
          <front>
            <title>OpenID Connect Core 1.0</title>
            <author initials="N." surname="Sakimura">
              <organization/>
            </author>
            <author initials="J." surname="Bradley">
              <organization/>
            </author>
            <author initials="M." surname="Jones">
              <organization/>
            </author>
            <author initials="B." surname="de Medeiros">
              <organization/>
            </author>
            <author initials="C." surname="Mortimore">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="VC-DATA-MODEL" target="https://www.w3.org/TR/vc-data-model-2.0/">
          <front>
            <title>Verifiable Credentials Data Model</title>
            <author initials="M." surname="Sporny">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="KCP-0004" target="https://github.com/Cantara/knowledge-context-protocol/blob/main/RFC-0004-Trust-and-Compliance.md">
          <front>
            <title>Knowledge Context Protocol RFC-0004: Trust, Provenance, and Compliance</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="VI-ENVIRONMENT" target="https://datatracker.ietf.org/doc/draft-borthwick-msebenzi-environment-state/">
          <front>
            <title>Verifiable Intent --- environment.* Constraint Family</title>
            <author initials="D." surname="Borthwick">
              <organization/>
            </author>
            <author initials="M." surname="Msebenzi">
              <organization/>
            </author>
            <date year="2026" month="May"/>
          </front>
        </reference>
        <reference anchor="AGV" target="https://github.com/aeoess/agent-governance-vocabulary">
          <front>
            <title>Agent Governance Vocabulary</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="OATR" target="https://github.com/FransDevelopment/open-agent-trust-registry">
          <front>
            <title>Open Agent Trust Registry</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="ERC-8210" target="https://ethereum-magicians.org/t/erc-8210-agent-assurance/28097">
          <front>
            <title>Draft Ethereum Improvement Proposal 8210: Agent Assurance Protocol</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="UCP-IDENTITY" target="https://github.com/Universal-Commerce-Protocol/ucp/blob/main/docs/specification/identity-linking.md">
          <front>
            <title>Universal Commerce Protocol: Identity Linking</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
    </references>
    <?line 411?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The author thanks the IETF community for ongoing discussion of attestation primitives in the agentic and wallet-state space.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
nBdgC3Ss/ge/ikm0aoAAAA==

-->

</rfc>
