Digests

Daily signed summaries

Just after midnight UTC, Entropy takes every record hash from the day, in ledger order, hashes them together and signs the result. Keep a copy of any day’s digest and you can prove later that the ledger has not been rewritten.

Public key (Ed25519)

3777f13ee338cfc18475ee0ebc29af45345e5c9f50d67f2fc0613d9f11516023

-----BEGIN PUBLIC KEY-----
MCowBQYDK2VwAyEAN3fxPuM4z8GEde4OvCmvRTReXJ9Q1n8vwGE9nxFRYCM=
-----END PUBLIC KEY-----
How to check a signature

digestHash is SHA-256 of the day’s record hashes joined by newlines (sha256 of nothing on a day with no records). The signature is Ed25519 over the UTF-8 bytes of the 64-character digestHash. Fetch /api/v1/digests/YYYY-MM-DD for the record hashes, recompute, then:

// Node.js
const { createPublicKey, verify, createHash } = require('node:crypto');
const d = await (await fetch('https://entropy.prizecore.io/api/v1/digests/2026-10-12')).json();
const recomputed = createHash('sha256').update(d.recordHashes.join('\n')).digest('hex');
// the raw 32-byte Ed25519 key (d.publicKey, hex) wrapped in its fixed SPKI header
const key = createPublicKey({ key: Buffer.concat([Buffer.from('302a300506032b6570032100', 'hex'), Buffer.from(d.publicKey, 'hex')]), format: 'der', type: 'spki' });
console.log(recomputed === d.digestHash, verify(null, Buffer.from(d.digestHash, 'utf8'), key, Buffer.from(d.signature, 'hex')));
# openssl: save the PEM above as entropy.pem, the signature bytes as sig.bin
printf '%s' "$DIGEST_HASH" > msg.txt
openssl pkeyutl -verify -pubin -inkey entropy.pem -rawin -in msg.txt -sigfile sig.bin

Days

Day (UTC)RecordsDigest hashSignature
2026-10-110e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8558287fa9146bc1b0ca7922a776b32d121...

A copy of each day’s digest on GitHub, outside PrizeCore’s own hosting, is planned and not built yet.