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 5c27e38c8b77…eeae7c07:
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/b994894-k2-defend/canonical | sha256sum
Chain. The document includes prev_hash. It must equal the previous receipt's hash (c994894-the-docks), 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:
Canonical JSON the exact 1,223 bytes that were hashed
{"facts":{"burn":{"amount":"1000","at":1790810990667,"block":76911269,"burnt":"1000","by":"k2","day":994894,"first":false,"from":"0x806e5A29a76425f066C41BF5a49FB182B032dBF7","hash":"0xcb6336ba5c2909a48cdc865044d98cc44e8817aca31335b6c1ac63fed6cb2511","id":"crew:d994894:k2:defend","link":"https://robinhoodchain.blockscout.com/tx/0xcb6336ba5c2909a48cdc865044d98cc44e8817aca31335b6c1ac63fed6cb2511","n":null,"settledAt":1790811050136,"status":"settled","to":"0x000000000000000000000000000000000000dead","wallet":"crew","what":"Shine Crew: the defence of Finance, city day 994894"},"chain":{"burnAddress":"0x000000000000000000000000000000000000dead","chainId":4663,"explorer":"https://robinhoodchain.blockscout.com","token":"0x9f4BA41F91a59A34e17eE8C9EB3A51363B11aBD5"},"night":{"at":1790810990911,"day":994894},"orders":{"k2":{"defend":"Finance","defendBurn":"crew:d994894:k2:defend","defendSpend":0}}},"fetched_at":"2026-10-01T00:57:07.617Z","id":"b994894-k2-defend","key":"burn:crew:d994894:k2:defend","kind":"burn","prev_hash":"f00a9210d6576e7410a8dcb8aaf656cce8753a0951163796e516ad5ef1ec7283","rev":1,"seq":256,"source":"https://www.grift.world/api/crews","source_path":"chest.burns[id=\"crew:d994894:k2:defend\"]","v":1}