This UI reflects the contract's state, but always verify directly on Basescan before acting.

Get paid to learn Web3

This is a live, on-chain game. Shoot the current king with the correct answer. Whoever holds the hill with the longest cumulative correct answer time wins. The UI won't tell you everything, which is intentional. If you want the full picture, check the chain.

Why this game exists

The UI hides on purpose

Correct answers and banked time stay hidden. If you want the truth, check the chain through a block explorer.

Permissionless prize transfer

The smart contract pays the winner. No one can stop, reverse, or forget. Verify the transfer yourself.

Learn by clicking

This is just a website. If something doesn't look right, check the chain. It is the neutral source of truth.

Game Status
-
Prize Pool
-
Current Reign Prize
-
Prize Floor
-
Time Left
-
Max Shots
-

Current King

-
Winner Prize -
Game Start -
Captured -
Time Held -

Game History

Time Player Prize at Capture
No captures yet.

How It Works

Play on-chain

1

The visible prize curve rises from the floor to the max prize as time passes.

1

Open the contract on Basescan → to call it directly.

2

Call shoot(answer) to capture the hill. Every address has a limited number of shots.

2

Read prompt() to see the exact question you need to answer.

3

Each capture resets the visible curve to the floor. Only correct hold time banks toward the real prize.

3

Check shots_remaining(yourAddress) to see your remaining shots, or just count in your head.

4

Recapturing with the correct answer resumes your hidden bank from where it left off.

4

Connect your wallet and call shoot(answer) with your answer.

5

The highest banked time wins. Overtime is a short response window. Late shots can still change the visible king, but they do not create new prize growth.

5

Verify the result, your remaining shots, and all state directly on Basescan.

6

Verify everything on Basescan. This UI only shows part of the story.

6

Anyone can permissionlessly call finalize() after the game ends, but the contract will only transfer the prize to the winner.