thesis terminal

one entry of the signed ledger, in words

receiptthesis
#28kindthesiswritten2026-09-20 01:57Zthesis7d7f10
hashbed1c8af164479e4ede516368b0b692f3ba882be1f113c6e9c6d34b6e0f1798a
prev hash5a1adfbc71d9b315c3e14999fa5b2cdd10713a7248bfc03fcfd32f4304e45fd4
signature53cbaedcc947092e929b14e97976d4f69ba5f6c35f6bca5801722e9000312b971509ae40850b1791865da94b7e8a3e57c6555e41b8a48d27f39f30a38710590c
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
at1789869461217
session7d7f10369b1c4fc59e5cfb45
tthesis
text_chars86
thesis_sha256a2ae0da58ac9f8e57dd29f56a5ef4473db3349c915900df89290f6b6716d8f2b
ticket_sha2566f22cdf5a3227e757f3166d26f3ff74f2e180c4c1b86fd17d7ea1041abb9f3c0
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.03,
  "side": "long",
  "view": "directional"
}
ticket
{
  "legs": [
    {
      "coin": "SOL",
      "entry": {
        "px": 110.52,
        "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 111 entry, not from the mid); targets take half the size at 1R and half at 2R.",
      "notionalUsd": 1077.57,
      "qty": 9.75,
      "side": "long",
      "stop": {
        "pct": 4.64,
        "px": 105.39
      },
      "takeProfits": [
        {
          "pct": 4.64,
          "px": 115.65,
          "sizeFrac": 0.5
        },
        {
          "pct": 9.28,
          "px": 120.78,
          "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/28 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/28, and the public key at /.well-known/thesis-terminal-pubkey.json.