thesis terminal

one entry of the signed ledger, in words

receiptthesis
#27kindthesiswritten2026-09-20 01:56Zthesis37a1c2
hash5a1adfbc71d9b315c3e14999fa5b2cdd10713a7248bfc03fcfd32f4304e45fd4
prev hash4ad6d9bb5b317a5bb16f53fbecbeffa2e30d8c8ca5be19b6099808a300a734c5
signatureb870904671dd50420e816e9b5f4853e8d7a429112390db09cf2958d981afd82ef304b239f76e0da7b8fdae6498ee6d4dfc8bf8744821003d93352ec06128860a
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
SOL runs into the weekend, I want to be long but I can't watch it, keep the risk small Refinement 2: smaller risk
at1789869381870
session37a1c215c75448a08abe02b0
tthesis
text_chars114
thesis_sha256958da23dedd6a0430c0c061355f38c6b4a4b31461375919272517f8723662943
ticket_sha256e7d56193375ad753da5919489398b86c612ef4f8ffaeb19ce2082a9136ac3266
v1
wallet_boundfalse
target
{
  "asset": "SOL",
  "constraints": {
    "defined_risk": false,
    "delta_neutral": false,
    "hands_off": true,
    "keep_dry_powder": false,
    "no_cex": false,
    "no_sell_holdings": false
  },
  "horizon": "days",
  "injection": 0.02,
  "side": "long",
  "view": "directional"
}
ticket
{
  "legs": [
    {
      "coin": "SOL",
      "entry": {
        "px": 110.48,
        "type": "market"
      },
      "kind": "perp",
      "leverage": 1,
      "marginMode": "cross",
      "note": "Stop is 1.5x the daily ATR (the 14-bar 1h ATR scaled by sqrt(24), because this prototype only fetches 1h candles) for a days-long hold (4.6% from the 110 entry, not from the mid); targets take half the size at 1R and half at 2R.",
      "notionalUsd": 538.04,
      "qty": 4.87,
      "side": "long",
      "stop": {
        "pct": 4.64,
        "px": 105.35
      },
      "takeProfits": [
        {
          "pct": 4.64,
          "px": 115.61,
          "sizeFrac": 0.5
        },
        {
          "pct": 9.28,
          "px": 120.73,
          "sizeFrac": 0.5
        }
      ]
    }
  ],
  "riskUsd": 24.98,
  "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/27 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/27, and the public key at /.well-known/thesis-terminal-pubkey.json.