Knew this shape.
At this block.
When a finding reaches quorum it stops being a private opinion. quorum attest writes the claim digest to Robinhood Chain, where the token is, as a self-addressed 0-value transaction. The finding itself never leaves the machine.
Findings
Agreement is signal.| Mark | Finding | Risk | Corroborated by | State |
|---|---|---|---|---|
| VulnerableVault.sol: | reentrancy | callorder-lens, guard-lens | Confirmed | |
| OpenFeeSetter.sol: | unguarded-state-write | modifier-lens, sender-lens | Confirmed | |
| FriendtechSharesV1.sol: | reentrancy | guard-lens (recall); first confirmed on VulnerableVault.sol, 1 sighting was enough | Recalled | |
| Aerodrome Router, WETH9, a Compound proxy | 11 candidates, none published. | no second lens agreed | Refused |
Disagreement is kept as a candidate and never published. Run Quorum against audited production contracts and it mostly holds its tongue.
The first paid claim, on Robinhood Chain
- Claimed
- FriendtechSharesV1.sol:
buyShares: reentrancy - Block
- 60762176 · 2026-09-12T02:46:55+00:00
- Fee burn
- 100,000 QUORUM at block 60762150, burn transaction
- Signer
- 0xf9946775891a24462cD4ec885d0D4E2675C84355
- Digest
- 0xfd7d5ec6e350aa28f160c2d3cf60d3faf4b52d8f7280bfe9f665ce1809042721
The first claim of all, Base block 51138878, predates the fee and the move and still verifies.
quorum verify
$ quorum verify 0xb999d218981ad9985b587da6c4017ae7dc8557ef702e27c9bbc9ca4f68bf1655 claim on Robinhood Chain block 60762176 2026-09-12T02:46:55+00:00 published by 0xf9946775891a24462cD4ec885d0D4E2675C84355 digest 0xfd7d5ec6e350aa28f160c2d3cf60d3faf4b52d8f7280bfe9f665ce1809042721 fee burned 100,000 QUORUM on Robinhood Chain, block 60762150, by the same signer the evidence for this claim is still in memory FriendtechSharesV1.sol:buyShares:reentrancy corroborated by guard-lens (recall) digest recomputed from memory matches the chain
In your browser
Everything above is a claim about a transaction. Read that transaction from the chain in this browser and check it against the digest printed on this page. Nothing is sent anywhere; the request goes straight from you to a public node, asking Robinhood Chain first and Base second, the same order quorum verify uses.
- Chain
- Calldata
- Block
- Published by
- Self-addressed
- Digest on chain
- Fee burn
- Result
What goes on chain
The digest commits to the risk, the idiom signature, the contract, the function and the exact set of lenses that corroborated it. What goes on chain is a timestamped, verifiable claim that this swarm knew this shape at this block, which is what a disclosure timeline actually needs.
quorum verify reads the claim back and recomputes the digest from memory: the claim is only meaningful if the evidence behind it is still there and still hashes the same. The transaction hash is written back onto the finding in memory, so the claim and its evidence stay joined.
Claims default to the token’s chain so a verifier needs one RPC, not two. The signing key is read from the process environment at call time and never logged.
The token
- Chain
- Robinhood Chain, id 4663
- Fee
- 100,000 QUORUM per published claim (1,000 at launch, until block 60761164)
- Paid to
- Nobody. Burned through
burn(uint256). - Supply
- Supply is read from the token contract.
- Claim shape
QUORUM2: digest plus burn transaction hash- Claim chain
- Robinhood Chain by default (
QUORUM_CHAIN_IDcan point at Base)
The first claim, Base block 51138878, predates the fee and the move; it reads back as a v1 claim with no burn to check.
Publishing costs
Scanning is free. Publishing is not.
The claims above form a public registry of “this swarm knew this bug shape at this block”. A public registry that is free to write to fills with junk, so writing to it has a cost, and the cost is destroyed rather than paid to anyone.
Each claim burns 100,000 QUORUM through the token contract’s own burn(uint256) on Robinhood Chain before the claim is written to the same chain, and the claim’s calldata carries the burn’s transaction hash.
quorum verify checks both halves: the digest on chain, and that the burn it points at is a real burn of at least the fee by the same signer. A claim whose fee was never burned does not verify.
The fee was 1,000 QUORUM at launch and is 100,000 from Robinhood Chain block 60761164. A burn is judged against the fee in force at its own block, so claims paid at the launch rate keep verifying.
Everything else, run, swarm, recall, retire, the memory tiers, the --no-memory test, has no token in it, and tests/test_token.py asserts that the scanner modules never touch it.
quorum reveal, quorum import
$ quorum reveal FriendtechSharesV1.sol:buyShares:reentrancy # discloses the claimed fields on chain (QUORUM3) revealed on Robinhood Chain FriendtechSharesV1.sol:buyShares:reentrancy https://robinhoodchain.blockscout.com/tx/0x7556ec748f8ffb9e2ca5809c4383e407f4affb9b847124c0d33205281e905f32 $ quorum --db fresh.db import 0x7556ec748f8ffb9e2ca5809c4383e407f4affb9b847124c0d33205281e905f32 # someone else's machine reveal reentrancy reentrancy:97d18d17cfa4494a by 0xf9946775891a24462cD4ec885d0D4E2675C84355 ok digest matches the claim ok revealed by the claim's signer ok claim fee of 100,000 QUORUM burned imported as a hint: still needs two local lenses to confirm
Reveal, and import
Once a claim is paid, its owner can reveal the pattern behind it, and any other swarm can import it. An import checks three things and refuses if any fails: the revealed fields hash to the claim’s digest, the reveal came from the claim’s signer, and the claim’s fee was burned.
So a pattern nobody paid to publish never enters anyone’s memory. That is the whole job of the token: it is the cost of being listened to by other people’s swarms.
No second fee. The claim already burned it. What the reveal adds is checkability, since anyone can hash the revealed fields and compare them to the claim.