Bet-A-Meme: The Ultimate Viral Meme Betting platform where memes meet blockchain. Bet on viral meme templates, compete to make them go viral, and earn rewards. Powered by Sign Protocol, it's the ultimate fusion of social media trends and decentralized finance.
MemeBattle Contract: 0xe5c6ff16a8932b5f88059248549e4abdaea7bf55
(Arbitrum Sepolia Testnet)
Bet-a-Meme is a platform where users can bet on meme templates they believe will go viral, combining the thrill of meme culture with the excitement of decentralized betting. Users compete to make their chosen meme the most popular by creating, sharing, and posting it with a unique hashtag. The meme template that gets the most posts wins, and users who bet on it earn their stake back with a bonus.
- Bet Creation and Attestation: Users place bets on meme templates, with each bet recorded as an attestation on the blockchain using Sign Protocol.
- Reward Claiming and Attestation Verification: Winners claim rewards after battle conclusion, with eligibility verified through blockchain attestations.
- Decentralized and Transparent Reward Distribution: Automatic and verifiable reward distribution based on meme virality.
- Real-time Chat: Users can discuss and strategize about their bets in real-time.
- Dynamic Battle Management: Create battles, add memes, and declare winners dynamically.
- Frontend: Next.js with Tailwind CSS
- Backend & Database: Firebase (Realtime Database, Authentication, Cloud Functions)
- Blockchain Integration: Ethereum (via ethers.js)
- Attestation and Security: Sign Protocol
- API Integration: RapidAPI for fetching Instagram post counts
- Schema Hooks: Custom on-chain logic execution for bet creation and reward claims.
- Social Media Integration: Using RapidAPI to fetch Instagram post counts for determining meme virality.
- Real-time Chat in Blockchain Context: Combining Firebase real-time chat with blockchain betting.
- Node.js (v14 or later)
- Yarn or npm
- MetaMask browser extension
-
Clone the repository:
git clone https://github.com/yourgithubusername/bet-a-meme.git cd bet-a-meme
-
Install dependencies:
yarn install
-
Set up environment variables: Create a
.env.local
file in the root directory and add the following:NEXT_PUBLIC_FIREBASE_API_KEY=your_firebase_api_key NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_firebase_auth_domain NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_firebase_project_id NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your_firebase_storage_bucket NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_firebase_messaging_sender_id NEXT_PUBLIC_FIREBASE_APP_ID=your_firebase_app_id NEXT_PUBLIC_CONTRACT_ADDRESS=0xe5c6ff16a8932b5f88059248549e4abdaea7bf55
-
Run the development server:
yarn dev
-
Open http://localhost:3000 in your browser.
- Connect your MetaMask wallet to the Arbitrum Sepolia Testnet.
- Browse active meme battles or create a new one.
- Place bets on meme templates you think will go viral.
- Share and post memes with the unique hashtag to increase their virality.
- Claim rewards if your chosen meme wins the battle.
We welcome contributions! Please follow these steps:
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Sign Protocol for providing the attestation and security framework
- Arbitrum for the testnet infrastructure
- ETHOnline 2024 for the inspiration and platform
Thanks..