FrogCrypto Squeeze is a prototype application that allows you to squeeze your CryptoFrogs inside your Zupass. These frogs were minted during Devcon 7 and can now be interacted with through this fun and engaging web application.
Try it out live here: https://frogjuice.fun/
CryptoFrogs are unique, programmable cryptographic collectibles introduced at Devcon 7. They were minted as part of an initiative to introduce attendees to programmable cryptography in a fun and engaging way. These frogs can now be squeezed using this application, adding a playful layer of interaction to the collectibles.
- Zupass Integration: Seamlessly connect your Zupass to interact with your CryptoFrogs.
- Frog Squeezing: A playful and interactive way to engage with your frogs.
- On-Chain Proof Verification: Built with cutting-edge cryptographic proof verification to ensure secure and transparent interactions.
This project leverages on-chain GPC proof verification to ensure secure and verifiable interactions with CryptoFrogs. The implementation is based on the following principles:
- Zupass Integration: The application uses Zupass, a decentralized identity and proof system, to authenticate users and verify ownership of CryptoFrogs.
- On-Chain Proofs: The squeezing process involves generating and verifying cryptographic proofs directly on-chain, ensuring transparency and trust.
- Frontend Circuit Data: The frontend retrieves the circuit data required to send to the smart contract for verification. You can find the relevant code here.
- Smart Contract Verification: The smart contract verifies the proof data sent from the front end. First, it verifies known constants, then the attributes, and finally, the proof. The verification logic is implemented here.
This architecture ensures that the ownership of CryptoFrogs is provable and verifiable in a decentralized manner.
For more technical details, refer to https://www.notion.so/0xparc/On-Chain-GPC-Proof-Verification-1dd71e0a542080eea9a7d463d40758cd
Check out the live application here: https://frogjuice.fun/
🧪 An open-source, up-to-date toolkit for building decentralized applications (dapps) on the Ethereum blockchain. It's designed to make it easier for developers to create and deploy smart contracts and build user interfaces that interact with those contracts.
⚙️ Built using NextJS, RainbowKit, Hardhat, Wagmi, Viem, and Typescript.
- ✅ Contract Hot Reload: Your frontend auto-adapts to your smart contract as you edit it.
- 🪝 Custom hooks: Collection of React hooks wrapper around wagmi to simplify interactions with smart contracts with typescript autocompletion.
- 🧱 Components: Collection of common web3 components to quickly build your frontend.
- 🔥 Burner Wallet & Local Faucet: Quickly test your application with a burner wallet and local faucet.
- 🔐 Integration with Wallet Providers: Connect to different wallet providers and interact with the Ethereum network.
Before you begin, you need to install the following tools:
- Node (>= v18.17)
- Yarn (v1 or v2+)
- Git
To run the project locally, follow these steps:
-
Clone the repository:
git clone https://github.com/BuidlGuidl/frogcrypto-squeeze.git cd frogcrypto-squeeze
-
Copy
packages/nextjs/.env.example
topackages/nextjs/.env
and fill environment variables values. -
Install dependencies:
yarn install
-
Start the Ponder server:
yarn ponder:dev
-
Start the development server:
yarn start
-
Open your browser and navigate to
http://localhost:3000
.
If you want to run the contracts locally:
- Run a local network:
yarn chain
- Deploy contracts:
yarn deploy
-
Change
packages/nextjs/scaffold.config.ts
targetNetworks. -
Change Ponder startBlock on
packages/ponder/ponder.config.ts
.
Contributions are welcome! If you'd like to contribute to this project, please fork the repository and submit a pull request.
This project is licensed under the MIT License. See the LICENSE
file for more details.