{
  "schema": "kvt:attest:v1",
  "name": "kvt-por/supply-consistency",
  "statement": "P_supply_consistency: the on-ledger obligations of rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De in RLUSD at validated ledger L (last validated ledger with close_time <= reported.as_of; measured by KVT across >=2 independent XRPL operators, hash-agreed) are <= the issuer's REPORTED aggregate outstanding units R (RLUSD units, all networks, as of 2026-09-30T21:00:00Z). Consistency only: R - measured is a public-attribution delta (other networks + timing), never a reserve claim.",
  "inputs": {
    "issuer": "rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De",
    "currency": {
      "code": "RLUSD",
      "hex": "524C555344000000000000000000000000000000"
    },
    "reported": {
      "outstanding_units": "2,399,995,528",
      "unit": "RLUSD units",
      "as_of": "2026-09-30T21:00:00Z",
      "source": "Standard Custody & Trust Company, LLC - RLUSD Reserve Report September 2026 (Report Dates September 21 and September 30, 2026, 5:00pm ET), examined by Deloitte & Touche LLP, report dated October 26, 2026: https://cdn.sanity.io/files/ior4a5y3/production/850ed07e8f0556b3b1c1d43eb2a0fc4ef6538ce1.pdf",
      "scope": "Outstanding Stablecoin Units = aggregate RLUSD on NYDFS-approved networks (XRPL, Ethereum, Base, Unichain, Optimism, Ink, XRPL EVM Sidechain). No per-network breakdown is published.",
      "label": "reported"
    },
    "reported_secondary": null,
    "endpoints": [
      "ripple_s1",
      "ripple_s2",
      "xrplcluster"
    ],
    "pin_behind": 5,
    "ledger_rule": "last validated ledger with close_time <= reported.as_of",
    "ledger_index": 107345010,
    "corroboration_max_pages": 1000,
    "disclosure_lag_hours": 72,
    "conflicts_disclosed": [
      "RLUSD is issued by Standard Custody & Trust Company, LLC, a Ripple Labs subsidiary. KVT is a participant in UDAX, the Ripple x UC Berkeley accelerator (Sept-Nov 2026). Disclosed.",
      "Unsolicited and unpaid. KVT has had no engagement or payment from the issuer or Ripple for this artifact. In October 2026 KVT told Ripple's UDAX program team it planned to show this record at Demo Day and asked whether that was acceptable. Nobody at the issuer or Ripple selected the question, the ledger rule or the reported figures.",
      "KVT's founder takes part in Ripple's private bug bounty programs (invited September 2026); any bounty would be paid by Ripple. Unrelated to this artifact."
    ],
    "corroboration": "exhaustive quorum walk"
  },
  "method": [
    "1. Pre-register: compute binding.input_digest = sha256(canonical(inputs)) BEFORE any read. inputs.ledger_rule names how L is chosen; for the time-matched variant inputs.ledger_index is the index that rule yields.",
    "2. Pin: `ledger {ledger_index: L}` on EVERY node; the response must be validated and about L; require identical ledger_hash across >=2 independent OPERATORS (s1/s2.ripple.com count as one). Any disagreement is FATAL, not a verdict. close_time_iso is bound.",
    "3. Read: `gateway_balances {account: issuer, ledger_index: L}` on EVERY node; the response must carry ledger_index == L (and ledger_hash == the pin when present); the `obligations` map must agree byte-for-byte across nodes. measured = obligations[currency].",
    "4. Corroboration: sum of negative-side balances over `account_lines {account: issuer, ledger_index: L}`, Decimal-exact. Exhaustive mode walks EVERY line on EVERY node (whole-set agreement) and binds the exact sum as a second measured value; the predicate is tested on the larger of the two. gateway_balances accumulates in XRPL STAmount arithmetic (16 significant digits), so a delta up to total_lines x 1 ulp is the ledger's own rounding and is disclosed; beyond it the verdict is not-checkable. Non-exhaustive mode is a single-node sample reported with its coverage, never counted as corroboration.",
    "5. Compare: Decimal(measured) <= Decimal(R), R parsed under a strict grammar (digits, optional thousands commas, optional fraction). Emit consistent / INCONSISTENT / not-checkable. Never a reserve claim.",
    "6. Bind: ledger index+hash+close_time (+per-node hashes), tool git commit + code digest, input digest, verdict, signer identity + public key, disclaimer; sign the document digest (OpenSSH ed25519, namespace kvt-attest).",
    "7. Re-run: `python3 -m kvpor.cli rerun <predicate.json>` re-derives at L; every measured value must be identical -> REPRODUCED. The signature is accepted only against the pinned public key the reader supplies (--allowed-signers), never the one inside the file."
  ],
  "result": {
    "verdict": "consistent",
    "verdict_kv": "PASS",
    "verdict_meaning": "On-ledger XRPL supply re-derived by KVT is positive and does not exceed the issuer's reported aggregate outstanding units. Consistency only \u2014 not backing.",
    "variant": "time-matched",
    "measured": {
      "xrpl_obligations": "1013522846.501454",
      "xrpl_obligations_from_lines": "1013522846.501645539077532481",
      "xrpl_obligations_frozen": "0",
      "xrpl_obligations_transferable": "1013522846.501645539077532481"
    },
    "obligations_key_present": true,
    "obligations_keys_all": {
      "524C555344000000000000000000000000000000": "1013522846.501454"
    },
    "per_node": {
      "ripple_s1": "1013522846.501454",
      "ripple_s2": "1013522846.501454",
      "xrplcluster": "1013522846.501454"
    },
    "per_node_errors": {},
    "independent_confirmations": 2,
    "corroboration": {
      "status": "performed (exhaustive, quorum-agreed)",
      "sum_owed_lower_bound": "1013522846.501645539077532481",
      "sum_owed_frozen": "0",
      "sum_owed_transferable": "1013522846.501645539077532481",
      "complete": true,
      "total_lines": 99134,
      "set_digest_sha256": "096ff3a0b8ef7e284434443142dc60c712b6349b39020e9f09976007c292a1c6",
      "pages_per_node": {
        "ripple_s1": 248,
        "ripple_s2": 248,
        "xrplcluster": 248
      },
      "independent_confirmations": 2,
      "coverage_pct": "100.00",
      "label": "measured (every trust line, every node, whole-set agreement)",
      "frozen": "0",
      "frozen_note": "gateway_balances does not drop frozen balances: it reports lines the ISSUER has frozen in a separate `frozen_balances` field instead of inside `obligations`. They remain issuer obligations, so this walk counts them in their own bucket and never nets them against the transferable total. The branch is on the ordinary freeze flag; deep freeze does not affect which bucket a balance lands in. Measured.",
      "delta_vs_gateway_balances": "0.000191539077532481",
      "rounding_tolerance": "0.099134",
      "delta_within_tolerance": true,
      "delta_note": "gateway_balances accumulates line balances in XRPL STAmount arithmetic (16 significant digits per step), so its aggregate can drift from the exact Decimal sum by up to ~total_lines x 1 ulp; a delta inside that bound is the ledger's own rounding, not a discrepancy in the subject. Inferred."
    },
    "comparison": [
      {
        "which": "primary",
        "verdict": "consistent",
        "unit": "RLUSD units",
        "measured_xrpl_obligations": "1013522846.501454",
        "reported_outstanding_units": "2399995528",
        "reported_as_of": "2026-09-30T21:00:00Z",
        "reported_scope": "Outstanding Stablecoin Units = aggregate RLUSD on NYDFS-approved networks (XRPL, Ethereum, Base, Unichain, Optimism, Ink, XRPL EVM Sidechain). No per-network breakdown is published.",
        "ledger_close_time_iso": "2026-09-30T21:00:00Z",
        "staleness_seconds": 0,
        "time_matched": true,
        "public_attribution_delta": "1386472681.498546",
        "delta_meaning": "reported aggregate minus on-ledger XRPL supply = units on the issuer's OTHER networks plus any change between the report instant D and ledger close L. Inferred. NOT a deficiency.",
        "xrpl_share_of_reported_pct": "42.23",
        "share_note": "share is stated only when L is time-matched to D"
      }
    ],
    "findings": [],
    "quorum_verdict": "PASS",
    "quorum_reason": null
  },
  "binding": {
    "input_digest": "b5f78606a77f6bf5a2ecaa88bf28fc52cede622911f13b32a1323574d0ebfaf5",
    "ledger": {
      "index": 107345010,
      "hash": "E013A54AEBD76571EF7623DF2806DDAF6E6CFE37FCE00B50C3C431D03388D016",
      "close_time_iso": "2026-09-30T21:00:00Z",
      "per_node_hash": {
        "ripple_s1": "E013A54AEBD76571EF7623DF2806DDAF6E6CFE37FCE00B50C3C431D03388D016",
        "ripple_s2": "E013A54AEBD76571EF7623DF2806DDAF6E6CFE37FCE00B50C3C431D03388D016",
        "xrplcluster": "E013A54AEBD76571EF7623DF2806DDAF6E6CFE37FCE00B50C3C431D03388D016"
      }
    },
    "tool": {
      "repo_dir": "kvt-por",
      "git_commit": "537894eccc10660de9f7263cb0d85af3d52a919c",
      "git_dirty": false,
      "code_digest": "293caf3d72e8a3ca9a7c9f939c1ee3e1b25ddc8b03c0deec37c73caa27e4a78b",
      "files": 27,
      "note": "DISCLOSURE, not proof: the running interpreter reports its own code. A reader who needs proof re-runs from a clean checkout at git_commit."
    },
    "verdict": "consistent",
    "issued_at": 1793270997
  },
  "independence": {
    "conflicts_disclosed": [
      "RLUSD is issued by Standard Custody & Trust Company, LLC, a Ripple Labs subsidiary. KVT is a participant in UDAX, the Ripple x UC Berkeley accelerator (Sept-Nov 2026). Disclosed.",
      "Unsolicited and unpaid. KVT has had no engagement or payment from the issuer or Ripple for this artifact. In October 2026 KVT told Ripple's UDAX program team it planned to show this record at Demo Day and asked whether that was acceptable. Nobody at the issuer or Ripple selected the question, the ledger rule or the reported figures.",
      "KVT's founder takes part in Ripple's private bug bounty programs (invited September 2026); any bounty would be paid by Ripple. Unrelated to this artifact."
    ],
    "relationship_to_issuer": "KVT holds no seat, equity or contract with the issuer and has received no payment from it for this artifact (asserted by KVT; label: reported).",
    "independent_of_decision": "Unsolicited and unpaid: nobody selected the question, the ledger rule, or the reported figure, and there is no client, so the verdict cannot be negotiated. Results publish whatever they are, after the pre-registered disclosure lag.",
    "disclosure_policy": "An INCONSISTENT result is sent to the issuer's published contact first and published unchanged 72 hours later regardless of reply. The lag is fixed here, before the read.",
    "method_published": true,
    "raw_rederivation_published": "result.per_node carries every node's raw obligations value for this currency, result.obligations_keys_all every currency key the nodes agreed on, result.per_node_errors every node that errored, and binding.ledger.per_node_hash every node's ledger hash.",
    "results_published_regardless": true,
    "pre_registration": "binding.input_digest is sha256(canonical(inputs)) computed BEFORE the ledger read; kv.predicate.build() refuses to bind if inputs changed afterwards.",
    "ledger_selection": "Rule-chosen, never KVT-chosen: see inputs.ledger_rule. Time-matched: the last validated ledger closing at or before the attestation instant. Live-tip: validated tip minus pin_behind. Both are hash-agreed by every node.",
    "what_this_is_not": [
      "not a backing, reserve or solvency claim",
      "not an audit, attestation or certification; the CPA attestation named in inputs.reported.source remains the reserve authority",
      "R - measured is a PUBLIC-ATTRIBUTION delta (other approved networks + timing between D and L); it is never reported as a deficiency",
      "the reported figure R is UNVERIFIED here (label: reported)",
      "the word 'independent' is not used about KVT; the structure above is what stands in for it"
    ],
    "reported_scope_note": "Outstanding Stablecoin Units = aggregate RLUSD on NYDFS-approved networks (XRPL, Ethereum, Base, Unichain, Optimism, Ink, XRPL EVM Sidechain). No per-network breakdown is published."
  },
  "labels": {
    "result.measured.xrpl_obligations": "measured",
    "result.corroboration.sum_owed_lower_bound": "measured (single-node sample)",
    "binding.ledger": "measured",
    "inputs.reported.*": "reported",
    "inputs.reported_secondary.*": "reported",
    "result.comparison.public_attribution_delta": "inferred",
    "result.comparison.xrpl_share_of_reported_pct": "inferred",
    "result.comparison.staleness_seconds": "inferred",
    "result.verdict": "inferred",
    "independence.*": "reported (KVT's own disclosures)",
    "binding.tool": "reported (self-disclosed by the running tool)"
  },
  "disclaimer": "Review by Kairo Vault Technologies, re-derived from the public ledger. NOT an audit, NOT an attestation, NOT a certification, NOT a solvency or reserve opinion. Every figure is labelled measured (re-derived by KVT from >=2 independent nodes at the pinned ledger), reported (supplied by the subject or a third party, unverified here) or inferred (KVT's join of the two). Re-run the method yourself; trust the re-run, not KVT.",
  "notes": [
    "Read-only: no transaction was submitted; no funds moved.",
    "binding.tool.git_commit is the commit the tool ran from; the evidence commit that stores this file is necessarily later. Re-runs compare code_digest.",
    "Offline replay through the recorded cassette proves DETERMINISM of the engine on recorded bytes; the ledger hash in binding.ledger is what a live re-run on any node must match."
  ],
  "signer": {
    "identity": "kvt",
    "algo": "openssh-sig/ssh-ed25519",
    "public_key": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL2BmKtpmwQsq8rDz0PPaVcKPFASDMLJHU+zkZ3REV/O",
    "namespace": "kvt-attest"
  },
  "canonicalization": "JSON, keys sorted, separators (',',':'), ensure_ascii, allow_nan=False, over every top-level field except 'predicate_digest' and 'signature'; digest = sha256 hex",
  "rerun": {
    "same_ledger": "re-derive at binding.ledger.index on >=2 independent nodes; every measured value must be byte-identical -> REPRODUCED",
    "fresh": "re-derive at a fresh chain-chosen ledger; measured values may move, the verdict is compared -> VERDICT-STABLE / VERDICT-CHANGED"
  },
  "predicate_digest": "a2adc3985adf52d971661dff3271efcfbec3482c8708e3cfd8dd7b5f6c9cb6bb",
  "signature": {
    "status": "signed",
    "sig": "-----BEGIN SSH SIGNATURE-----\nU1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgvYGYq2mbBCyrysPPQ89pVwo8UB\nIMwskdT7ORndERX84AAAAKa3Z0LWF0dGVzdAAAAAAAAAAGc2hhNTEyAAAAUwAAAAtzc2gt\nZWQyNTUxOQAAAEB0EljCL236wJji6VsdTbCgf32sgi/Omg6obHxXh9EFZZ0RHz8m5Q9+Gb\nIIe7wz+0sngQF3q/NDp01TxIQIUWcF\n-----END SSH SIGNATURE-----\n",
    "signed_message": "predicate_digest (ASCII hex), namespace kvt-attest",
    "key_binding_note": "A signature binds these bytes to doc['signer']['public_key']. check() accepts it ONLY against a pinned allowed-signers file the reader supplies; the key inside this document is never trusted on its own."
  }
}
