On-chain and the Gateway
Smart contracts hold your money, not League.fun
Entry fees and prize pools move through the Gateway smart contract on Base, or through the League.fun program on Solana. League.fun's backend holds no treasury key — it cannot move your funds. It only signs the permission that lets you join a league; the contract or the program does the rest.
Base and Solana
Each league lives on one chain, and its money stays on that chain. The entry fees, the prize pool, any refund, and referral earnings from it are paid on that chain. There is no bridge between the two and no shared balance. A chain badge on every league shows where it runs, and the leagues page shows both chains unless you filter by one.
Your XP, streaks, badges, and PRO belong to your account, not to a chain. They count the same on both, and the global leaderboard is one board.
Signing in
You sign in through Privy, using an email address, a wallet, or Twitter. A Solana wallet such as Phantom or Solflare works too. Privy creates an embedded wallet for you on Base and one on Solana, so you don't need any prior crypto knowledge, and on the web League.fun pays your gas fees on both chains.
Your account, not your wallet, is your identity. If you play League.fun inside Farcaster, the wallet of your Farcaster host signs for you instead — and because League.fun did not create that wallet, it cannot sponsor its gas. In the mini app you need a little ETH on Base alongside your USDC, including to enter a free league. The mini app plays Base leagues only; play a Solana league on the web.
Claiming
When you claim a prize, the transaction pays out directly from the Gateway contract on Base, or from the program on Solana. You claim once for each wallet on each chain. See Prizes and claiming.
USDC on Base and Solana
Entry fees, prize pools, and referral earnings are all paid in USDC, on the league's chain. Your wallet page shows your USDC balance on each chain.