receiptresolution
hash28e174c671d9e3bea71503f8dc89bd36aaef7350de041660fa5f2d4a7572fe06
prev hash0de326e3b12131531b5ef01f63b343a7e87210cb9de1556373929d2665e06fd2
signature71b41724dfcccc28e04786ce9d2c10fdf5deb0a582bd824abb7e688f1ed6bf1eaad53f8a4f89a8ff214752bfd017469f06836b95ae0fe913b3dc45051e27fd05
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
entry_ms1789899120000
hold_pnl_usd3.96
resolved_ms1789913746859
rung4h
session_id9955798c60064b6b91aed5d6
tresolution
thesis_hash82b53760f703162d6d2e7217cad95e6cabe0667a05caad8fd15902db5b11ff10
thesis_seq71
ticket_pnl_usd2.74
v1
entry_px
{
"BTC": 80379
}exit_px
{
"BTC": 80626
}legs
[
{
"coin": "BTC",
"entry_px": 80379,
"exit": "time",
"exit_px": 80626,
"fees_usd": 1.16,
"index": 0,
"kind": "perp",
"notional_usd": 1288.31,
"pnl_usd": 2.8,
"side": "long"
}
]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/83 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/83, and the public key at /.well-known/thesis-terminal-pubkey.json.