EDGE SCOREBOARD · PUBLIC LEDGER

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)RecordsSHA-256Previous day's hashFile
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

  1. 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
  2. Open the file: its prev_hash must equal the previous day's hash in the table. The first day links to 64 zeros.
  3. 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.
  4. Spot-check records: every record has an id; /edge/i/<id> shows the same entry, and the Kalshi ticker lets 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.

All hashes as JSON →   Back to the scoreboard →

21+ only. For entertainment and information; not financial advice. Past results do not predict future ones. Gambling problem? Call 1-800-GAMBLER.