exit-protocol.io / log
Evidence log
EXIT appends its own observation records to one append-only Merkle log (RFC 6962). Roots are committed on Solana in a memo transaction. Everything needed to check this is published here, and the verifier is a single Python file that imports nothing from EXIT.
Current anchored state
| Anchored tree size | 200 records (the log holds 200; 3 anchors so far) |
|---|---|
| Root (SHA-256) | 54e5d8d4e5682a4d971a55865bd001e4a5818a56169ffef5599b90862ef7778b |
| Anchor transaction | ZrMT4j1SbNDfGoNm5u5YEqL4F9ZA5VqYALRPJMJfZ1g3mkQxyvtBLewAEWvDsuDu7QKR5iBwihd6Sw7GBVpJnafSolscan ยท Solana Explorer |
| Slot, block time (UTC) | 462273926, 2026-10-28T00:30:07Z |
| Expected cadence | One anchor a day, shortly after 00:30 UTC. If the block time above is more than about 26 hours old, an anchor was missed; the log itself still verifies. |
| Memo | EXIT-ROOT-v1 200 54e5d8d4e5682a4d971a55865bd001e4a5818a56169ffef5599b90862ef7778b 2026-10-28 134 |
| Notary key | 4QuiVCiYFzBjHFNEzZnHu9WCYBAZPnUxtfHcWX9UkqJH |
| Records with published proofs | 198 records at the anchored size. 2 further records have their proofs held until their own publication, or belong to an account; their leaves are in the tree. |
Verify it yourself
Python 3.9 or later, standard library only. Download exit_log_verify.py, read it, then run:
python3 exit_log_verify.py log https://exit-protocol.io/log/ --rpc https://api.mainnet-beta.solana.com python3 exit_log_verify.py proof https://exit-protocol.io/log/proofs/200/00000000.json \ --rpc https://api.mainnet-beta.solana.com --notaries https://exit-protocol.io/log/notaries.json
The first command rebuilds every root from the published leaves, checks every consistency proof, and fetches every anchor transaction to compare its memo and signer. The second checks one record: its leaf, its audit path to the root, and the anchor. Any Solana RPC provider works; use one you trust.
What a passing check proves
- The supplied record matches a commitment included no later than the verified anchor. This does not establish possession of the raw evidence bytes named by their hashes.
- Each published tree extends the previous one: no leaf was removed or changed.
New roots use append-sequence/2: insertion order is separate from a record's stated known_at. A late record does not backdate inclusion or change an earlier root. Service-private submissions are distinct from operator-authored public research.
stated knowledge time โ bounded admission โ append position โ independently verified anchor
Admission can be deferred or refused. Account views report capacity, expiry or unavailable status; a pending submission is not an anchored record.
What it does not prove
- That the chain state a record describes is true. Check the evidence at its own slot or block.
- That EXIT knew something earlier than the anchor. A record's
known_atis EXIT's own statement. - That nothing was left out of the log.
- Who controls any address.
Memo format
EXIT-ROOT-v1 <tree size> <root> <log date, UTC> <previous tree size>. The last field
is the size of the previous root in roots.json, the root that the consistency proof starts from. It is
not a reference to an earlier anchor: the first anchor (tree size 68) names 66, the log's first root, which was never anchored
itself.
Files
- SPEC.txt: records, leaves, tree, anchors and proof bundles, exactly.
- leaves.json, roots.json, anchors.json, notaries.json, proofs.json
- Proof bundles:
proofs/<anchored tree size>/<8-digit leaf index>.json - SHA256SUMS for every file in this folder.
Not in this version
- Service answers: when they enter the log, only their salted leaves and known_at times are public; their records and proofs go only to the account that asked.
- The evidence bytes are not published here; each record names them by SHA-256.
- The log is anchored once a day at 00:30 UTC when it has grown, by the server notary key listed in notaries.json (the first anchor was signed by a different key, also listed); a day without new records sends nothing. Proofs are published for every anchored size, so a proof link stays valid.