How it works
Stashfall is a 3D survivor arena you play in the browser. Guest runs are free. Ranked runs burn a ticket of the token and can pay ETH from a pot held by a contract. This page lists exactly what the contract does and what it does not.
Play
- Move with WASD or the arrow keys. On a phone, drag anywhere to steer.
- Your weapon fires on its own at the nearest enemy.
- Kills drop XP shards (green) and stash coins (orange). Walk over them, or pick a magnet upgrade.
- Level up and choose one of three upgrades.
- The lift lights up on the rim at 3:00 and every 90 seconds after, for 20 seconds. Stand in its ring for 5 seconds without taking damage to extract. Damage resets the timer.
- A boss arrives at 6:00. At 8:00 the arena collapses. If you have not extracted by then, the stash falls.
Ranked runs
- Connect a wallet on Robinhood Chain.
- Call
enter()on the Stashfall contract. It burns a fixed ticket of 100,000 tokens by sending them to0x000000000000000000000000000000000000dEaD. The ticket size is fixed in the contract and can never change. - Play the run. Same game, same rules as guest. Nothing in the run can be bought.
- If you extract, the server checks the run and returns a signed claim. Call
claim()within 1 hour to receive the ETH. If you fall, there is no claim and the ticket stays burned.
The pot
The pot is the ETH balance of the Stashfall contract. Anyone can add to it by sending ETH to the contract. The team adds an opening amount at launch and tops it up from creator fees by hand; every deposit is a public transaction. Topping up is a team intention, not something the contract forces.
| Rule | Value | Enforced by |
|---|---|---|
| Payout for one extraction | stash × fixed rate, never more than the caps below | server |
| Max per run | 3% of the pot and at most 0.01 ETH | contract |
| Max per UTC day | 10% of the pot at the first claim of the day | contract |
| Claim window | 1 hour after the run | contract |
| One claim per ticket | yes | contract |
The live balance, paid totals and every payout with its transaction are on the front page.
How runs are checked
The game is deterministic. A run is a seed plus your inputs. When a ranked run ends, the browser sends the input log to the server, and the server replays the whole run with the same code. A claim is signed only when the replay matches, the run did not finish faster than real time allows, and the ticket was really burned on chain. Each wallet can have one open ranked run at a time.
Contract
- Address:
posted here at deploy· source verified on Sourcify (exact match), readable on Blockscout. - No owner, no upgrade, no withdraw function. ETH leaves only through
claim(), inside the caps. - The deployer can call
setToken()exactly once, after launch, and only for a token launched on Pons. - The server signer address is fixed in the contract at deploy.
Limits and risks
- Not audited. The contract has tests and an internal review only.
- Claims need the server. If the server is down, nobody can claim until it is back. If the signer key leaked, someone could claim inside the caps; the caps exist to limit that.
- The pot can run low. Payouts shrink as the pot shrinks, because the caps are percentages.
- No promised returns. This is a game with a capped prize pot. The token is used to enter ranked runs. Do not buy more than you are fine losing.