On this page
Documentation
Introducing Attest.
Attest is a Web2 platform that delivers Web3 guarantees as a service. It gives documents, signatures, credentials, and facts proof that anyone can check and no one can forge, while everyone involved uses it like any other app.
You sign agreements with your fingerprint, create permanent receipts for files and events, prove facts without revealing them, issue credentials people carry into wallet apps, seal documents until a deadline or an approval, and collect anonymous answers that are each proven to come from someone eligible. Behind each of those, Attest carries out everything a blockchain requires: a wallet for every user, gas for every transaction, anchoring on Horizen mainnet, and independent proof verification on zkVerify. You never see a wallet, a seed phrase, or a token.
Why it exists
Digital trust is broken in three ways.
Most digital evidence is easy to fake. A signed PDF is a picture of a signature. A log file can be edited. A timestamp is whatever the server says. When it matters, you end up trusting whoever holds the database, and hoping they never make a mistake, get breached, or go out of business.
Blockchains fixed that: records no one can alter, verifiable by anyone, with no one in charge. But they ask everyone to become crypto experts first. Wallets, seed phrases, gas fees, bridges between networks, tokens to buy. Most people and most companies will never do that, so the guarantees stay out of reach.
And there's a third problem: proof usually means exposure. To show you have a contract, you show the contract. To show a scan passed, you share the scan.
Vision
The guarantees of Web3, the user experience of Web2.
We believe verifiable truth should be a utility, as ordinary as email and as easy as signing in with your fingerprint. Every agreement, record, and claim that matters should be checkable by anyone, forever, without trusting the company that issued it, including us.
Our principles follow from that. Evidence must outlive its issuer: if DataHubz disappeared, every record would still verify. Privacy is the default: we can't read your documents, and proofs disclose only what you decide. And the cryptography is done properly, not approximately: each user has their own wallet and keys, and every ceremony a blockchain or proof system requires is carried out and recorded.
Problems it solves
From “trust me” to “check for yourself”.
A signature can be disputed.
Each signature is made by the signer's own passkey over a statement naming the document, the signer, and the time, then anchored from the signer's own wallet. Anyone can check it.
A file can be altered after the fact.
A receipt proves the exact content existed, unchanged, at a point in time. Change one byte and verification fails.
Confidential deals can't be proven without disclosure.
A zero-knowledge proof shows who you have an agreement with, and when, while the agreement stays private.
Records depend on the vendor that holds them.
Anchors live on a public blockchain. Anyone can verify them without an account, or without Attest at all.
Blockchain is too hard to adopt.
Attest runs wallets, gas, bridging, and proof submission for you. Users sign in with a passkey or an email link.
Cloud services can read what you upload.
Documents are encrypted in your browser before upload. We store ciphertext and can't decrypt it.
AI agents act without an audit trail.
Each agent action can become a receipt: what was done, when, and who authorized it.
Certificates and badges are easy to fake, and revocations go unnoticed.
Proof Cards are signed credentials anyone can check, with revocation status read live and every change anchored.
Bids and proposals can be peeked at before the deadline.
Sealed submissions are time-locked with drand: no one can open them before the deadline, not even the organizer or Attest.
Sensitive documents rely on one person to release them.
Approval releases and continuity vaults split the key among several people, so no one, Attest included, can open them alone.
Anonymous surveys either leak identities or let anyone answer.
Verified Forms prove each answer came from someone on the list, once, without revealing who.
What it's good for
Anywhere proof matters more than paperwork.
Contracts and legal
NDAs, service agreements, and consents signed with evidence that holds up, with certificates anyone can check.
Compliance and audit
Prove a control passed, a report was final, or a scan was clean, without handing over the underlying data.
AI agents
An accountable trail of what automated agents did, when, and on whose authority.
Media provenance
Show that an image, video, or recording is the original and hasn't been edited since a point in time.
Software supply chain
Receipts for builds and releases, so anyone can confirm the artifact they run is the one you shipped.
Confidential partnerships
Prove a relationship exists, and since when, without disclosing its terms or the other parties.
HR and procurement
Offer letters, policies, and supplier agreements with verifiable acceptance.
Training and credentials
Certifications, supplier approvals, memberships, and employment, as cards people carry and verifiers check live.
Tenders and applications
Collect bids, proposals, or applications that stay sealed until the deadline, with receipts proving they arrived on time.
Business continuity
Handovers, account access, and instructions released only with enough approvals, or if someone stops checking in.
Governance and feedback
Team pulses, committee votes, and member feedback with honest, anonymous answers from exactly the right people.
Platforms and SaaS
Add verifiable records and signing to your own product through the API, with no blockchain work on your side.
What you can do
Eight capabilities, one platform.
In the dashboard, the left sidebar groups them: Evidence (agreements, receipts, proofs), Credentials (Proof Cards), Confidential (sealed submissions, approval release, continuity vault), Collect (Verified Forms), and Build (developers). Your organization, security, and plan are under Settings.
Create receipts
Turn any file or record into a permanent, verifiable receipt, from the dashboard or one API call.
Sign agreements
Send an end-to-end encrypted document to any number of signers, in any order or a set order. Completed agreements are anchored and get a certificate.
Prove facts in zero knowledge
Prove you're a party to an agreement, or that you have one with a specific party on a given date, while everything else stays private. Proofs are verified on zkVerify.
Issue Proof Cards
Issue training certificates, supplier approvals, memberships, and employment cards from your organization. Each is a W3C Verifiable Credential and an SD-JWT VC: holders reveal only the fields they choose, add it to wallet apps through OpenID4VCI, and present it through OpenID4VP. Suspend or revoke any time; every issuance and status change is anchored, and the holder is emailed.
Share on your conditions
Sealed submissions: collect files no one can open before your deadline. Approval release: a document that opens for its recipients only after k of n approvers approve, and not before a date if you set one. Continuity vault: information released to the people you choose only if you stop checking in and your trustees confirm. Everything is encrypted in the browser.
Collect Verified Forms
Ask a group questions and get anonymous answers, each carrying a zero-knowledge proof that it came from someone on your list (or a holder of a Proof Card), once. Proofs are verified on zkVerify; anyone who can see the results can re-check every one.
Verify anything
Check any receipt, agreement, proof, or credential for free, with no account: by ID, by fingerprint, by dropping the original file, or by pasting a credential.
Integrate with the API
Most of the dashboard is available as a REST API, so your software can create, prove, issue, seal, and verify on its own. What needs a person's passkey (signing, approving, checking in) stays with that person.
How it works
How each one works.
A receipt
- 01
Fingerprint
Your file is hashed on your device. Only the fingerprint is sent.
- 02
Record
A receipt is created at once, with its ID and time.
- 03
Batch
Within 10 minutes, your records are sealed into a Merkle tree.
- 04
Anchor
The root is written to Horizen mainnet from your own wallet.
An agreement
- 01
Encrypt
The document is encrypted in your browser and locked to each party's key.
- 02
Sign
Each signer reviews it and signs with their passkey; each signature is anchored from their own wallet.
- 03
Complete
The signed state is fingerprinted and becomes a receipt.
- 04
Anchor
It's anchored on Horizen from the creator's wallet, with a public or private certificate.
A zero-knowledge proof
- 01
Commit
Completed agreements join an anchored commitment root.
- 02
Prove
You choose a statement; a Groth16 proof is generated against that root.
- 03
Verify
The proof is submitted to zkVerify for independent verification.
- 04
Share
Anyone can check it, and learns only the statement.
A Proof Card
- 01
Issue
Your organization signs the card with its own key, and the issuance is anchored.
- 02
Hold
The holder accepts it in Attest or adds it to a wallet app.
- 03
Present
They share or present it, revealing only the fields they choose.
- 04
Check
Verifiers check the signature and read its revocation status live.
A sealed or conditional release
- 01
Encrypt
The file is encrypted in the browser; Attest stores only ciphertext.
- 02
Lock
The key is time-locked with drand, split among approvers or trustees, or both.
- 03
Condition
The deadline passes, or enough people approve with their passkeys.
- 04
Open
Only the intended people can open it, in their own browser.
A Verified Form
- 01
Join
Each eligible person creates a private identity for the form in their browser.
- 02
Answer
Their browser proves they're on the list, without saying who, and sends the answer.
- 03
Verify
Attest and zkVerify verify every proof; a second answer from anyone is refused.
- 04
Anchor
The terms, the group, and the final results are anchored on Horizen.
Trust model
What we can see, and what we can't.
Attest cannot see
- The content of your documents: we store ciphertext only.
- Your private key, passkey secrets, or recovery phrase: they never leave your device unencrypted.
- The content behind a receipt: you send its fingerprint, not the file.
- What a zero-knowledge proof keeps hidden: it isn't in the proof.
- Sealed submissions, approval releases, and vault contents: they're encrypted to the people you chose.
- Which answer in a Verified Form came from which person.
Attest does see
- Account emails, agreement titles, signer emails, and signing times.
- Fingerprints, claims, and metadata you attach to receipts.
- The statements you choose to reveal in a proof.
- Proof Cards you issue (the issuer signs them; the holder chooses what to share).
- Who submitted to a sealed call, who approves or receives a release, who is named in a vault, and when each acted.
- Who is invited to a Verified Form and who joined, and when requests reach our servers. We don't link a member's visit to their answer.
What you don't have to trust: that we kept the record honestly. Every anchor is on a public blockchain and every proof is checked by zkVerify, so a record can be verified with standard tools even if Attest is offline or gone. The technical details on each verification page show exactly what to check.
Taxonomy
The vocabulary of Attest.
Records
- Fingerprint
- The SHA-256 hash of a file or text: a 64-character code that changes completely if a single byte changes. Attest works with fingerprints, not your content.
- Receipt
- A permanent record that content with a given fingerprint existed, unchanged, at a point in time. IDs start with rcpt_.
- Kind
- What a receipt is about: Document, Image, Video, Audio, Event, Agent action, Code artifact, or Custom.
- Claim
- A short human statement attached to a receipt, such as “Q3 report, final”.
- Superseding receipt
- A correction. It points to the receipt it replaces; nothing is ever deleted or edited.
Anchoring
- Batch
- The records created by one user in one 10-minute window, sealed together.
- Merkle tree and root
- A structure that combines a batch's fingerprints into a single 32-byte root. Each record gets an inclusion proof that ties it to that root.
- Anchor
- The blockchain transaction that records a root on Horizen mainnet. From then on, the record can be verified without Attest.
- User wallet
- The blockchain account Attest creates and runs for each user. Every anchor is sent and paid from the owner's own wallet.
- Treasury
- Attest's pool of funds that tops up user wallets with gas, so no user ever handles crypto.
Agreements
- Agreement
- A document sent to one or more signers. IDs start with agr_.
- Signer
- A party who signs, by email link or, for the creator, in the dashboard. Agreements can be signed in any order or in a set order.
- Signing link
- The private link emailed to a signer. It lets them sign that agreement only; it never logs anyone in.
- Certificate
- The record of who signed and when. Public (anyone can verify it) or private (only the parties can see it).
- Passkey signature
- How a signer signs: their passkey signs a statement naming the document's fingerprint, the signer, and the time. It's stored with the agreement, anchored from the signer's wallet, and anyone can re-check it in their browser.
- Completion
- When the last signer signs, the agreement's signed state is fingerprinted, turned into a receipt, and anchored.
Keys and privacy
- Key
- Each user's encryption key pair. The private half is created in the browser and stored only in encrypted form; Attest can't use it.
- Passkey
- A credential on your device, unlocked by Face ID, Touch ID, or Windows Hello. It signs you in and unlocks your key. You can have one per device.
- Recovery phrase
- A backup that unlocks your key if you lose your passkeys. Shown once; Attest can't recover it.
- Document key
- A random key that encrypts one document. It's locked separately to each party's key.
- Grant
- Giving a signer access to a document after they set up their key: the creator's browser locks the document key to the signer's key.
Proofs and verification
- Zero-knowledge proof
- Mathematical proof that a statement is true without revealing anything else. Attest uses Groth16 proofs. IDs start with azk_.
- Commitment root
- A published, anchored summary of all completed agreements. Proofs are made against it, so they can be checked without seeing any agreement.
- zkVerify
- An independent network that verifies zero-knowledge proofs. Attest submits every proof there: agreement proofs, compliance proofs, and Verified Form answers.
- Compliance proof
- A zero-knowledge proof about a security scan, such as “no critical vulnerabilities”, that keeps the scan's numbers private. It runs on the security-scan circuit from Hubz VCE, a DataHubz project.
- Verification
- Checking any of the above, free and without an account, on the Attest verifier, through the API, or directly on the blockchain.
Proof Cards
- Proof Card
- A credential your organization issues: training, supplier approval, membership, employment, or custom. IDs start with cred_.
- Issuer
- The organization that signs a card, identified by a did:web address with its own signing key.
- Selective disclosure
- Revealing only some of a card's fields while the signature still verifies.
- Status list
- A published, signed list that says whether each card is valid, suspended, or revoked. Every version is anchored.
- SD-JWT VC
- The second format every card is issued in, read by wallet apps (IETF, following the DIIP profile).
- Wallet app
- An app that holds cards. Cards move into one through OpenID4VCI and are presented from it through OpenID4VP.
- Presentation request
- Asking someone to present a card, with the fields you need. Answered only with holder binding: proof the holder controls the card.
Confidential sharing
- Sealed call
- A request for submissions that can't be opened before its deadline.
- Time lock
- Encryption only a future drand round can open. drand, run by the League of Entropy, publishes each round's key at a fixed time.
- Approval release
- A document that opens for its recipients once enough approvers approve, and not before a date if one is set.
- Threshold
- How many people must act together, like 2 of 3. The key is split with Shamir's secret sharing, so fewer reveal nothing.
- Continuity vault
- Information released to beneficiaries only if its owner stops checking in and enough trustees confirm.
- Check-in
- The vault owner's periodic passkey tap that keeps a vault closed. It also cancels any confirmations in progress.
- Trustee and beneficiary
- Trustees confirm a release when it's needed; beneficiaries are the only people who can open it.
Verified Forms
- Verified Form
- Questions for a known group, answered anonymously and at most once per person. IDs start with frm_.
- Group
- The public fingerprints (commitments) of everyone who joined. Proofs show membership of this group.
- Nullifier
- A value each member's proof produces for a given form. The same person always produces the same one, so a second answer is refused, without revealing who.
- Join first, then answer
- Joining closes when answering opens, so the moment someone joined says nothing about their answer.
- Evidence file
- Every response with its proof, and the group, so anyone who can see the results can re-check them.
Plans
Start free.
Free
10 records a month: receipts, agreements, proofs, and Proof Cards you create, and sealed calls, releases, vaults, and forms. Signing, approving, answering, and verifying never use up records. Records are anchored within 10 minutes. Attest pays the blockchain costs. Verification is always free, for everyone.
Pro
10,000 records a month, API access at scale, and priority anchoring: each record is on the blockchain within seconds, in its own transaction. See Plans & usage in the dashboard.
Next steps