receiptthesis
hash09f0486b1a4799e7828e5c3eaaa872b2b2ddd15c664780471e3ad32a44d54f9e
prev hash7bfb1efffa8fb2e5ed9598bac56b57faef3dd995dc1308db9b78d72f96dc2d7e
signatureac9d793048daa66b78960ddcc0f4e5a9950f5861d7a98fe48017cf493b8cded687840af907dcd61e4a6aa75e93efc62fd079b6bfdee761b0731bee69b7f6360e
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
ETH long position. Refinement 2: I put 1k usd in 30 days ago
at1789888884637
session4044c67175e747eb80755caa
tthesis
text_chars61
thesis_sha2569aba7892e2b6288e8ca97df3576e07c826faa3a3a9d88648144fb8c16cb74ae1
ticket_sha256d9a25e0a5d6d25bc76f7c00c4d8438d48c3836b58f7bad937e93361bae138ccf
v1
wallet_boundfalse
target
{
"asset": "ETH",
"constraints": {
"defined_risk": false,
"delta_neutral": false,
"hands_off": false,
"keep_dry_powder": false,
"no_cex": false,
"no_sell_holdings": false
},
"horizon": "months",
"injection": 0.02,
"side": "long",
"view": "directional"
}ticket
{
"legs": [
{
"coin": "ETH",
"entry": {
"px": 2579.8,
"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 (13.2% from the 2,580 entry, not from the mid); targets take half the size at 1R and half at 2R.",
"notionalUsd": 757.43,
"qty": 0.2936,
"side": "long",
"stop": {
"pct": 13.2,
"px": 2239.3
},
"takeProfits": [
{
"pct": 13.2,
"px": 2920.3,
"sizeFrac": 0.5
},
{
"pct": 26.4,
"px": 3260.9,
"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/65 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/65, and the public key at /.well-known/thesis-terminal-pubkey.json.