ZK Email Oauth Login
Last updated
Last updated
is a revolutionary technology that combines email authentication with zero-knowledge proofs to enable secure, privacy-preserving user authentication on blockchains. This system leverages existing email infrastructure, particularly DKIM (DomainKeys Identified Mail) signatures, to create a trustless bridge between Web2 and Web3, while offering a simple OAuth-like user experience.
The OAuth SDK is a specialized component of the ZK Email ecosystem that enables users to authenticate with their email and execute blockchain transactions through ephemeral keys. It simplifies user onboarding and interaction with blockchain applications without requiring private key management.
Single Email Reply
Users only need to reply to one email to authenticate, unlike Email Wallet which requires replies for each transaction.
Ephemeral Keys
Generates session-based keys that allow for multiple transactions after initial authentication.
Token Allowances
Configurable limits on what the ephemeral key can access or transfer.
Natural Usernames
Supports registration and authentication with human-readable usernames.
Expiry Controls
Optional time limitations for ephemeral key validity.
Singleton Wallet
Creates a deterministic wallet address for each unique email user.
Initial Request: User enters their email address in the dApp interface
Email Sending: Relayer sends an authentication email to the user
Email Reply: User simply replies to the email to verify ownership
ZK Proof Generation: Relayer generates a zero-knowledge proof of the email verification
Ephemeral Key Activation: Upon verification, an ephemeral key is activated on-chain
Transaction Execution: User can now execute multiple transactions using the ephemeral key
Integration with Payment ID
In the Payment ID system, the OAuth SDK enables users to:
Authenticate with just their email address
Register Payment IDs without managing private keys
Execute transactions through ephemeral session keys
Manage their Payment ID settings through the dApp interface