An open API service indexing awesome lists of open source software.

https://github.com/delneg/ethglobal-cannes-front

Revix - EIP-7702 Recovery via ZK Passport, powered by Privy and Self Protocol
https://github.com/delneg/ethglobal-cannes-front

cannes eip-7702 ethereum ethglobal ethglobal25 privy zkpassport zkproof

Last synced: 8 months ago
JSON representation

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

Awesome Lists containing this project

README

          

# 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
```