Independently recomputes an exchange or custodian's published Proof-of-Reserves data: a single-leaf Merkle-sum reserve inclusion path, a liability-side Merkle-sum branch aggregation, and a coverage ratio between the two recomputed sums, with an optional cross-check against a caller-declared published reserve figure. Verdict per check plus overall CONSISTENT / INCONSISTENT / INDETERMINATE. Cross-links: Reserve Proof Verifier (single-leaf inclusion only) and PoR Liabilities Composer (composes a pre-verified inclusion boolean with an asserted liabilities total).
CONSISTENT verdict means the recomputed reserve inclusion path, the recomputed liability aggregation, and any declared published reserve figure are arithmetically and structurally consistent with each other. It does not mean the exchange is solvent, that the published data is truthful, or that the liability set is complete. The truth of the underlying published figures is the attestor's problem, not something this recomputation can determine.
This tool accepts one canonical Merkle-sum shape. Map a named exchange's own PoR export field names to the generic names below yourself before pasting; the tool never ships or maintains a per-exchange adapter (a standing per-exchange duty this row's spec explicitly rules out).
| Generic field | Typical exchange field names you'll see |
|---|---|
| leaf_user_id_hash | userId / uid / user_id / account_hash |
| leaf_balance | balance / amount / verified_balance |
| path[].hash / .sum / .position | merklePath[].siblingHash+siblingSum+isLeft · proofs[].sibling+sum+direction · path[].hash+sum+left · merkle_branch[].node_hash+node_sum+side |
| root.hash / root.sum | merkleRoot.hash+sum · root.rootHash+rootSum · root_hash+root_sum · published_root.hash+sum |
| Check | Verdict | Detail |
|---|