thesis terminal

one entry of the signed ledger, in words

receiptthesis
#71kindthesiswritten2026-09-20 10:11Zthesis995579
hash82b53760f703162d6d2e7217cad95e6cabe0667a05caad8fd15902db5b11ff10
prev hash328b203716958b9444ace8b9573057413cb8dd943ee9d8b608f7395d24030487
signature7912745e21e4e9087e4698567e78c4fc7a29ecf5757de2698926a109c8ad22b34c13935a42aed3c700b58e76e5bed56b3485dd9f979581d80f91cdafce769904
public keyf25f03fbc22533bc1b707bdcd9a452968c8724afa039cebd6d485dc741f63975
hash = sha256(prev hash + the canonical payload JSON); the signature is Ed25519 over the lowercase hex hash. Change one character of the payload and every entry after this one stops verifying.
what was claimed
Long hold BTC,
at1789899093043
session9955798c60064b6b91aed5d6
tthesis
text_chars14
thesis_sha25664398294516e28efb6b802ead9cfc7b12da243c89bdcac66aa8d6bc566ac86d7
ticket_sha25614a0348fe120de8380fda6313574848385f2247a3d03d1283ef5d1998de56a76
v1
wallet_boundfalse
target
{
  "asset": "BTC",
  "constraints": {
    "defined_risk": false,
    "delta_neutral": false,
    "hands_off": false,
    "keep_dry_powder": false,
    "no_cex": false,
    "no_sell_holdings": true
  },
  "horizon": "months",
  "injection": 0.03,
  "side": "long",
  "view": "directional"
}
ticket
{
  "legs": [
    {
      "coin": "BTC",
      "entry": {
        "px": 80620,
        "type": "market"
      },
      "kind": "perp",
      "leverage": 1,
      "marginMode": "cross",
      "note": "Stop is 4x the daily ATR (the 14-bar 1h ATR scaled by sqrt(24), because this prototype only fetches 1h candles) for a months-long hold (7.8% from the 80,620 entry, not from the mid); targets take half the size at 1R and half at 2R.",
      "notionalUsd": 1288.31,
      "qty": 0.01598,
      "side": "long",
      "stop": {
        "pct": 7.76,
        "px": 74364
      },
      "takeProfits": [
        {
          "pct": 7.76,
          "px": 86876,
          "sizeFrac": 0.5
        },
        {
          "pct": 15.52,
          "px": 93132,
          "sizeFrac": 0.5
        }
      ]
    }
  ],
  "riskUsd": 99.97,
  "template": "perp_swing"
}
Shown as it was signed, with the wallet taken out: a field named address or walletNote reads [redacted], any 0x address inside any other field reads 0x… (a vault link keeps its own, which is a public contract), and a clause quoting what a wallet holds is cut and says so. Those bytes are unchanged in the signed entry — /ledger/71 serves it verbatim, and that is what the verifier hashes.
check it yourself

Nothing here asks you to trust this page. Run the independent verifier: it refetches every entry, recanonicalises each payload, recomputes the chain and checks each signature against the published key.

node scripts/verify_ledger.mjs https://think.ascendants.io
The head is at /ledger/head, this entry's raw JSON at /ledger/71, and the public key at /.well-known/thesis-terminal-pubkey.json.