The onchain gorilla chest-beating competition on Base mainnet.
Beat your chest, climb the leaderboard, become the Alpha Gorilla.
Live: gorilla-counter.vercel.app · gorillachimps.github.io/gorilla-counter
Contract: 0x90fc6B668293Bc2d9Ce78eC6E1c2d0d2c00EE668 (Base Mainnet)
A single-page dapp where every chest beat is an onchain transaction on Base. The contract tracks per-wallet beat counts, a global beat counter, and the current Alpha Gorilla (the wallet with the most beats). Users can name their gorilla, climb the leaderboard, and share their beats on X and Farcaster.
- Onchain everything — every beat is a real transaction on Base mainnet
- Live leaderboard — seeded + incremental index of every gorilla, with Basenames resolution and a "Your rank" line showing where you sit and the gap to climb
- Gorilla names, done safely — UTF-8 names up to 32 bytes (emoji count as 4) with a live byte counter, escaped before rendering so on-chain names can't inject markup
- Resilient RPC — rotates across multiple public Base RPC endpoints with automatic fallback
- Streak tracking (local) and milestone badges (1, 10, 50, 100, 500, 1000 beats)
- Farcaster Mini App — runs natively in Warpcast with auto-connect and haptics
- base.dev registered app
- ERC-8021 attribution wired into every transaction (builder code
bc_5jexnr1x) - Share to X / Warpcast with one click
- Polished UX — double-beat guard, loading skeletons, persistent sound toggle,
prefers-reduced-motionsupport, and an upfront gas note (each beat is a Base tx, gas < $0.01) - Trust signals in the footer — verified-contract, source, and MIT license links; no tracking, no cookies
- No build step — single
index.html, deploys to anything
index.html— vanilla HTML/CSS/JS, no framework, no buildGorillaCounter.sol— Solidity 0.8.31, deployed on Base mainnet@farcaster/miniapp-sdkvia ESM for Mini App embedding- Direct
eth_call/eth_sendTransactionto public Base RPCs (with fallback rotation) — no library dependency - Custom keccak256 implementation for Basenames reverse resolution
The repo auto-deploys to Vercel on push to main. A GitHub Pages workflow mirrors to gorillachimps.github.io/gorilla-counter.
function beatChest() external;
function setGorillaName(string calldata name) external;
function getGorillaStats(address gorilla) external view returns (uint256 beats, string memory name, bool isAlpha);Compiled with Solidity 0.8.31+commit.fd3a2265, optimizer off, EVM osaka. Verified on Sourcify.
MIT — see LICENSE.
