Prove who sent an email
& any of it's contents.
Anonymously prove any subset of any email
you sent or received. On or Offchain.
From: zkEmail
To: Developers
Subject: prove any content for any email, sent or received
we built a primitive that allows you to prove who sent an email + prove only what content you want from an email while hiding what you don’t want known.
Excited to see what you build : )
The Zk team
Aayush, Sora, Saleel, Wataru, Aditya and Elo
With ZK Email
You can confidently verify the sender, receiver, subject, or any part of an email while maintaining your privacy. Selectively reveal or hide any part of any email.
To: potus@gov.com
From: email@gov.com
Subject: Whistle Blowing
For example, you can prove you have an email from you@gov.com without disclosing your full address. We can confirm the email has mentions a name, place etc and confirm who we sent/recieved it from potus@gmail.com
Trusted by the best
From next-gen enterprises to established organizations
How do we do this?
We leverage what emails already do...
but using Regex & Zero Knowledge
What does this enable?
Projects Using ZK Email
For Developers
Build Your Own
No trusted hardware. No trusted attestation servers.
Only trust zero knowledge proofs, smart contracts, email, and DNS infrastructure.
All MIT open source libraries.
Our Libraries
ZK Email Specific Libraries
ZK Email Libraries
We have several repos within the ZK Email ecosystem. Developers can use these to build their own custom email verification circuits
ZK Email
ZK Regex UI Tools
DKIM Archive
ZK JWTs
Regex Registry
Ether Email Auth
General ZK Libraries
ZK Libraries
While developing ZK Email we built these libraries for general use, that can be applied outside of the ZK Email ecosystem
ZK Regex Library
Halo2 Benchmarking Browser Code
ZK PSI with Grumpkin and Hash to Curve
ZK Strings (base64 + pack)
ZK RSA
ZK Variable Length SHA256
Frequently Asked Questions
Have a Question that isn’t answered?
How do you selectively reveal content in an email ?
We can hide any information or selectively reveal any text, wether that’s the sender, receiver, subject, body etc using Regex. Regex is short for regular expression, this term represents sequence of characters that forms a search pattern, commonly used for string matching within text. It consists of a sequence of characters that define a search pattern, enabling complex searches, substitutions, and string manipulations. For example, in programming and text processing, regex can identify, extract, or replace specific text patterns, such as email addresses, dates, or phone numbers, by defining these patterns through a combination of literal characters and special symbols. In the context of ZK Email it is used to parse email headers and extract relevant information.
How can I do this anonymously
ZK Email leverages the principles of Zero Knowledge proofs and serverless execution within the browser to provide a verifiable yet anonymous way to confirm an emails contents and recipents . Zero Knowledge proofs allow provers to prove that they know or possess certain information without revealing the information itself to a verifer. In ZK Email, this technology is used to verify user identity and email content without exposing sensitive data to a server or other users. The serverless architecture means that all proof generation is executed entirely within the user`s browser.
Why don’t I need to trust you?
The DKIM email signitures do not contain information we can use to sign other emails, all our code is open source and being audited
How do you verify the email contents and recipents
We use the existing DKIM Signiture, almost all emails are signed by the sending domain server using an algorithm called DKIM. It can be summarized as this rsa_sign(sha256(from:..., to:..., subject:..., <body hash>,...), private key). Every time an email is sent we can verify the sender, receiver, the subject, the body by checking if the corresponding public key of the email address applied on the DKIM signiture returns the sha256(from:..., to:..., subject:..., <body hash>,...) a hash of the from, to subject, email details which we can check by rehashing