How Zoro uses Hedera
Hedera is a public diary with time stamps nobody controls. Zoro writes every verdict into it, so anyone can see what was decided and when, and nobody, not even Zoro, can rewrite history.
Technically: Zoro writes every verdict, revocation and dispute to a Hedera consensus topic, mints a badge token for each sealed version and burns it on revoke, and anchors its own audit log there as Merkle roots.
Think of it as a notary’s logbook that the whole world can read
Every entry gets a page number and an official time stamp. You can add new pages, but you can never tear one out or change an old one.
Without Hedera
Zoro keeps its own log. After an incident, how would you know it wasn’t edited?
With Hedera
Every verdict and revocation has a public, network-assigned time and order that anyone can check.
From first principles
Why Zoro needs Hedera at all.
Five short steps, from the problem to the answer. Each card has a plain version; open “technical version” for the details.
The problem
Knowing today’s verdict isn’t enough. You also need the history: when it was decided and whether anything was changed later.
Show the technical version
Why the obvious fix fails
A signature proves who wrote something, not when. And putting everything on an expensive blockchain would leak your private activity.
Show the technical version
What is actually needed
A cheap, public, add-only log with time stamps nobody controls, that can vouch for private data without showing it.
Show the technical version
Why Hedera provides exactly that
Hedera gives every message an official time and order within seconds, for a fraction of a cent, and anyone can read it.
Show the technical version
So Zoro uses Hedera as
The public diary of every verdict, plus a badge per approved tool and a tamper-proof stamp on Zoro’s own log.
Show the technical version
Inside Zoro
What happens, step by step.
Publish every verdict
Each new verdict becomes a public message with an official time stamp.
How exactly?
verdict.issued message (or verdict.reissued) to the registry topic; Lab runs use a separate Lab topic. The network assigns its timestamp and sequence number.Link both ways
The ENS name points to the diary entry, so you can check the two agree.
How exactly?
zoro.ledger stores hedera:<network>:<topic>:<sequence>, so a verifier can go from the name to the ledger message and check they agree.Badge on seal, burn on revoke
An approved tool gets a badge; if it is revoked, the badge is destroyed so it can’t be shown off any more.
How exactly?
seal.revoked message.Anchor Zoro’s own log
Zoro regularly stamps a summary of its private log in public, proving it was never edited, without revealing what is in it.
How exactly?
For developers
A verdict message on the topic (version 1, JSON)
You don’t need this to use Zoro. It is the exact data Zoro writes, so anyone can check it independently.
| Field | What it holds |
|---|---|
| type | verdict.issued, verdict.reissued or seal.revoked (disputes have their own types) |
| fp | Version fingerprint |
| ens | ENS name of the version, when the registry is configured |
| server / tool | Which server and tool |
| verdict / risk / changeClass | The Sentinel result |
| verdictHash / sig / auditor | Hash of the verdict package, the auditor’s signature and address |
| ts | Zoro’s timestamp; the network adds its own consensus timestamp |
Where you see it in Zoro
- Verify page: reads the verdict back from the mirror node and checks the signature
- Home page and registry counts, computed from the topic when it is configured
- Revocations and disputes that every gateway can follow in order
What it does not do
- By default Zoro uses the Hedera test network (HEDERA_NETWORK can switch it).
- Verdict messages describe tools. Your own calls only ever appear as Merkle roots.
- Hedera proves when and in what order; the auditor signature proves who.
Read the code
Try it
See Hedera doing its job inside Zoro.
The other tracks