Each competition cycle runs for a configurable period (typically 30 days). The cycle timer is displayed in home and game page
The prize pool grows from:
At the end of each cycle, the admin allocates the prize pool to the top players. The current allocation structure is:
Scenario: 500 players each paid 0.02 USDC to play
The admin can configure:
Don't trust, verify! Here's how you can independently check the smart contract state using command-line tools.
The SquarePrizePool contract manages all prize funds transparently on the Base blockchain. Key state variables:
Query the current prize pool amount:
curl -X POST https://mainnet.base.org \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_call","params":[{"to":"0xDD0BbF48f85f5314C3754cd63103Be927B55986C","data":"0xecfb49a3"},"latest"],"id":1}'
Decode result: Convert hex to decimal, divide by 1,000,000 for USDC amount
Example: "0x1e8480" → 2,000,000 → 2.00 USDC
Replace YOUR_WALLET with your wallet address (remove 0x prefix, pad to 64 chars):
curl -X POST https://mainnet.base.org \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_call","params":[{"to":"0xDD0BbF48f85f5314C3754cd63103Be927B55986C","data":"0x0700037d000000000000000000000000YOUR_WALLET_WITHOUT_0x"},"latest"],"id":1}'
Example for wallet 0x1234...abcd:
"data":"0x0700037d0000000000000000000000001234567890abcdef1234567890abcdef12345678"
Returns true (0x01) if prizes have been distributed, false (0x00) if cycle is active:
curl -X POST https://mainnet.base.org \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_call","params":[{"to":"0xDD0BbF48f85f5314C3754cd63103Be927B55986C","data":"0x8302c8a6"},"latest"],"id":1}'
Query the current cost to play (in USDC units with 6 decimals):
curl -X POST https://mainnet.base.org \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_call","params":[{"to":"0xDD0BbF48f85f5314C3754cd63103Be927B55986C","data":"0xfb22198b"},"latest"],"id":1}'
Decode: "0x4e20" → 20,000 → 0.02 USDC
See who controls fund allocation:
curl -X POST https://mainnet.base.org \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_call","params":[{"to":"0xDD0BbF48f85f5314C3754cd63103Be927B55986C","data":"0x8da5cb5b"},"latest"],"id":1}'
The contract is verified on BaseScan. You can:
Track every payment, donation, and reward claim:
For developers who want to build their own verification tools:
| Function | Selector | Description |
|---|---|---|
| totalPool() | 0xecfb49a3 | Current prize pool |
| rewards(address) | 0x0700037d | Claimable amount for address |
| fundsAllocated() | 0x8302c8a6 | Allocation status |
| playCost() | 0xfb22198b | Cost per play |
| owner() | 0x8da5cb5b | Contract owner |
| usdc() | 0x3e413bee | USDC token address |
No, you must connect a wallet and pay the entry fee.
Rankings are determined by score and timestamp. If two players have the same score, the player who achieved it first ranks higher.
Yes! You can play as many times as you have tries. Only your highest score appears on the leaderboard.
The countdown timer is displayed in the top-left corner of the game screen.
Yes! All prize distributions happen through a public smart contract on the blockchain. You can verify all transactions and allocations.
For the best experience and highest scores, we recommend playing on a computer. The larger screen and keyboard controls (spacebar to jump) provide more precise gameplay than touchscreen controls.