{
  "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-07-31T21: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": "1,463,694,758",
      "unit": "RLUSD units",
      "as_of": "2026-07-31T21:00:00Z",
      "source": "Standard Custody & Trust Company, LLC - RLUSD Reserve Report July 2026 (Report Dates July 6 and July 31, 2026, 5:00pm ET), examined by Deloitte & Touche LLP, report dated August 27, 2026: https://cdn.sanity.io/files/ior4a5y3/production/42b2ca149329bbf0e34d5d687d30cbb750eea6b8.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": 105983921,
    "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, payment or communication with the issuer about this artifact; 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": "759671210.7815219",
      "xrpl_obligations_from_lines": "759671210.7816455810047118655",
      "xrpl_obligations_frozen": "0",
      "xrpl_obligations_transferable": "759671210.7816455810047118655"
    },
    "obligations_key_present": true,
    "obligations_keys_all": {
      "524C555344000000000000000000000000000000": "759671210.7815219"
    },
    "per_node": {
      "ripple_s1": "759671210.7815219",
      "ripple_s2": "759671210.7815219",
      "xrplcluster": "759671210.7815219"
    },
    "per_node_errors": {},
    "independent_confirmations": 2,
    "corroboration": {
      "status": "performed (exhaustive, quorum-agreed)",
      "sum_owed_lower_bound": "759671210.7816455810047118655",
      "sum_owed_frozen": "0",
      "sum_owed_transferable": "759671210.7816455810047118655",
      "complete": true,
      "total_lines": 97730,
      "set_digest_sha256": "f1b9a63f4f343b07cf261e638225930e2870ae2e884ef2f940fde4f29317bcdc",
      "pages_per_node": {
        "ripple_s1": 245,
        "ripple_s2": 245,
        "xrplcluster": 245
      },
      "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.0001236810047118655",
      "rounding_tolerance": "0.0097730",
      "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": "759671210.7815219",
        "reported_outstanding_units": "1463694758",
        "reported_as_of": "2026-07-31T21: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-07-31T21:00:00Z",
        "staleness_seconds": 0,
        "time_matched": true,
        "public_attribution_delta": "704023547.2184781",
        "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": "51.90",
        "share_note": "share is stated only when L is time-matched to D"
      }
    ],
    "findings": [],
    "quorum_verdict": "PASS",
    "quorum_reason": null
  },
  "binding": {
    "input_digest": "55826be0e1249e0ef7cb71d0096562638fa2a6dcf8877306047f184a54caa5a2",
    "ledger": {
      "index": 105983921,
      "hash": "75F7864190FD5B499088B0050BF775A3997295916AAF17C80CCB437EE5A3F778",
      "close_time_iso": "2026-07-31T21:00:00Z",
      "per_node_hash": {
        "ripple_s1": "75F7864190FD5B499088B0050BF775A3997295916AAF17C80CCB437EE5A3F778",
        "ripple_s2": "75F7864190FD5B499088B0050BF775A3997295916AAF17C80CCB437EE5A3F778",
        "xrplcluster": "75F7864190FD5B499088B0050BF775A3997295916AAF17C80CCB437EE5A3F778"
      }
    },
    "tool": {
      "repo_dir": "kvt-por",
      "git_commit": "4ae26459f67dcfaf24c1adcbb7ba8b36fe9e87c7",
      "git_dirty": false,
      "code_digest": "a35cea5d29983c36f3c94a0689c7e4aab627861e26ec564eb9e3cf06bd39cedc",
      "files": 25,
      "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": 1790405213
  },
  "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, payment or communication with the issuer about this artifact; 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": "0977f305c578c7a45861f236c74a342fe5b3cefa780600fd09546d16a9145344",
  "signature": {
    "status": "signed",
    "sig": "-----BEGIN SSH SIGNATURE-----\nU1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgvYGYq2mbBCyrysPPQ89pVwo8UB\nIMwskdT7ORndERX84AAAAKa3Z0LWF0dGVzdAAAAAAAAAAGc2hhNTEyAAAAUwAAAAtzc2gt\nZWQyNTUxOQAAAECwaRVROqcAyCdIRUEZpzrYrGDb19okvCwFfEqOAzE9xrDqTAfLJ5FZqV\n5bpOFZexg69qAB7+ef8qv43Lr/c4QE\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."
  }
}
