Onchain Fishing
Mainnet beta · unaudited 中文 Beta

§ OPERATORS · HOUSE EDGE 4%

Public rooms

Rooms are opened and funded by operators. Revenue comes only from the 4% house edge; payouts are guaranteed by funds locked in the contract, and operators cannot touch players' money.

Revenue

13,392

bets / hour: a full 100-player room (93 shots / s × 4%), then multiplied by occupancy.

Capital

20,000×

max bet: house bankroll for a full room (in-flight locks + ruin buffer + margin). Example: a 0.1 APT max bet needs about 2,000 APT.

Setup

~0.46

APT, mostly a refundable storage deposit, returned when the room is closed.

Risk

After opening1 min10 min1 hour
Probability the house is still at a loss (full room, simulated)24%1.4%4×10⁻⁸

Process

01Apply

Leave your contact details and expected scale.

02Approval

The governance multisig grants your account room-creation approval.

03Create and fund

Create the room, deposit the house bankroll, set bet tiers and the idle threshold.

04Run the keeper

Run the sweep keeper (required); it settles expired shots when nobody is firing.

You can adjust

  • Bet tiers
  • Seat idle threshold
  • Private rooms: invite passphrase, named invites, kick, rotate invite key (coming soon)
  • Depositing and withdrawing house bankroll (the unlocked part)
  • Closing the room

You cannot touch

  • Players' room balances
  • Funds already locked for in-flight shots
  • The 95% RTP and fish multipliers
  • Player withdrawals

§ PRIVATE ROOM · INVITE ONLY

Private rooms Coming soon

For people you know: the room owner decides who can sit. The contract is implemented and fully verified on localnet; when it opens to operators is not yet decided.

01CAPACITY

Capacity 1–100 players

Seats are spread evenly along the top and bottom edges. A 4-player room has one in each corner; a 1-player room sits at the center of the bottom edge. Fish schools, range, rate limit, bet tiers, payout locking are exactly the same as in a 100-player room, and the expectation is still 95%.

02INVITE

Invite required to sit

The room stores an invite public key. Newcomers join and take a seat with the room owner's invite signature; the contract rejects non-members trying to take a seat, fire or claim a seat.

03OWNER

Owner manages the list

Add people directly, kick (a seated player gives up the seat immediately), rotate the invite key (unused invites and the old passphrase are voided immediately), or switch back to a public room at any time.

Two kinds of invite

Group passphraseNamed invite
What the owner doesGenerates a passphrase (can be made into a link or QR code) and sends it to friendsSigns an invite for a specific address, offchain, no gas
What the player doesThe client uses the passphrase to sign for the player's own address, then submitsSubmits the owner-signed invite directly
Transferable?Anyone with the passphrase can join; if it leaks, rotating the key voids itValid only for the named address; fails verification for anyone else

Contract guarantees

  • Cannot be hijacked: the invite signature is bound to the player's address; someone who sees the transaction onchain and swaps in their own address fails verification
  • Passphrase never goes onchain: only the signature is onchain, and it is also bound to the chain id, so a testnet invite is invalid on mainnet
  • Kicked means locked out: a kicked player cannot get back in even with a valid invite or passphrase, until the owner adds them back
  • Kicking cannot freeze funds: a kicked player's in-flight shots settle as usual, and their room balance can be withdrawn at any time

Not promised

  • Private is not hidden: onchain data is readable by anyone, and anyone can see every shot in the room via Watch
  • Group passphrase leaks: until the owner rotates the key, anyone with the passphrase can join; the owner can kick and rotate the key at any time
  • No spectator permission: watching never required permission, so there is no "watch only, no seat" setting
Room applications are not open yet. Once the mainnet beta ends and the compliance assessment is clear, the application form will be posted here.