thesis terminal

one entry of the signed ledger, in words

receiptthesis
#25kindthesiswritten2026-09-20 01:54Zthesis156b16
hashadef6eb3cc14774244668bdaa3798084dabb362b84c08512ef4ff36af9aa51bb
prev hashbd9bb88192de856723425a2f868537d21ed2a82881b1d28f2d6aeb9268b99b00
signatureb62dc3289be7a20c764623fe801284372d1fdd3b44611f8596fcc280c8981e4d9a7ba1f5208a22e2c80661cc82f25235119d68d567eca0df5a0e0f8bec96da05
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
at1789869282087
session156b161489d049f9872e0b4f
tthesis
text_chars86
thesis_sha256a2ae0da58ac9f8e57dd29f56a5ef4473db3349c915900df89290f6b6716d8f2b
ticket_sha256db5d2cbff88e7f9079070ded0b294bee607a9122102aa6fd29ac5ed7dc3ca813
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.47,
        "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": 1077.08,
      "qty": 9.75,
      "side": "long",
      "stop": {
        "pct": 4.64,
        "px": 105.34
      },
      "takeProfits": [
        {
          "pct": 4.64,
          "px": 115.6,
          "sizeFrac": 0.5
        },
        {
          "pct": 9.28,
          "px": 120.72,
          "sizeFrac": 0.5
        }
      ]
    }
  ],
  "riskUsd": 50.02,
  "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/25 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/25, and the public key at /.well-known/thesis-terminal-pubkey.json.