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.
| Pinned commit | 95cee8b972310b23c83bc789707be0f83d792ebb |
|---|---|
| Repository | XRPLWin / xahaucards.com (private at the time of review). Source tree hook/src/, the tree that builds hook/build/*.wasm. |
| Hooks | Shop 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 checked | The 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. |
| Network | Xahau testnet. On-chain checks read the testnet issuer rhi2ndQkEmV5x1t7YisEKUF3J8tw4VnJ83: its full transaction history and a minted card's remarks. |
| Delivered | Findings 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. |
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.
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.
Two things are stated plainly in the report and were not re-proven by the review:
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 payment | 712EEBCF361F07C309429E17D4078AC3798D94D86F9DA87AFA1D8C5270EF4D1B |
| Ledger hash used | EAF06F0FD233530AFDD1B34C5980B085B16F67E8794F7A3EE3148C32F6D4B883 |
| Theme 01 shape (on-chain D-record) | C[0,66] U[200,42] R[350,24] E[450,12] L[500,6] |
| Minted on chain | XC-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 |
| Result | Match, 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.
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.
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.md | 766f5be9e162554918691105a4ce5f9aea64835df585548822429a1b9f4083ca |
|---|---|
| REPORT.html | 88c48d7ae2c0636c0dcf758780df76af21b99911f06a2d25860a09b3a4a411d7 |
| REDERIVATION_EVIDENCE.md | c8b0552af39fc5d7e6f34e46cad6358efd702ebf5ea646a1cfe812e30c6a521e |
| rederive.mjs | 1a6887e5436e6d1e5e9a7e3cc8d8776427a96a046ca3f1f5a5231b9038730ee9 |