Multiplayer snake game with on-chain staking on Base Mainnet. Eat pellets, eliminate players, collect their stakes.
🔴 PLAY NOW
- Real-time Multiplayer: 20 TPS server, 60 FPS rendering
- Stake & Earn: Deposit ETH, eliminate players, collect stakes instantly
- Fair RNG: Pyth Entropy V2 for verifiable spawn positions & pellet placement
- On-Chain Leaderboard: Permanent rankings on Base
- Visit 0xslither.yuvrajlakhotia.me
- Connect MetaMask (auto-configures Base)
- Deposit 0.00005 ETH
- Play!
pnpm install
pnpm run devclient/ # Frontend (Vite + TypeScript)
server/ # Game server (Node.js + WebSocket)
contracts/ # Smart contracts (Solidity)
shared/ # Shared types & constants
cd contracts
echo "BASE_RPC_URL=https://mainnet.base.org
PRIVATE_KEY=your_key
BASESCAN_API_KEY=your_key" > .env
pnpm run deploycd ../server
echo "PRIVATE_KEY=0x...
BASE_STAKE_ARENA_ADDRESS=0x...
BASE_RPC_URL=https://mainnet.base.org
ENABLE_BLOCKCHAIN=true" > .envcd ../client
echo "VITE_BLOCKCHAIN_ENABLED=true
VITE_BASE_STAKE_ARENA_ADDRESS=0x...
VITE_BASE_RPC_URL=https://mainnet.base.org
VITE_BASE_CHAIN_ID=8453" > .envcd ../contracts
pnpm run update:server- Frontend: TypeScript, Vite, Canvas 2D, ethers.js
- Backend: Node.js, WebSocket
- Blockchain: Base (Ethereum L2), Solidity, Hardhat, Pyth Entropy
To switch between Base Mainnet and Sepolia, edit client/src/networkConfig.ts:
const USE_BASE_MAINNET = true; // false for SepoliaMIT