Gladiators. Meme is a Pokemon-like " meme coins " battle in which users can fight for each other's bags.
Users can mint NFTs of their Gladiator cards, which represent the memecoins set to battle. These cards allow players to assemble their team of Gladiators to face off against other users in exciting duels.
After building their team, players can stake their memecoins in our single-sided vaults and receive LP tokens. These LP tokens will serve as the in-game currency for betting during the Gladiator battles.
Once the team is ready, players can jump into battle. During the match, their staked tokens are securely held in an escrow account, and once the fight concludes, our master account distributes the winnings to the victor.
Each Gladiator in the game has unique attacks, with stats that fluctuate based on real-time market data. Factors like market activity, market cap, and the 24-hour price movement (% up or down) influence the Gladiator's performance. Currently, this data is fetched via an API, but we plan to upgrade to an oracle system in the future for enhanced reliability and decentralization.
Our gladiators can have 3 different elements and 3 different class modifiers, and we have chosen 5 memecoins to be our Gladiators, a total of 45 configurations. Check their skills: https://synonymous-porch-d73.notion.site/Skills-11367921bb39807ab76ff125f6a31147?pvs=4
The project it's build using a turbo monorepo.
Solana version: solana-cli 1.18.18 RPC URL: https://api.devnet.solana.com WebSocket URL: wss://api.devnet.solana.com/ Rust version: rustc 1.81.0 Cargo version: cargo 1.81.0 rustup toolchain list: stable-x86_64-apple-darwin (default) anchor version: anchor-cli 0.30.1
It has been used the Metaplex core SDK, the scripts can be found here: https://github.com/MemeArenaLabs/MemeArena/blob/32847617e4ed106af09aed368f2e67e4dd4a405a/frontend/components/Modals/MintGladiatorModal.tsx
Collection Created View Transaction on Solana Explorer
View Collection on Metaplex Explorer
- https://solscan.io/account/7uiv49yQump51zMgNXCs98iPGq2oUHgUmbe33uUMiiv3?cluster=devnet
-
Generated AMM ID: DDTWGUxUysQtJ2PJJdjYFN7Doedt5oLVE8T3hedES8iM
-
AMM created with public key: 7uiv49yQump51zMgNXCs98iPGq2oUHgUmbe33uUMiiv3
-
TOKEN_ADDRESS_WIF="4gn22HqJ9ksDULRaekC53A51HzkbAYpGCiLvGB4DhaZY"
-
TOKEN_ACCOUNT_WIF="3kL2DgRZmcbb4PXE42FivG73uWNHF829CzsnwcJdNSo7"
-
Pool Account: 4rHBKyXD7YzuLMX8edJ8kYZ9Qf5pMqpg1adRNidMQXu8
-
Pool Token Account: GXJRZAViJJBsCeCW2PayWjT1FooJ99ShK3ihAUiE9fJE
-
LP Token Mint Account: H9XaYVZ197y2Qxtua6ra3wbwa7jcQD9adqbjGU6QGBS2
-
LP Token Account: 2PMi5J4TJDAGCJWNWYxcJvNqwigSRyEgQn5N6KV9tp4S
-
Pool created for token: 4gn22HqJ9ksDULRaekC53A51HzkbAYpGCiLvGB4DhaZY with signature: 4LJNK35LCAMKsybD4KxmBtMBd3LPoXyfwUxoyM1B5CTryTaavw69JapYuW546DH8VMATmcU7UfirgFe1nk13wYgC
-
TOKEN_ADDRESS_BONK="B1Yhn1aypY8sDLbdamcrFvZsVRGXPzvo5nDgyeaSmhzU"
-
TOKEN_ACCOUNT_BONK="H2mWpW3sKybLV12EZ9UwJSkbwUWaZsgs1fW7PmpM88tf"
-
Pool Account: 5ceMwfAuuCgChWiyVsAGP7GJYwh6HSWyKU7w7Qv5PTd2
-
Pool Token Account: Ai1jvEpB4nwjP4DgMRBQQtgAkhMbBUPzuZYEc26fSNBC
-
LP Token Mint Account: 6NyHVMLTXhgTB9dE1VrKciKGeYML9pXFizDuW7ARQQ4N
-
LP Token Account: EwWEs1TjB2XmGxmTMoTze1gQKfpm76kT4u6x6ngHzaAa
-
Pool created for token: B1Yhn1aypY8sDLbdamcrFvZsVRGXPzvo5nDgyeaSmhzU with signature: 2QtJUsAzSWLjuDaGVZSmtozFcAYcEEkjmgPgAkcfbTuZSA4nEhAk8tHq1ZtKrZ8sQdTZou7KCPWhmpvDLCNTZM6J
-
TOKEN_ADDRESS_MOODENG="7iiZfGagYpn1c2C9KXKeSRFRVHFBBQeQsqAnVHGoJ3s5"
-
TOKEN_ACCOUNT_MOODENG="5Z4RqNkMHjWiEBDyUMibJHCwYGbj1kz4cDBDTfw23iw9"
-
Pool Account: C6tWtChv9rK3wwf5NdwvwvWghiZmaHbsMihFoBjrBksb
-
Pool Token Account: 7YaeHRrNWEcazXoaSQBq8ZXRD8QHtSZqm3Nr6khtWW2M
-
LP Token Mint Account: 2rWmMZn5gncaDYjuz8UKtDbL3JdcEUtWjQrzmhQaJmDn
-
LP Token Account: GBBaVkp4AbFjn5WWcPasYCW7tRPzKx5LdbtZMWW2v8vc
-
Pool created for token: 7iiZfGagYpn1c2C9KXKeSRFRVHFBBQeQsqAnVHGoJ3s5 with signature: MDkpCvi5JrsoSA7yWPDyFBdz6Gd1X9vJvUwboJQhXMHNacoYvq3P5jWEkZmCpMDbmKv8GoLVVSx47RwD5UuHDfa
-
TOKEN_ADDRESS_POPCAT="HzZGhbJQ9T6VZrffMtEVtGt51sNhKSAEHEY4T8xEud9Q"
-
TOKEN_ACCOUNT_POPCAT="6dMhpNfZZgM7aEjm5JdDeBLjtAxpSaGioWxmNWriGivm"
-
Pool Account: 8aU216VZhog19iYvWDiShCWy7ykTd2D1RHaQUeSd5RLy
-
Pool Token Account: GedEBAgKbPnNc4LhgTFpXLWByvd4jzmW57RRtGBihEUk
-
LP Token Mint Account: 7iW7gA7YaibJVEN4kFd4vC9s2iACCJbhHBhrHzcaFTGo
-
LP Token Account: 6KVWxa3JJjkDzTgv9VwTQ5ceE7Py1DiqGotGx5Sycyz7
-
Pool created for token: HzZGhbJQ9T6VZrffMtEVtGt51sNhKSAEHEY4T8xEud9Q with signature: eHFFq5KUjBsoRW9xW19m6AmHZvxCxbDCCDUe22tGxMXaYCbsz1zkNQEZQG9i7BASoPquWwQnX2RmDLJ5YRuKsYi
-
TOKEN_ADDRESS_GIGACHAT="2HHGkN3PEKiDT2ZiE65VuW6BvjdUQsxySmdZ2JF4RAf3"
-
TOKEN_ACCOUNT_GIGACHAT="GTbYi1jVDcnpXKnXCNcDrLfPKjAYh4XBBpk6ZD8DqTKx"
-
Pool Account: 8pzHGfLxa6McF7NaJeEAFUeYvdnz2Cep6n17bGjWEFTF
-
Pool Token Account: 7HqnjSAD4KCW6VJ7bxsNmJiMTxPFnEPrLhVqaTWNa5mw
-
LP Token Mint Account: GsTpabYD9X7VizgBng1AVugdmRJifSG6hHC1FvZqE5TZ
-
LP Token Account: H35HWfCYn1yaaRFJonddN21BmYxu7Ss2h1g2rM8Q3KgB
-
Pool created for token: 2HHGkN3PEKiDT2ZiE65VuW6BvjdUQsxySmdZ2JF4RAf3 with signature: 5mfgaBYcqhVxYJeA8Ps2wavV2RBfyVkX1tkUCLPHsyZupeqNcRBXb9DHoPHe2LyAh1ypeJvx78dQFVYCDxSrpMo3
The backend is built in NodeJS using the NestJS framework.
It includes both a REST API and a WebSocket server for managing battles in real-time.
The backend consists of five modules: battle, meme, token, user, and team, all of which are connected to a PostgreSQL database for data persistence.
The WebSocket-based battle system includes end-to-end (e2e) tests to ensure the correct execution of the battle sequence.
Additionally, the backend has defined seeds to populate the database.
Deployment is handled via Railway, with CI configured to automatically deploy changes from a specific branch of the repository.
Built using Next.js, React, and Tailwind CSS, with full integration to interact with the Solana blockchain.
Next.js: A React framework for building web applications. React: JavaScript library for creating dynamic user interfaces. Tailwind CSS: A utility-first CSS framework for designing responsive layouts. DaisyUI: A component library for Tailwind CSS to enhance UI design. TypeScript: A typed superset of JavaScript, enhancing code reliability.
Seamless integration with the Solana blockchain. Support for Solana-compatible wallets. NFT functionalities utilizing libraries from the Metaplex Foundation. Responsive, modern design powered by Tailwind CSS and DaisyUI. Optimized development workflow with Next.js and Turborepo.
Memecoin Wars is a cutting-edge web3 game featuring PvP battles with memes on the Solana blockchain.
-
Clone the repository:
git clone https://github.com/your-username/memecoin-wars.git cd memecoin-wars
-
Install dependencies:
pnpm install
In the frontend
folder:
pnpm dev
In the backend
folder:
-
Start the local database:
pnpm docker compose up
-
Run the local server:
pnpm start
This project is a monorepo managed with Turborepo, containing:
frontend
: Next.js web applicationbackend
: Solana-based server applicationprograms
: Solana smart contracts (Anchor framework)contracts
: EVM smart contracts
- Frontend: Next.js, TypeScript, Tailwind CSS, daisyUI
- Backend: Node.js, WebSocket API
- Blockchain: Solana, Anchor
- Build Tools: Turborepo, pnpm
This project uses Turborepo's Remote Caching for optimized builds. To enable:
- Create a Vercel account if you don't have one
- In the project root:
npx turbo login npx turbo link
This project uses icons from game-icons.net. The icons are provided under the Creative Commons 3.0 BY or CC0 licenses. For full attribution details and license information, please visit the game-icons license file.
This project is licensed under the Apache License, Version 2.0 - see the LICENSE file for details.