The suite is deployed on Polygon Mumbai, Ethereum Goerli, and Gnosis Mainnet.
Main contracts are verified.
There are two main flows: Seller and Buyer.
- Should first verify their reputation with any of the two methods:
- By using Sismo Connect and submitting a proof of Gitcoin Passport score to be verified on chain
- By using an eBay profile importer which uses zk-circuit to validate the reputation and verify proof on chain
- Then sellers can create products manually or via import from eBay
- Product metadata is stored via web3.storage on ipfs
- After buyer purchases the product, seller dispatches the shipment and sends an attestation
hash(secret + trackingNumber + buyerAddress)
on chain to be verified via a the proof later by the buyer - Seller can communicate with the buyer about the product and delivery via XMTP
- Buyers browse products using backend endpoint built on thegraph
- Buyers can purchase the product they like buy paying its price + insurance deposit based on the reputation calculated using airstack
- Buyers can communicate with the sellers about the product via XMTP
- To prove the receipt of the shipment buyer should provide a proof of
hash(secret + trackingNumber + account)
to be verified on chain
- Any party can also dispute the transaction via UMA (example)
- Sismo for Proof of Gitcoin Passport score: frontend integration + on-chain proof verififcation
- zk-snarks for reputation: circom circuit + backend proof generation + on-chain proof verification
- zk-snarks for attestation: circom circuit + backend proof generation + on-chain proof verification
Frontend:
- vite + react
- rainbowkit + wagmi + viem
- @chakra-ui for layout and UI
Backend:
- nest.js
- Apify to parse ebay product info
- puppetter to parse ebay profile
- thegraph for smart contract db
- airstack for reputation coefficient
Snap (not integrated, though implemented):
- display reputation of the seller
Smart Contracts:
- hardhat + solidity
- unit-tests to simplify development
- UMA for Optimistic Oracle and dispute resolution