Skip to content

Hyodar/zkaa

Repository files navigation

zkLogin Account Abstraction

A smart contract wallet that uses zero-knowledge proofs to authenticate users via Google OAuth without revealing personal information on-chain.

Overview

This project brings Sui's zkLogin to Ethereum, enabling gasless smart wallets authenticated by Google credentials. It uses ZK proofs to verify JWT signatures on-chain while preserving privacy.

Structure

zkaa/
├── verifier/     # Solidity contracts (ZkLoginRegistry, KernelZkLoginSigner)
├── sdk/ts/       # TypeScript SDK for signature generation
├── dashboard/    # Next.js frontend
├── crypto/       # Circom circuits for zkLogin compatibility
└── scripts/      # Circuit compilation and proof generation

Quick Start

# Install dependencies
npm install

# Run the dashboard
cd dashboard
npm run dev

How It Works

  1. User authenticates with Google OAuth
  2. SDK generates ephemeral keypair and nonce
  3. ZK proof verifies JWT signature without exposing user identity
  4. Smart wallet executes transactions signed by ephemeral key

For a example of account creation with zkLogin address setting, check out this transaction on Sepolia.

Tech Stack

  • Contracts: Solidity, Foundry, ZeroDev Kernel
  • SDK: TypeScript, viem, snarkjs
  • Frontend: Next.js, Tailwind CSS
  • Circuits: Circom, Groth16

License

MIT

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors