Every human decision, on the record.
Each time verified people or a developer’s team decide for an AI agent, the outcome is added here, linked to the one before it by its fingerprint. Change any past decision and every link after it breaks. Anyone can check.
You’re viewing the Test chain: decisions from developers’ test keys, simulated and never seen by people.
Decisions recorded8
Decided by verified people6
Sent to a developer’s team0
Answers confirmed in person0%
- #8Decided by verified peoplea2e3761444b9links to 8cb4ba0d8b3f
- #7Decided by verified people8cb4ba0d8b3flinks to 51aa5ab397f3
- #6Decided by verified people51aa5ab397f3links to 08042004eba0
- #5Decided by verified people08042004eba0links to af5e0cc1445a
- #4No answer in timeaf5e0cc1445alinks to 82d7c0d7b3c4
- #3Tied, no answer82d7c0d7b3c4links to 62017d2e7817
- #2Decided by verified people62017d2e7817links to fc36c4b32765
- #1Decided by verified peoplefc36c4b32765links to 000000000000
Entry #1 links to the start of the chain: 0000000000000000…
Don’t take our word for it.
The ledger is public on purpose. Every entry is a few plain fields and a fingerprint, so you can recompute any of them with a few lines of code, or press “Check the chain yourself” and your browser does it.
- Private by design. No questions, answers or customer names appear here. Each entry carries a salted fingerprint of its content, which only the developer who owns it can match to their own record.
- Test and Live are separate chains. Simulated decisions from test keys never mix with real ones.
- Not a blockchain. One append only record, with the latest fingerprint recorded every day, so history can’t be quietly rewritten, by anyone, including us.
JSON: /api/ledger and /api/ledger/live/{n}
// Each entry's fingerprint is SHA-256 of these fields joined with "|":
plures-ledger-v1 | mode | seq | task_id | decided_at | status
| decided_by | reason | agreement | answers | confirmed
| content_digest | prev_hash
// Check one entry (Node 18+)
const e = await fetch("https://plures.si/api/ledger/live/1").then((r) => r.json());
const input = ["plures-ledger-v1", e.mode, e.seq, e.task_id, e.decided_at, e.status,
e.decided_by ?? "", e.reason ?? "", e.agreement ?? "", e.answers, e.confirmed,
e.content_digest, e.prev_hash].join("|");
const { createHash } = await import("node:crypto");
const hash = createHash("sha256").update(input).digest("hex");
console.log(hash === e.hash, e.next_hash); // true, and the next entry's prev_hash