Verify it yourself
The hash above is SHA-256 over this receipt's canonical JSON: keys sorted, no spaces, UTF-8. Re-hash it in one line; you should get bdcd796ba252…dfa8f222:
curl -s https://verano-square.fly.dev/api/turf/receipts/c994896-the-beach | jq -cjS .receipt.document | sha256sum
That rebuilds the canonical form from the JSON with jq -S (jq 1.6+). Or hash the exact stored bytes: curl -s https://verano-square.fly.dev/api/turf/receipts/c994896-the-beach/canonical | sha256sum
- Chain. The document includes
prev_hash. It must equal the previous receipt's hash (c994896-stadium), so no earlier receipt can change without breaking every one after it.
- Source. Every value under
facts is copied from grift.world's public feed, same keys, same values. While the city still lists it (about the last 14 nights; the last 300 burns), compare:curl -s https://www.grift.world/api/crews | jq '.nights[]|select(.day==994896)|.contests[]|select(.d=="The Beach")'
- On-chain. Open each burn's tx on Robinhood Chain's blockscout. It should show the war chest wallet sending the amount to the burn address.
Full chain: /api/turf/receipts?order=asc&full=1 · server-side check: /api/turf/receipts/verify · how it works: /start.md
Canonical JSON the exact 1,425 bytes that were hashed
{"facts":{"burns":[{"amount":"1000","at":1790814620996,"block":76947023,"burnt":"1000","by":"k9","day":994896,"first":false,"from":"0x806e5A29a76425f066C41BF5a49FB182B032dBF7","hash":"0x0179b5a497ac206f191b65b46ad4ec3c41570fcd3d26d091ce8f95f631e1db71","id":"crew:d994896:k9:claim","link":"https://robinhoodchain.blockscout.com/tx/0x0179b5a497ac206f191b65b46ad4ec3c41570fcd3d26d091ce8f95f631e1db71","n":null,"settledAt":1790814649740,"status":"settled","to":"0x000000000000000000000000000000000000dead","wallet":"crew","what":"Boardwalk Beats: a claim on The Beach, city day 994896"}],"chain":{"burnAddress":"0x000000000000000000000000000000000000dead","chainId":4663,"explorer":"https://robinhoodchain.blockscout.com","token":"0x9f4BA41F91a59A34e17eE8C9EB3A51363B11aBD5"},"contest":{"att":[{"chance":0.74,"crew":49,"id":"k9","members":49,"s":56.01,"spend":0}],"d":"The Beach","def":{"burn":false,"id":"k3","members":27,"s":39.18,"spend":0},"holder":"k3","winner":"k9"},"night":{"at":1790814621096,"day":994896},"orders":{"k9":{"claim":"The Beach","claimBurn":"crew:d994896:k9:claim","claimSpend":0}}},"fetched_at":"2026-10-01T00:57:07.617Z","id":"c994896-the-beach","key":"contest:994896:The Beach","kind":"contest","prev_hash":"88a160dd3721b3921c3d69f6b5167db0b5573380a2b64f87452c775a282ca9ea","rev":1,"seq":261,"source":"https://www.grift.world/api/crews","source_path":"nights[day=994896].contests[d=\"The Beach\"]","v":1}