This is a test network. Every figure on this site is play money. The tokens are free, they are worth nothing, and you cannot buy them. Nothing here is an offer of anything.
How SPLASH works
Three games, one pot of water. Every rule below is enforced by a contract you can read, and every number is one the contract will tell you itself. The addresses are at the bottom.
Getting in
- Install Adena, a browser wallet for gno.land.
- Add the Onyx test network to it — RPC
https://rpc.onyx.testnets.gno.land, chain IDonyx-1. - Get free test tokens from the faucet. Pick Onyx, paste your address.
- Press Connect wallet on any game.
Your first purchase signs one transaction that does three things at once: converts some GNOT to the wrapped kind the games use, permits the game to take exactly the ticket price, and buys. One prompt, and it either all happens or none of it does.
The Weekly Draw
A ticket is 10 GNOT and buys 40 entries. Entries are the unit that actually wins — one is 0.25 GNOT of weight — so buying more tickets moves your share smoothly rather than in lumps.
The house takes 5% of each ticket. The rest is the prize, and the whole prize goes to one winner's wallet. The weekly pot is also fed by the Duel: 60% of the Duel's rake lands here, so the pot grows every time anybody flips a coin.
If the draw never runs, you get your money back in full — the gross ticket price, fee included. The house's 5% is held against the week and only earned if a draw actually happens.
The Hourly Draw
A ticket is 1 GNOT. A window is 1,090 blocks, which is about an hour. Same 5% house cut, same full refund if a window never draws, same winner-takes-the-pot.
The page counts down in time because that reads better, but the block number is what the contract obeys. The clock is our estimate of when that block arrives; the block itself is the rule.
The Duel
Two players, matched stakes, a 50/50 coin. Winner takes both, less a 3% rake. Stakes are 10, 50, 200 or 1,000 GNOT.
You put a stake up — one signature. Someone matches it — one signature. That is the whole game. Neither of you signs again and neither of you has to come back. Nothing is kept in your browser, there is no secret to look after and no deadline to miss.
Neither player can steer the coin, and this is the part worth understanding. The moment a stake is matched, the contract names a future drand round — a public random number that does not exist yet. Nobody can know it: not the two players, not us. The round number is written into the duel and shown on the page, so you can see exactly what your flip is waiting on before it happens.
Five to ten minutes later drand publishes that number, anyone can relay it onto the chain, and the contract works out the winner and pays them. We run a process that does the relaying so nobody has to sit and wait, but it is an open call — if we disappeared, anyone at all could settle your duel.
An offer nobody has matched is still yours: cancel it and your stake comes straight back. Once it is matched the coin is in the air, and the round decides it.
Where the randomness comes from
Draws are settled against drand, a public randomness network run by a group of independent organisations. Nobody — not us, not any single one of them — can produce a future value alone.
For the draws, the round that decides is fixed before that draw's first ticket is sold. So by the time anybody has money in, the number that will decide it is already named and nobody alive knows what it is.
For a duel, the round is named the instant the two stakes are matched, and always far enough ahead that it cannot be guessed, raced or waited out. When the time comes, drand publishes it, anyone can relay it onto the chain, and the contract does the arithmetic in the open.
You can check it yourself. Each game shows the drand round it is pinned to;
that round's value is published at api.drand.sh for anyone to read.
What we can and cannot do
- We cannot choose a winner. The randomness is not ours, and the round that decides is named before that round's number exists — so there is nothing for us, or anyone, to pick.
- We cannot take your stake. The games pull exactly the ticket price you approved, and nothing else.
- We cannot stop a draw. Closing, settling and paying out are open calls — anyone can make them. We run a process that does it automatically so nobody has to, but if we vanished tomorrow the games would still settle for whoever pressed the button.
- We do take a cut — 5% of draw tickets, 3% of duel stakes — and it is only earned when a draw actually runs.
The contracts
Read any of them. This is the whole product; there is nothing on our server that decides anything.
- The Weekly Draw
gno.land/r/g1r4aw43kagaaquhegxw6xr346h9f2qu2ezf0jar/arcade/raffle/v3 - The Hourly Draw
gno.land/r/g1r4aw43kagaaquhegxw6xr346h9f2qu2ezf0jar/arcade/speed/v2 - The Duel
gno.land/r/g1r4aw43kagaaquhegxw6xr346h9f2qu2ezf0jar/arcade/duel/v3 - The randomness record
gno.land/r/g1r4aw43kagaaquhegxw6xr346h9f2qu2ezf0jar/beacon/v2 - Wrapped GNOT (gno.land’s, not ours)
gno.land/r/gnoland/wugnot
Why the addresses look like that. A readable name such as
gno.land/r/splash/… needs a username from gno.land's registry, and that
registry is currently closed to new names pending a governance vote. Until it opens,
the only namespace available to anyone is their own wallet address — so that is what
you see. The contracts are the same either way.
Where this is going
No dates. Everything below is either already on the chain and checkable, or honestly labelled as not built.
On the chain now
- The Duel — drand-settled coin flip, four stake levels, playable.
- The Hourly Draw — a draw every 1,090 blocks, playable.
- The Weekly Draw — fed by ticket sales and by the Duel's rake, playable.
- The randomness record — drand verified on-chain. As far as we know, nothing else on gno.land has one.
Next
- A treasury for the house's cut, so the fee has somewhere to go. Until it exists, nobody should trigger that withdrawal.
- Closing the two open randomness findings from the audit. Both are about the chain's estimate of time drifting, both are written up in full in the repository, and neither is hidden.
- Making the draw worth watching — a fuse burning down to the block, rather than a number quietly changing.
Designed, not built
- The Race — a third game, design locked, no code.
- Crews — playing as a group.
- A token with a say in the arcade, earned by playing rather than sold. An idea, not a plan.
What we will not do
Written down so it can be held against us.
- No admin over your money. Nobody, us included, can pause, delay or refuse a payout. There is no owner key on any pot.
- No upgrade path. A deployed contract cannot be changed. That cuts both ways and we are not going to pretend it only cuts the good way.
- No promised returns. This is a game. You can lose.
- No hidden findings. Everything known to be wrong is on this page, including the things we have not fixed. When the code is published, every audit goes up with it.
Known gaps, while this is a test
- The house's cut has nowhere to go yet. It accumulates inside the games and the treasury contract that should receive it is not built. Nobody should trigger that withdrawal.
- Settling a duel depends on somebody relaying drand. We run that process, and anyone else can too, but if it stops and nobody steps in, a matched duel sits unsettled until someone does. The stakes stay in the contract and the round that decides it does not change, so nothing is lost — it is only late.
Who has checked this
No independent firm has audited these contracts. If you are used to seeing an auditor's name here, there isn't one, and you should weigh that.
What has happened: the contracts have been reviewed repeatedly by an automated auditing agent, and the findings — including the unresolved ones above — are written up and acted on. That is a real process and it has caught real defects, including ones that the test suites passed straight through. It is not the same thing as a third-party audit and we are not going to call it one.
The code is not published yet. When it is, every audit goes up with it, unresolved findings included.