pool.zcd.lol · Zycord mainnet ·
Every UTC day the pool publishes a canonical copy of its payout ledger here and anchors the file's sha256 into a contract on the Zycord chain. Anyone, on any node, can recompute the hash, compare it to the on-chain cell, and walk the chain day by day — rewriting one day breaks every later link, in plain sight.
One file per day, one payout per line: amount, block, on-chain certificate, per-wallet attribution (plus the few unattributable dust drops). A file never changes once anchored.
# example curl -sO https://pool.zcd.lol/ledger/2026-11-03.jsonl sha256sum 2026-11-03.jsonl
The sha256 must equal the dayHash[day] cell in the contract. Any Zycord node can read it (a read-only endpoint) — including a node you run yourself. No need to trust us.
# storage key = keccak256(abi.encode(day, uint256(slot))) (slot: dayHash=1)
curl -s "http://<node>:9420/storage?addr=&key=0x<key>
verify.py is plain stdlib Python: it fetches the file, recomputes both hashes, reads the cells, checks every line's split arithmetic, and walks the day-to-day chain links. Running it yourself beats reading ten slogans.
verify.py # download, then: python3 verify.py --day 2026-11-03 --node http://127.0.0.1:9420 ALL CHECKS PASSED: day 2026-11-03's published ledger is byte-for-byte what the chain anchors…
| day (UTC) | payouts | amount (ZCD) | day_hash | height | |
|---|---|---|---|---|---|
| … | |||||
machine-readable: /api/v1/ledger/anchors.json
Every UTC day the pool folds each miner's delivered shares and that day's earnings into one line, builds a Merkle tree over the day and anchors its root in the ShareReceipts contract. Anyone can recompute the root below from the published file and compare it with the chain, day by day — no need to trust a single number on this page.
Every address that ever delivered a share holds one on-chain credential: cumulative shares, ZCD received, active days and first day. The pool mints it and it cannot be transferred.
chain_hash(D) = sha256("zcd-pool-ledger-v1|D|day_hash|n|drops|chain_hash(D-1)")
Each day's chain hash folds the previous day's chain hash into its input, and the contract refuses a second write to any day's cell outright. Rewrite one historical day and every later chain hash mismatches — a visible break across the whole chain. The contract holds no keys and no funds; it is a public blackboard, nothing more.
// PoolLedger.sol — storage (standard solc layout) slot 0 admin // deployer, written once slot 1 mapping(uint => bytes32) dayHash // sha256 of the day file slot 2 mapping(uint => bytes32) chainHash // links D-1 slot 3 mapping(uint => bytes32) dayMeta // [payouts << 128 | drops] slot 4 lastDay slot 5 firstDay
pool.zcd.lol · anchored on the Zycord mainnet ·