Member card provenance
Commitment will be published before minting opens.
const body = await fetch("https://xrpltoken.com/api/member/provenance").then((response) => response.json());
if (!body.revealed) throw new Error("The list is published when the reveal opens.");
const bytes = new TextEncoder().encode(JSON.stringify(body.list) + body.salt);
const digest = await crypto.subtle.digest("SHA-256", bytes);
const actual = [...new Uint8Array(digest)].map((part) => part.toString(16).padStart(2, "0")).join("");
if (actual !== body.commitment) throw new Error("Commitment does not match.");
console.log("Verified", body.list.length, "member cards");