AI Trading FleetAbout the Fleet
Free tools · Audit log

Try to edit a trading log without getting caught

Updated 25 September 2026 · Free, no sign-up · Runs in your browser

Below are four rows from an example trading decision log. Each row stores a SHA-256 hash of its own contents plus the hash of the row before it. Pick a row, change any value, and watch verification fail. Then press Cover it up to rewrite that row's hash and see what happens to the next row.

    Row

    prior_row_hash
    payload · edit any value
    canonical_json(payload)
    stored row_hash
    recomputed · sha256(prior_row_hash + canonical_json)

    Example rows, not real orders. Each row stores row_hash = sha256(prior_row_hash + canonical_json(payload)), with keys sorted and no spaces, as in fleet/audit/chain.py.

    In short

    A hash-chained log makes silent edits visible. Changing one row changes its hash, and every later row points at the old hash, so the chain breaks at the first edited row. It doesn't stop someone rewriting the whole log from that point on. That needs the latest hash to be copied somewhere the log's owner can't change.

    How the hash is calculated

    canonical_json = JSON with keys sorted and no spaces
    row_hash       = sha256(prior_row_hash + canonical_json(payload))
    first row      : prior_row_hash is empty

    The demo uses the browser's Web Crypto API. The Fleet does the same thing server-side in Python (fleet/audit/chain.py), and the hashes match: same payload in, same hash out. Nothing you type here is sent anywhere.

    Why a trading system should keep one

    When software trades on your account, "why did it do that?" needs an answer that can't be quietly rewritten afterwards. The Fleet writes every risk decision, order, rejection and kill-switch press to logs like this one. A row can be added but not edited without breaking verification, so a bad trade can't be made to disappear from the record after the fact.

    What it does not prove

    Built by AI Trading Fleet: automated trading on your own exchange account with trade-only API keys and limits you set.