{
  "module": "notary",
  "version": "1.0.0",
  "what": "A free Bitcoin notary for anyone, Forever Proofs for every sebbi.pro chain block, and Human Keys proofs timestamped in Bitcoin.",
  "fingerprint": "SHA-256 of the file's bytes, 64 lowercase hex. Only the fingerprint is ever sent.",
  "leaf": {
    "notary": "sebbi-notary/1|<digest>",
    "humankeys": "sebbi-humankeys/1|<code>|<text_hash>|<verdict>|<sealed_at unix>",
    "chain_block": "<audit_hash> (the same leaves /x/consistency/root uses)"
  },
  "tree": "RFC 6962: leaf = SHA-256(0x00 || leaf), node = SHA-256(0x01 || left || right)",
  "bitcoin": "Each batch root is submitted to the public OpenTimestamps calendars and upgraded once its Bitcoin transaction confirms. Confirmations are checked against two block explorers.",
  "forever_proof_format": "sebbi-forever-proof/1 - subject, leaf, merkle {index, tree_size, path, root}, bitcoin {proof_ots_base64}",
  "limits": {
    "per_request": 1000,
    "per_day_without_key": 500,
    "per_day_with_key": 100000
  },
  "routes": {
    "stamp": "POST https://sebbi.pro/x/notary/stamp {\"digests\": [...], \"label\": \"optional, public\"}",
    "receipt": "GET https://sebbi.pro/x/notary/receipt?code=NT-XXXX-XXXX",
    "lookup": "GET https://sebbi.pro/x/notary/lookup?digest=<sha256>",
    "bundle": "GET https://sebbi.pro/x/notary/bundle?code=NT-XXXX-XXXX | ?block=<chain block>",
    "human_keys": "GET https://sebbi.pro/x/notary/hk?code=HK-XXXX-XXXX",
    "checkpoints": "GET https://sebbi.pro/x/notary/checkpoints",
    "verify": "POST https://sebbi.pro/x/notary/verify {\"bundle\": {...}}",
    "discovery": "https://sebbi.pro/.well-known/sebbi-notary.json"
  },
  "verifier": "https://sebbi.pro/forever-verify.py",
  "writes_to_chain": false
}