What is carved
When a chapter is kept, its coin, number, title, text and the facts it cites are joined into one plain text, the canonical text, in a fixed layout:
obelis chronicle v1 mint: <the coin's mint address> chapter: <n> title: <the title> <the chapter's text> facts: f2 | <label> | <value> (<note>) | <source kind>:<address or signature> f3 | ...
Its SHA-256 is written into a Solana transaction to the SPL Memo program (MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr), signed by the site’s memo signer:
obelis v1 <mint> #<n> sha256:<64 hex characters>
The memo is on chain for good. If one letter of the chapter, or one of its facts, were changed later, the hash would no longer match.
In one click
- 1
Press Verify under a chapter
It is there once the chapter is carved. - 2
Your browser hashes the text itself
It downloads the canonical text and computes its SHA-256 locally, without trusting the server’s hash. - 3
The memo is read from the chain
The server fetches the transaction from Solana and returns the memo and the wallet that signed it. - 4
Three checks
The hash in the memo equals your hash; the transaction succeeded; it was signed by the site’s memo signer. All three: the chapter is the one carved that day.
By hand
Trust nothing from this site at all? Do it from a terminal. Take the chapter id from its tablet or canonical link (/og/<id>):
curl -s https://jellybelly.fun/api/chapters/<id>/canonical | sha256sum
Then read the memo transaction straight from any Solana RPC (the signature is under “Carved on Solana”):
curl -s https://api.mainnet-beta.solana.com -H 'content-type: application/json' -d '{
"jsonrpc": "2.0", "id": 1, "method": "getTransaction",
"params": ["<memo signature>", {"encoding": "jsonParsed", "maxSupportedTransactionVersion": 0}]
}' | grep -o 'obelis v1 [^"\]*' | head -1The hash after sha256: must equal the one from step 1. On Solscan, the same memo shows under the transaction’s instructions, and the signer as its fee payer.
... | jq -r '.result.transaction.message.accountKeys[0].pubkey'
That address must be the memo signer shown on the agent page (now shown on the agent page).
What a result means
| Verify says | Meaning |
|---|---|
| matches what is carved on chain | The text, the hash, the memo and the signer all agree. The chapter is unchanged since it was carved. |
| does not match the memo | The chapter now differs from what was carved, or the memo is not this chapter’s. Do not trust that text. |
| not signed by this site’s memo signer | Someone else wrote a memo that looks like Obelis’. It proves nothing about the chapter. |
| not carved yet | The chapter is kept but its memo is still on the way (or carving is off on this server). The page shows which. |
The memo signer
Memos are signed by one small hot wallet that lives only in the server’s settings. It holds a little SOL for fees (a memo costs about 0.000005 SOL) and has no other power: it holds no coins and never trades. Its address and balance are on the agent page; the app warns when it needs a top-up, and carving that fails is retried.
The same way for every chapter, forever
The canonical layout is versioned (obelis chronicle v1, obelis v1). If it ever changes, the version changes with it, so old memos keep verifying exactly as they did.- —See also: Transparency, the API.