catmcgee / proof-of-alpha

Prove your trades without revealing private information such as your wallet ID

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool


Logo

Proof of Alpha

Prove and showcase your successful trades without revealing sensitive information such as your wallet address. Built on Mina Protocol using SnarkyJS for ZKPs.
Built for ETHGlobal Paris!
View Deck

About The Project

This project combines privacy and trustlessness in order to build a decentralized future that a billion users will want to join.

The influencer economy is valued at over $22 billion, with trading & crypto influencers making 10% of this. However, this entire industry is built on guesses, trusts, and easily fabricated screenshots. People don't want to reveal their wallet address because it gives away their entire blockchain identity and opens them up to even more scams. So we rely on what they say.

Proof of Alpha allows anyone to prove their on-chain and off-chain trades and swaps and generates a QR code for anyone to easily verify the claim. It is made for web2 & web3 natives, and doesn't even need to stop at crypto. Currently it works with Uniswap but we will add 1inch, AAVE, and cefi such as Binance very soon.

Built With

  • [![Next][Next.js]][Next-url]
  • [![React][React.js]][React-url]
  • Lens
  • Sismo
  • Polygon

How It Works

  1. The user logs in with WalletConnect to select any wallet with trades they would like to prove
  2. Proof of Alpha fetches their trades using The Graph (currently Uniswap)
  3. They see their trades on the screen and can select them to generate a proof
  4. When selected, the transaction information is sent to a ZK oracle to compare with on-chain data also taken from The Graph or other sources
  5. If the transaction data matches up, a signature is created and ZK proof generated with Mina SnarkyJS. This all happens in the browser to keep privacy
  6. The ZK proof is put onto the Mina blockchain
  7. A QR code is generated to allow the user to post it anywhere irl or virtual so that their trade can be verified
  8. The QR code fills in the verification ID taken from Mina after the ZK proof was generated, and checks with the blockchain to verify the proof

Prerequisites

  • node
  • npm

Run

  • Build the contracts cd contracts && npm run build
  • Run the oracle (you should have this running when you run the UI) cd oracle & node index.js
  • Run the client side cd ui && npm run dev
  • Deploy smart contracts cd contracts && zk config

Find more information in the contracts repo and UI repo.

(back to top)

About

Prove your trades without revealing private information such as your wallet ID


Languages

Language:JavaScript 42.0%Language:TypeScript 41.5%Language:CSS 16.3%Language:Shell 0.2%