Witness-DAO

Governance evidence layer

Governance evidence for DAOs that survives contact with a regulator, an auditor, or a court.

Witness-DAO seals every governance-significant action — proposal, vote, multisig approval, treasury movement — to a tamper-evident, externally anchored record bound to the rule that authorised it, then turns that trail into artefacts humans actually rely on.

The scan is a read. Nothing is sealed, no record is created, and no wallet address is retained.

The blockchain already does this.

The chain proves a vote happened. It does not produce a unified record spanning off-chain deliberation, Snapshot tallies, multisig approvals and treasury movements, each mapped to the ratified rule version that authorised it — and it does nothing at all for proof of non-participation, which is the half that matters to a named human after Ooki and Lido.

That gap has a buyer. After the CFTC’s Ooki DAO action — a DAO treated as an unincorporated association, where voting your tokens can create personal liability — and the 2025 N.D. Cal. ruling treating Lido DAO as a general partnership, the people with real exposure are the named humans: core contributors, multisig signers, and the LLC wrapping the DAO. For them, provable process and provable absence are defensible assets.

Witness-DAO is built for the wrapper, the signers, and their counsel — not for the anonymous token-holder.

Every line of evidence carries two grades, and the weaker one wins

Two independent things can be wrong with a piece of governance evidence. Verification asks whether the record is untamperable. Binding asks whether it is demonstrably about a real event. A perfectly anchored record of an unverified claim is a beautifully tamper-evident lie, so the two are combined on a weakest-link basis and never averaged.

Evidence strength by verification state and binding confidence. Read as STRENGTH_RULES[verification][binding].
Record verified…
…event bound →
onchain_confirmedsigned_offchainapi_assertedunbound
ANCHORED_VALIDPROVENSTRONGWEAKUNSUPPORTED
SIGNED_PENDINGSTRONGWEAKWEAKUNSUPPORTED
INSUFFICIENT_PROOFWEAKUNSUPPORTEDUNSUPPORTEDUNSUPPORTED
BROKENUNSUPPORTEDUNSUPPORTEDUNSUPPORTEDUNSUPPORTED

Exactly one cell is PROVEN, and it needs both an anchored-valid record and an on-chain-confirmed binding. ANCHORED_VALID × api_asserted is only WEAK: we prove what we were told and when, not that it happened.

Out of the box, nothing reaches the left-hand column. Verifying an anchor needs material pinned in advance — a Bitcoin block-header source, Rekor’s log key, or a trusted TSA root — and none of it ships with the library. A built-in “trusted” root would reintroduce exactly the vendor trust this layer exists to remove. Until you supply one, every record caps at SIGNED_PENDING and the report says which material is missing. That is honest, and it is also a real ceiling.

Three disciplines this codebase enforces

These are not style preferences. They are the reason the output is worth anything.

01

Binding confidence is never laundered

A sealed record is only as truthful as the claim fed into it. Sealing an unverified assertion produces a beautifully tamper-evident lie. Every event states in machine-readable form how strongly it is tied to observable reality, and no layer may upgrade that grade.

02

"Verified" is not "asserted"

An anchor reports verified only when it was cryptographically checked against pinned, independent material. Where a proof asserts inclusion in a Bitcoin block but the block itself cannot be confirmed without a header source, the verdict is asserted_unverified — and the offline verifier will not reach ANCHORED_VALID on it.

03

Evidence, not a certificate

Attestation is a human act. Reports carry a disclaimer that cannot be weakened or removed, and records on the free, unanchored Sealed tier are blocked from reports by default because that tier is terminal.

Start where you like. Nothing here needs an account.

In the browser

Paste a Snapshot space or a Safe address and see what your governance could prove. About a minute.

Run a scan →

On your machine

Zero runtime dependencies, Apache-2.0, no key needed for a dry run.

npx witness-dao ingest \
 --dao ens.eth --source snapshot
Start here →

From your agent

A read-only remote MCP server and an A2A agent card, free and unauthenticated.

Connect an agent →

What this is not

Honesty about limits is the point of the product, so these are on the way in rather than buried.

  • It does not enforce your rules, execute votes, or custody funds. It is an evidence layer beside the system of record, not the system of record.
  • It does not adjudicate. Every sealed record’s verdict is RECORDED, never PASS — deciding whether quorum was met or a spending limit respected is a different job.
  • It does not perform AML, sanctions or counterparty screening. There is no screening provider and no screening field.
  • It does not make anyone compliant, and it is not legal advice. Attestation is a human act.
  • It cannot delete the copy of a record held by the upstream SaaS: that platform exposes no delete operation today. Local erasure is complete and the gap is stated at the point of use.

Four independent adversarial audits — cryptographic, application security, enterprise readiness, and data protection — produced 86 findings between them. All four are published here in full, opening verdicts included, next to the disposition of every finding.

Witness-DAO — governance evidence for DAOs