The platform assembles the file
An owner of a Village that has Provenance and the Email Decision Record can have the platform assemble a consignment file for a lot. The file carries a Provenance dossier and an Email Decision Record dossier, and a signed email record is tied to the lot by the lot reference. When the owner names an invoice that carries the same lot reference, the file can carry that invoice as a third member. The assembly step stores nothing.
Built and deployed.
A checker that anyone can run offline
The checker is one readable JavaScript file. It runs each member's own checker on that member's bytes, with no network, and prints one result. It refuses a member checker whose bytes do not match the published SHA-256.
Built and deployed.
- It needs Node.js only.
- Use the combined checking program, version 2: it checks the Provenance, Email Decision Record and invoice members, and reads a file made for the first checker in the same way. The first checker reports the Email Decision Record member but takes no key history, so it cannot reach Verified for that member.
- --edr-pin is the fingerprint of the key you trust for the email record. --edr-key-history is a file holding that signer's key history, taken from the signer's own published record. --time-anchor names a time authority root you trust, in addition to the roots the program carries.
Download the combined checking program, version 2
node consignment-verifier-v2.js file.zip --edr-pin FINGERPRINT --edr-key-history key-history.json --time-anchor NAME=SPKI_SHA256 --json
SHA-256 of the combined checking program, version 2:
9bdf86820abef381afd036ad86013c05d1f9f65b49e6bd535d7813eded7c5fa0
Download the first checker, version 1
SHA-256 of the first checking program, as this site serves it:
41196ba26ea603979d347e236cd57c43ac3d2a1514a198555d5551ab2468d98a
Sending it by email, with a second person
An owner can propose sending a consignment file to one outside recipient. The proposal goes through the Email Decision Record and is held until a second person approves it; the person who proposed it cannot be the one who approves. It is then released through the existing release route.
Built and deployed; available on request, switched on per Village.
An invoice that can be partly hidden
The invoice member is built on Attested Accounts. Every field of the invoice is held as a salted hash. The file shows these fields and no others: lot reference, quantity, unit, currency, total and issue date. Every other field stays a hash, and no value for it is in the file.
Built and deployed; available on request, switched on per Village.
- A separate offline checker, invoice-bundle-verifier.js, linked below, recomputes the hashes of the fields shown, recomputes the lot commitment, and checks the signed record behind the invoice.
- A combined checking program, consignment-verifier-v2.js, checks the invoice member together with the other two, and still reads a file made for the first checker in the same way.
- An invoice export produces the invoice member from an invoice in Attested Accounts.
- The two routes that assemble and send a file accept an optional invoice, and then produce a file with three members.