✓
Review record · independent hook review

XahauCards hooks at commit 95cee8b

KV-IV-2026-0908-001 · issued 2026-09-08 · review tier (source review, not a formal proof)

Prepared for XRPLWin by Kairo Vault Technologies 合同会社. This page is the public record of that review: what was looked at, how, what was found, what was not checked, and the hashes of the documents delivered. It exists so that anyone who is told "these hooks were reviewed" can see exactly what that sentence covers.

0 critical · 0 high
No critical or high-severity defect was found, and that conclusion held through an adversarial pass. The output is two questions for the client to settle and four low-severity items, none of which lets an outsider steal funds, mint, or forge.

What was reviewed

Pinned commit95cee8b972310b23c83bc789707be0f83d792ebb
RepositoryXRPLWin / xahaucards.com (private at the time of review). Source tree hook/src/, the tree that builds hook/build/*.wasm.
HooksShop account: shop.c (payment gate), doors.c (grant / allowance admin). Issuer account: mint.c (roll and mint), manager.c (admin and attestor signatures). Shared: namespaces.h (state contract), trigger.h (emitted trigger and callback).
Rules checkedThe client's own: the whitepaper invariants and the 61 checks in the client's live test suite. Each rule reads as holds, fails with a stated input, or cannot be settled by a review.
NetworkXahau testnet. On-chain checks read the testnet issuer rhi2ndQkEmV5x1t7YisEKUF3J8tw4VnJ83: its full transaction history and a minted card's remarks.
DeliveredFindings report (Markdown and HTML), a pack re-derivation script with its evidence note, and receipt KVT-INV-2026-001. The report went to the client unedited.

How it was done

  1. The state contract and the trigger/callback were read in full.
  2. Each hook was read against its rules.
  3. An adversarial pass tried to break every "holds": free packs, forged emissions, grant/attestor/admin bypass, state clobber, roll grinding, double-mint, refund abuse, edition collisions, griefing.
  4. The protocol facts the findings depend on were checked against xahaud source (Transactor, HookAPI, SetRemarks, Remit, CanonicalTXSet) and against live Xahau testnet state.
  5. Every candidate finding was verified against the code before it was written down; the draft was then put through an internal red-team and a protocol/calibration panel. The findings in the report are what survived.

Findings, by count

Whether the individual items are named on this page, and whether the client's answers to the two questions appear here once settled, is the client's decision. The client holds the full report and may publish it; the hashes below let anyone check that a published copy is the one delivered.

Update 2026-09-15 — the client published the report and his response

XRPLWin has published the report together with his own written response, in the open: github.com/XRPLWin/xahaucards-hooks/independent-reports (response to this review). His response states, in his words, that a review does not pass or fail and that this one did not "pass" — which is the correct reading of what this record says.

What he reports having done, as his account and not as a KVT finding: the first question is resolved by a code change, the second is closed by configuration rather than by a code change, one low item is partly addressed and one is addressed with new tooling, and two low items are accepted as trust-model design decisions rather than changed. He also states that only one of the four built hooks changed, and that the other three remain byte-identical to the builds named in this record.

What this update does and does not say
  • Not re-reviewed. Kairo Vault has not reviewed the changed hook, the new tooling, or any figure the client reports about work done after 2026-09-08. This record still covers commit 95cee8b and nothing later.
  • His claims are his. The resolutions above are the client's statements. They are linked so a reader can weigh them, not endorsed here.
  • The two accepted items remain open by choice. Items a client decides not to change stay in the record as recorded; accepting a risk is not the same as removing it.

What the top line rests on

Two things are stated plainly in the report and were not re-proven by the review:

  1. The emission-forgery bar. The conclusion that an outsider cannot spoof the shop as the sender of an emitted transaction is a read of the xahaud transactor source, not a test that was run.
  2. The deployment bindings. The hook namespaces and the shop / issuer / claim parameters live in the SetHook install, not in the source, and were not read from the deployed accounts.
Scope & limitations — part of this record
  • Installed bytecode not verified. The review reads the source that builds the hooks; it does not prove that the deployed hook/build/*.wasm is that source. Matching the build hash to the deployed HookHash is proof-tier work and was not done.
  • Deployment bindings not verified. Installed HookNamespace values, HookCanEmit grants, and the ISSUER / SHOP / CLAIM parameters were not compared to the source constants.
  • Loader input validation not reviewed. Several mint-side safeties assume the admin door and loader reject bad input on the way in.
  • A review, not a proof. No formal proof was produced. "Holds" means a careful reading plus an adversarial pass could not break it, not that every input was checked.
  • Testnet. Every on-chain read is Xahau testnet at the time of review. Testnet state can be reset.

Free cross-check: a minted pack re-derived from public data

Outside the code review, one real minted pack was reproduced from public ledger data only, with no repository access and no operator input, to test the fairness claim from the outside.

Formula (from mint.c)seed = sha512half(payment_txid ‖ ledger_last_hash); card[i] = sha512half(seed ‖ i); rarity thresholds 150 / 220 / 246 / 254 of 256.
Buyer payment712EEBCF361F07C309429E17D4078AC3798D94D86F9DA87AFA1D8C5270EF4D1B
Ledger hash usedEAF06F0FD233530AFDD1B34C5980B085B16F67E8794F7A3EE3148C32F6D4B883
Theme 01 shape (on-chain D-record)C[0,66] U[200,42] R[350,24] E[450,12] L[500,6]
Minted on chainXC-01-026-C-04-04 · XC-01-009-C-03-01 · XC-01-205-U-08-06 · XC-01-222-U-08-08 · XC-01-221-U-06-05
ResultMatch, as a set. The same five cards were re-derived; mint order differs, which is not a fairness property. The pack is a deterministic function of the payment id and a ledger hash that post-dates the buyer's signature. No operator randomness.

The script reads the theme shape from live testnet hook state. The three inputs are pinned above so the result stays checkable if testnet state is later reset. The client may publish the script.

Disclosure

This review was commissioned and paid for by XRPLWin (settled in RLUSD on XRPL, receipt KVT-INV-2026-001).

The representative member of Kairo Vault Technologies sits on the One Xahau council. XahauCards' terms route revenue to the One Xahau treasury. The review does not touch that arrangement, the disclosure was made to the client before invoicing, and the representative member recuses from any council vote that touches XahauCards.

Independence here means independent of the audited party's code and claims. It does not mean independent of who paid for the work; that is stated so the reader can weigh it.

Document hashes

SHA-256 of the files delivered to the client on 2026-09-08. A published copy that hashes to these values is the delivered one.

REPORT.md766f5be9e162554918691105a4ce5f9aea64835df585548822429a1b9f4083ca
REPORT.html88c48d7ae2c0636c0dcf758780df76af21b99911f06a2d25860a09b3a4a411d7
REDERIVATION_EVIDENCE.mdc8b0552af39fc5d7e6f34e46cad6358efd702ebf5ea646a1cfe812e30c6a521e
rederive.mjs1a6887e5436e6d1e5e9a7e3cc8d8776427a96a046ca3f1f5a5231b9038730ee9

Attestation

Dane Brown
Representative Member (代表社員), Kairo Vault Technologies 合同会社, Tokyo
Questions about this record: dane@kairovault.com
Check a published report against this record:
shasum -a 256 REPORT.md REPORT.html REDERIVATION_EVIDENCE.md rederive.mjs

Re-run the pack cross-check while testnet holds the state:
node rederive.mjs
Kairo Vault Technologies 合同会社 · Independent Verification & Attestation · kairovault.com/verify.htmlReview Record KV-IV-2026-0908-001