The honest version of an AI trading record isn’t a screenshot of yesterday’s wins. It’s a history that can’t be edited after the fact. Trench captures every prediction at the moment of generation, hashes it, and writes a daily chain entry that references the prior day’s hash. Modify any past bundle and every subsequent hash breaks. Anyone can verify any prediction independently.
Every analyzer cycle the bot runs produces a "bundle" — the full prompt input, the raw response,
and the parsed signal. The bundle is captured to disk at the exact moment of generation.
Each midnight UTC, the day’s bundles are hashed (SHA256, line by line), summarised into a
daily record, and that record’s canonical JSON is itself hashed to produce combined_hash.
The chain is append-only: each day’s record carries the prior day’s combined_hash
as prev_hash. Tampering with day N silently invalidates every prev_hash in days
N+1 through today. The /api/registry/index.json
endpoint is the canonical chain.
Independent corroboration: each day’s registry URL is also submitted to the Internet Archive’s Wayback Machine, creating a third-party timestamped snapshot. To trust the chain, you don’t need to trust trenchsignals.io alone — you can cross-check our daily file against the Wayback record from that same date.
If you have a bundle (we’ll publish on request — email registry@trenchsignals.io), paste its SHA256 below to confirm whether and when it was registered.
Anyone with a Python interpreter can replay the chain. The script is open and the canonical JSON form is documented:
import hashlib, json, urllib.request
idx = json.loads(urllib.request.urlopen(
"https://trenchsignals.io/api/registry/index.json").read())
prev = "GENESIS"
for entry in idx["chain"]:
full = json.loads(urllib.request.urlopen(
f"https://trenchsignals.io/api/registry/{entry['date']}.json").read())
# Recompute combined_hash from the canonical body
body = {k: v for k, v in full.items() if k not in ("combined_hash", "anchored_at")}
canonical = json.dumps(body, sort_keys=True, ensure_ascii=True, separators=(",",":"))
computed = hashlib.sha256(canonical.encode()).hexdigest()
assert full["prev_hash"] == prev, f"prev mismatch on {entry['date']}"
assert full["combined_hash"] == computed, f"hash mismatch on {entry['date']}"
assert entry["combined_hash"] == full["combined_hash"], f"index mismatch on {entry['date']}"
prev = full["combined_hash"]
print("OK — chain verifies clean")
| Date | Bundles | Combined hash (SHA256, truncated) | |
|---|---|---|---|
| Loading chain… | |||
The most common claim in any "I built an AI that beats the market" story is unverifiable past performance. Anyone can claim, after the fact, that they predicted X. The honest test is whether the prediction existed in writing before the outcome was known. This registry is that proof layer: every cycle’s bundle is hashed and chained the same night it’s captured, independently archived to the Wayback Machine within hours, and verifiable by anyone with no cooperation needed from us.
A copycat starting today cannot fabricate prior predictions because the chain’s timestamps are anchored externally. The earliest any new participant’s registry can be is the day they start. Time spent operating in public is not catchable by working harder.