We can't rewrite history. Check it yourself.
Every day at 09:00 UTC we take every record published the day before (shadow intents whose game started, live bets that filled), write them into one canonical JSON file, and publish its SHA-256 hash. Each day's file also contains the previous day's hash, so the days form a chain: changing any past record would change that day's hash and break every link after it.
Chain status
Verified on every page load: 24 day(s) re-hashed from the stored files; every hash matches and every day links to the one before.
The server's own check is a convenience. The point is that you don't have to trust it: see "Verify it yourself" below.
Daily hashes
| Day (UTC) | Records | SHA-256 | Previous day's hash | File |
|---|---|---|---|---|
| 2026-10-31 | 60 | 85769dfe22d4e93902e67116e7c0a1392c446fe75153bbeab60461226f9163cf | 2379cccbf3f03a109f30d8fb101d65db9b9e742d422061b0e46a7e6c361fa9f1 | JSON |
| 2026-10-30 | 58 | 2379cccbf3f03a109f30d8fb101d65db9b9e742d422061b0e46a7e6c361fa9f1 | 6b15af41734ebdaf5fe7e1300cb67978363dbe995523a0963e3d6ae095e2c14f | JSON |
| 2026-10-29 | 49 | 6b15af41734ebdaf5fe7e1300cb67978363dbe995523a0963e3d6ae095e2c14f | 3c2935ff15d4c55c11bc371c71ad88b6eb12da539414e6629325a7fa594c842a | JSON |
| 2026-10-28 | 76 | 3c2935ff15d4c55c11bc371c71ad88b6eb12da539414e6629325a7fa594c842a | 2fae3741d16623c4cc8f580593a756c8dd898d495cf63d1ddea2d4d8513dffb3 | JSON |
| 2026-10-27 | 27 | 2fae3741d16623c4cc8f580593a756c8dd898d495cf63d1ddea2d4d8513dffb3 | efe74b0e01d6fa6a83396d6e37d6f4461bc6b6a09a7720c8ed91d776dd3e6d7d | JSON |
| 2026-10-26 | 19 | efe74b0e01d6fa6a83396d6e37d6f4461bc6b6a09a7720c8ed91d776dd3e6d7d | bb3d627708b31921067b5b311c4aae867a5312285ef0a31d0c4ec4f3e7fd1aab | JSON |
| 2026-10-25 | 44 | bb3d627708b31921067b5b311c4aae867a5312285ef0a31d0c4ec4f3e7fd1aab | 457360114e8beecf9c8633b191524ec93fa96a741bdf4799dda6304546e06bc0 | JSON |
| 2026-10-24 | 76 | 457360114e8beecf9c8633b191524ec93fa96a741bdf4799dda6304546e06bc0 | 7b1bc510a5071b37edb929b954674997634bfda6dd624399ea1c7783b1ae18ca | JSON |
| 2026-10-23 | 36 | 7b1bc510a5071b37edb929b954674997634bfda6dd624399ea1c7783b1ae18ca | baaa06278cd68d72a9231a51e90df96a92a5d8a2c7ba0213b51f23a5ac55f46b | JSON |
| 2026-10-22 | 42 | baaa06278cd68d72a9231a51e90df96a92a5d8a2c7ba0213b51f23a5ac55f46b | 39c00865e2a8df34bc758ff4de7e258e2ebf85a82f62b840b4e1fd3888e53dcf | JSON |
| 2026-10-21 | 51 | 39c00865e2a8df34bc758ff4de7e258e2ebf85a82f62b840b4e1fd3888e53dcf | 688277f9b5cd284c0ef6b44968bf5dd6bcd4b916d1939a585f54d1240b437367 | JSON |
| 2026-10-20 | 45 | 688277f9b5cd284c0ef6b44968bf5dd6bcd4b916d1939a585f54d1240b437367 | 82ae2e47f94aacce849b99830f1407a967233c7fa9c98df1ff925d51555acda6 | JSON |
| 2026-10-19 | 27 | 82ae2e47f94aacce849b99830f1407a967233c7fa9c98df1ff925d51555acda6 | 5bdcf2d8f61f958f4e943c7e987a8ab4cfaad0e6141868b3b85eaa3c698ea72f | JSON |
| 2026-10-18 | 33 | 5bdcf2d8f61f958f4e943c7e987a8ab4cfaad0e6141868b3b85eaa3c698ea72f | a9d97cc39a018e23ce363795e41459e1414bff88b21ab26bdde129d17c3125a7 | JSON |
| 2026-10-17 | 80 | a9d97cc39a018e23ce363795e41459e1414bff88b21ab26bdde129d17c3125a7 | 554aaa8f5e4074099414f68bb7ea4b3c9d4125465502c559065f9f016ea2578e | JSON |
| 2026-10-16 | 39 | 554aaa8f5e4074099414f68bb7ea4b3c9d4125465502c559065f9f016ea2578e | 63cf275d348d870f207b1652467a44d83b937f635e5775605e759d16809f9f6f | JSON |
| 2026-10-15 | 54 | 63cf275d348d870f207b1652467a44d83b937f635e5775605e759d16809f9f6f | d78e9ecc9260ca47d4b83fbfed028459b5e1f778afdefa711f5423286026f5b7 | JSON |
| 2026-10-14 | 62 | d78e9ecc9260ca47d4b83fbfed028459b5e1f778afdefa711f5423286026f5b7 | 9ec4049636da270cf018cabfce10eb308b6aab24cd1af19621fd1cdcf111f54e | JSON |
| 2026-10-13 | 61 | 9ec4049636da270cf018cabfce10eb308b6aab24cd1af19621fd1cdcf111f54e | 5d1fcf4a04fb2b96eccd7849e4f47d23eaf9511cd520776e1d4453c7fcdfe10e | JSON |
| 2026-10-12 | 19 | 5d1fcf4a04fb2b96eccd7849e4f47d23eaf9511cd520776e1d4453c7fcdfe10e | da7137729abc0d15be38215b53270a2ce46dfc5705e333d7e74a06f0a722f7b5 | JSON |
| 2026-10-11 | 34 | da7137729abc0d15be38215b53270a2ce46dfc5705e333d7e74a06f0a722f7b5 | b357bb1033c5d8558d9071dfb67de1c3d643a7ff73ee52ded8cb31cacd6d8b63 | JSON |
| 2026-10-10 | 80 | b357bb1033c5d8558d9071dfb67de1c3d643a7ff73ee52ded8cb31cacd6d8b63 | 4b216d012d05207170a40771cdbe8094bf5c5c73aa24757b8c14129ddb580cf0 | JSON |
| 2026-10-09 | 40 | 4b216d012d05207170a40771cdbe8094bf5c5c73aa24757b8c14129ddb580cf0 | 9307679c6b8a8fd82a2b6d59e74029f358c8628050cae11a8c3cc8d7957e31c4 | JSON |
| 2026-10-08 | 40 | 9307679c6b8a8fd82a2b6d59e74029f358c8628050cae11a8c3cc8d7957e31c4 | 0000000000000000000000000000000000000000000000000000000000000000 | JSON |
Verify it yourself
- Download a day's file (the JSON link above) and hash it. The output must equal that day's SHA-256:
curl -s https://www.degendailynews.com/edge/ledger/2026-10-31.json -o day.json sha256sum day.json # macOS: shasum -a 256 day.json # Windows: certutil -hashfile day.json SHA256 - Open the file: its
prev_hashmust equal the previous day's hash in the table. The first day links to 64 zeros. - Keep a copy of today's hash (the daily post on X is a public, timestamped copy). If a later version of this page ever shows a different hash for that day, the record was changed.
- Spot-check records: every record has an
id;/edge/i/<id>shows the same entry, and the Kalshitickerlets you check prices and results on Kalshi itself.
Rebuild the bytes from scratch (format)
The file is {"schema","date","prev_hash","n_records","records"} serialized as JSON with keys sorted, no whitespace ("," and ":" separators), UTF-8, no trailing newline. Records are sorted by published_at, then kind, then id. Numbers are fixed-point strings with 4 decimals ("0.4500"); times are YYYY-MM-DDTHH:MM:SSZ; missing values are null. A shadow record is published at its event start, a live record at its fill. Each record commits to the entry (price, time, side, probabilities); closing prices and results arrive later and are checkable on Kalshi.
import hashlib, json
doc = json.load(open("day.json", encoding="utf-8"))
body = json.dumps(doc, sort_keys=True, separators=(",", ":"), ensure_ascii=False).encode("utf-8")
print(hashlib.sha256(body).hexdigest())
Or run python scripts/verify_public_ledger.py from the DDN repository: it downloads every day and checks every hash and link.
21+ only. For entertainment and information; not financial advice. Past results do not predict future ones. Gambling problem? Call 1-800-GAMBLER.