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
- Host: GitHub
- URL: https://github.com/delneg/ethglobal-cannes-front
- Owner: delneg
- Created: 2025-07-05T08:05:59.000Z (9 months ago)
- Default Branch: master
- Last Pushed: 2025-07-21T12:35:48.000Z (9 months ago)
- Last Synced: 2025-07-21T13:31:02.847Z (9 months ago)
- Topics: cannes, eip-7702, ethereum, ethglobal, ethglobal25, privy, zkpassport, zkproof
- Language: TypeScript
- Homepage: https://ethglobal-cannes-front.pages.dev/
- Size: 821 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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
```