Hubz VCEDataHubz Attest

Compliance evidenceanyone can verify.

Hubz VCE anchors cryptographic evidence of compliance events on Base and proves compliance claims with zero-knowledge proofs verified on zkVerify. Personal data never goes on-chain.

Live activity

1,664

Proofs verified on zkVerify

zkVerify explorer

Updated live as organizations across the DataHubz ecosystem record and prove evidence.

Networks
Base mainnet · zkVerify mainnet
Live since
November 2025

An audit trail that doesn't depend on trusting the auditor.

Evidence anchoring

Each compliance event is reduced to a cryptographic hash and anchored by the EvidenceAnchor contract on Base, each in its own transaction. Every record gets a sequential ID, a type, and a timestamp that anyone can query.

Zero-knowledge circuits

Circom circuits and Groth16 proofs let a claim be checked without disclosing what it is about. Only commitments and hashes reach the chain; personal data never does.

Independent verification

Proofs are verified on zkVerify, and the evidence lives on a public blockchain. Anyone can confirm a record with a standard RPC call, without an account and without trusting DataHubz.

From an event to evidence on a public blockchain.

Hubz VCE runs alongside the systems where compliance work happens. Each event produces a proof and an anchored hash, so the record can be checked later by anyone, and changed by no one.

BaseHorizenzkVerify
  1. 1

    A compliance event happens

    A document is uploaded, signed, reviewed, or a security scan completes.

  2. 2

    A commitment is formed

    The event is hashed. For signatures, a Poseidon commitment binds the signer, the signature, the document, and the time.

  3. 3

    A proof is generated

    A Groth16 proof shows the claim holds, without revealing the private inputs.

  4. 4

    The proof is verified

    zkVerify checks the proof and records the verification.

  5. 5

    The evidence is anchored

    The evidence hash is anchored on Base in its own transaction and becomes part of an immutable audit trail.

Prove the claim. Keep the details private.

Document signature

Binds a signature to its signer, the document, and the moment it was made, through a Poseidon commitment. The proof shows the signature is valid; the signer, the signature, and the document stay private.

document_signature.circom · Groth16

Security scan

Proves a security scan met a bar without disclosing its findings, its score, or the tools that produced it.

  • No critical vulnerabilities
  • No high-severity vulnerabilities
  • No critical and no high vulnerabilities
  • Security score meets a threshold
  • Full compliance: all of the above

security_scan_proof.circom · Groth16

The engine behind compliance proofs in DataHubz Attest.

DataHubz Attest uses the Hubz VCE security-scan circuit for its compliance proofs. An organization can prove, for example, that a scan found no critical vulnerabilities, without handing over the scan. Each proof is verified on zkVerify mainnet and its receipt is anchored on Base.

Compliance proof

No critical vulnerabilities

Proven over a private security scan

  • Groth16 proof valid
  • Verified on zkVerify mainnet
  • Receipt anchored on Base
  • Scan findings never disclosed
Runs in DataHubz Attest

No account. No API key. Just the chain.

Every evidence figure on this page can be checked independently against the chain with standard tooling. Each contract keeps a monotonic counter, and each record can be read back with its hash, type, submitter, timestamp, and metadata. Hubz VCE has run on Base since October 2026, and the transactions it recorded on Horizen mainnet from November 2025 are part of its count. Horizen stops on November 5, 2026, so its contracts' counters and every record Attest sent there are archived with storage proofs, checked against Horizen's state as posted to Base.

Base mainnet

Horizen mainnet, November 2025 to October 2026

terminal
# total evidence records
cast call 0xC2f4d21B60f3914473DfBD3d2019580f19aC97dF \
  "evidenceCounter()(uint256)" \
  --rpc-url https://mainnet.base.org

# read one record
cast call 0xC2f4d21B60f3914473DfBD3d2019580f19aC97dF \
  "getEvidence(uint256)((bytes32,uint8,address,uint256,string))" 1 \
  --rpc-url https://mainnet.base.org