{
  "version": 1,
  "registry_url": "https://satsignal.cloud/schemes.json",
  "registered_at_utc": "2026-05-08",
  "policy": "Schemes listed here are recognized by the official Satsignal verifier (https://proof.satsignal.cloud/verify) and reference helpers. A bundle that declares an unlisted scheme is not automatically invalid — the cryptographic checks in the helper still run — but auditors should treat it the same way they would treat any other operator-supplied verification code: ask for re-issuance under a registered scheme, or for independent reproduction of the verification logic, before trusting the result. New schemes are added once they have a stable spec, a published helper, and a real on-chain anchor.",
  "schemes": [
    {
      "name": "satsignal-merkle-row-v1",
      "category": "merkle-row",
      "privacy": "standard",
      "summary": "Selective row-reveal of a tabular commitment. Each leaf is the SHA-256 of the JCS-canonical row; one row can be revealed (with a Merkle path) without revealing the contents of the other rows. Layered on manifest-mode anchors.",
      "spec": "https://proof.satsignal.cloud/spec-merkle-row",
      "helper_python": "https://satsignal.cloud/merkle_row.py",
      "helper_js": "https://satsignal.cloud/merkle-row.js",
      "verifier": "https://proof.satsignal.cloud/verify",
      "first_anchor_txid": "4fc609d83c59fb173848f879ff78148dea3f797ddc2bf65a8c670ba84a8d383d"
    },
    {
      "name": "satsignal-merkle-row-sealed-v1",
      "category": "merkle-row",
      "privacy": "sealed",
      "summary": "Selective row-reveal with HMAC-per-leaf sealing. Each leaf is HMAC-SHA256(per-leaf-salt, JCS-canonical row); per-leaf salts are HKDF-derived from a master salt. The on-chain root reveals nothing about row contents until a row is selectively unsealed. Layered on commitment-mode anchors over a {scheme, root, leaf_count} commit doc.",
      "spec": "https://proof.satsignal.cloud/spec-merkle-row",
      "helper_python": "https://satsignal.cloud/merkle_row.py",
      "helper_js": "https://satsignal.cloud/merkle-row.js",
      "verifier": "https://proof.satsignal.cloud/verify",
      "first_anchor_txid": "d623cb94d09c6d02b11fcd239667e12fab0929ce281b79b7e0964053a6c4dcc8"
    },
    {
      "name": "satsignal-chain-anchor-v1",
      "category": "chain-anchor",
      "privacy": "standard",
      "summary": "Cross-system / cross-domain Merkle-batching. One BSV transaction commits to a Merkle root over N leaves; each leaf can be a receipt from a different system (AAR, RFC 3161, C2PA, Visa TAP). Each receipt embeds a chain-anchor/v1 evidenceRef with its leaf hash + inclusion proof, so one receipt is independently verifiable without seeing the others. Layered on manifest-mode anchors; leaf hashing per /spec-mbnt §5.",
      "spec": "https://proof.satsignal.cloud/spec-chain-anchor",
      "helper_python": "https://satsignal.cloud/merkle_row.py",
      "verifier": "https://proof.satsignal.cloud/verify",
      "first_anchor_txid": "1ba57f41fe81fab8383b5ede81d2de03a13ec5f3b7e2bf40ede91dd04115783e",
      "samples": "https://satsignal.cloud/samples/chain-anchor/RECEIPTS.md"
    }
  ]
}
