Verify a record
…
Computing…
Do it yourself
The hash is SHA-256 over the RFC 8785 canonical bytes of the record (the envelope's record field) with the proofs block removed. The signatures are over that hash.
N=000001
curl -s https://hiremeasi.com/api/v1/records/$N > env.json
curl -s https://hiremeasi.com/api/v1/records/$N/ots -o $N.ots
npm i canonicalize @noble/hashes
node --input-type=module -e "
import fs from 'node:fs'; import c from 'canonicalize';
import { sha256 } from '@noble/hashes/sha2.js'; import { bytesToHex } from '@noble/hashes/utils.js';
const { proofs, ...r } = JSON.parse(fs.readFileSync('env.json','utf8')).record;
console.log(bytesToHex(sha256(new TextEncoder().encode(c(r)))) === proofs.sha256 ? 'hash ok' : 'MISMATCH');"
ots verify $N.ots # Bitcoin time proof, once the block existsWhere a record lives
- Bitcoin (OpenTimestamps) — time proof
- Arweave — permanent storage of the bytes
- Internet Archive — URL snapshots
- Dataset — records.jsonl, CC0, proofs inlined; intended for monthly publication to GitHub and HuggingFace once there are records
- Offline copy — intended yearly; procedure in DEPLOY.md
Bitcoin timestamping is live. Arweave follows once the wallet is funded; Internet Archive once the public domain exists.