Skip to content

Repository files navigation

Revix. Where ZK Passport meets 7702

Overview

This project was built for EthGlobal Cannes Hackathon 2025. This project combines EIP-7702 and Passport proofs to enable the recovery of a lost wallet using your passport.

The user begins by converting their EOA (Externally Owned Account) into a Smart Account. This is done by attaching a specific contract connected to Self Protocol, which gathers data about the passport holder and a unique application identifier. This identifier will be used later to identify the user. The user completes this step by connecting their embedded wallet on our frontend.

Next, they need to scan a QR code generated by Self Protocol to bind their passport identifier to their EIP-7702. Once the passport is bound, if the user loses access to their previous wallet, they can initiate the recovery process. During this process, the user must prove ownership of the passport that was bonded to the account.

If successful, a new signer is attached to the account, allowing them to withdraw funds from the old address.

Deployment

App was deployed to Cloudflare Pages and accessible at https://ethglobal-cannes-front.pages.dev/.

Testnet contracts:

  • Implementation: 0xd12aa0422f014857c9be97f608e2ac035b251d47

Mainnet contracts:

  • Implementation: 0x7cb5cd4620ce1a9fc8f7fa5307c7602f850a4cd1

Build

Build contracts

Revix contracts are located at /contracts. To build them, install dependencies first:

bun install
# or
npm install 

Then you can compile contracts:

npx hardhat compile

Build frontend

Setup env vars

Before building and running app, create .env file, which should contain the following variables:

VITE_IMPLEMENTATION_ADDRESS=0xd12aa0422f014857c9be97f608e2ac035b251d47
VITE_PK_BENEFICIARY=

Where VITE_PK_BENEFICIARY is private key for benificiary (works in current version as mocked paymaster), VITE_BENEFICIARY_ADDRESS is beneficiary address which will be used to recover funds

Build

To build frontend code, install dependencies:

bun install

Then build app:

bun run build
# or
npm run build

About

Revix - EIP-7702 Recovery via ZK Passport, powered by Privy and Self Protocol

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages