Welcome to the Whale Game, a fun and engaging experiment that combines game theory and economic principles around an increasing pot. Here's how it works: * **Deposit**: First player starts the game by depositing 0.05 ETH into a collective pot. Each subsequent deposit increases by some rate (see below). Once deposited, the player becomes the current "claimer" of the pot and can claim after the deadline. * **Token**: Each deposit is rewarded with $WHALE tokens. All depositors get the same emissions within a game round (e.g. 100,000 per deposit in 1st game). However, emissions decay over multiple game rounds (e.g. 85,000 per deposit in 2nd game). * **Fees**: A fee is deducted from each deposit and streamed to a fee pot, which is used to back the $WHALE Token. Every $WHALE holder has a pro-rata claim on this pot. * **Vesting**: The claimed balance from the game is not immediately transferred to the winner. Instead, it goes into a RewardsVesting contract. The winner can claim their rewards after five rounds have passed, promoting long-term participation. * **Redemptions**: $WHALE tokens can be redeemed for ETH in the fee pot. This ETH comes from the balance accumulated in the WhaleToken contract, which includes fees from the game and any remaining balance from the RewardsVesting contract if an early claim was made. Locked until 10 rounds have been played. * **Game Rounds**: the game never ends. Each round ends when the claim deadline passes. A new round resets with initial deposit and reduces $WHALE emissions. * **Graffiti**: leave a message for every player to see. Share your whale tale, gang gang. The first implementation of Whale Game sets the following parameters: * Initial deposit = 0.05 eth * Deposit growth rate = 3.3% * Fee = 50% * Deposit buffer period = 15 seconds. This is the minimum amount of time any player has to wait in between deposits. * Deposit timelock = 12 hours. The amount of time the same player has to wait before depositing again. * Claim timelock = 1 day. The amount of time the current claimer has to wait before claiming the full pot. * Round decay factor = 15%. The amount that $WHALE emissions decrease by each game round. * Base token minted = 100,000. Amount of $WHALE that each depositor gets. Multipled by decay factor with each game round. NOTE: Please remember that this game involves real value and consider the risks carefully. It's essential to understand how the game works before you start playing. If you do not feel comfortable, avoid playing. # Example * Game resets to initial deposit of 0.05 ETH. * Player deposits 0.05ETH. 50%, or 0.025eth, is directed to FeePot and 50% is directed to ClaimPot. The player becomes the current โ€œclaimerโ€ of the pot. A 24-hour deadline starts. Next deposit increments by 3.3% to 0.0517 ETH. * After 10 deposits, the ClaimPot is 0.5142 ETH. This means someone can deposit 0.0648 ETH to win 0.5142 ETH, representing a payoff of 396.58%. The FeePot is 0.2571 ETH backing 10,000 $WHALE in emissions. * After 100 deposits, the ClaimPot is 18.716 ETH with a deposit of 1.2442ETH, representing a 1404.26% payoff for the depositor. The FeePot is 18.71656 ETH, backing 100,000 $WHALE in emissions. * Suppose no one is willing to deposit after 100 deposits. After 24 hours, the last depositor can claim 18.7166 ETH, vested over 5 rounds. Every $WHALE holder can claim pro-rata share 18.7166 ETH in FeePot, or wait until more rounds are fleshed out. ![](https://hackmd.io/_uploads/rJswEk7ch.png) # Game Strategies Whale Game mechanics invite a broad design space for game theory strategies. Players need to make assumptions about other players' behavior and the future state of the game, both of which are inherently unpredictable. This makes the Whale Game a fascinating study in game theory and strategic decision-making. Some strategies to consider: **Deposit Strategy**: Given the increasing deposit cost and decaying emissions, a player may strategize about the optimal time to make a deposit. Earlier rounds have higher $WHALE emissions so depositing in earlier rounds yields more. However, saving your ETH stack to deposit later in the game might increase the chance of winning the pot as there are fewer players with large capital. **Vesting Strategy**: Once a player wins a round, they need to decide when to claim their vesting rewards. Claiming early comes with a penalty, waiting allows the full balance to be claimed. This decision might be influenced by personal cash flow needs, predictions about future game activity (which affects the value of Whale Tokens and the Ether balance in the Whale Token contract), and broader market conditions. **Token Redemption Strategy**: Players need to strategize about when to redeem their $WHALE Tokens. Redeeming early might provide immediate value, but holding might be beneficial if the Ether balance in the Whale Token contract increases over time, due to either more fees from the game or unclaimed balances from the Rewards Vesting contract. **Cooperative Play**: There could be strategies involving cooperation between players. For example, players could agree to deposit in turns to avoid competing against each other, or a group of players could pool their resources to increase their chances of becoming the claimer. # Contracts There are only 3 contracts: * WhaleGame.sol - 0xF1baf16Db25405856f5379246Beba2B694e1449D * constructor() - deploys WhaleToken contract and resets game parameters * deposit() - verifies, updates parameters, mints $WHALE and transfers some ETH to fee pot. * claim() - verifies, deploys RewardsVesting contract (for the claimer), updates decay parameters, resets game * _resetGame() - resets game parameters and increment round * WhaleToken.sol - 0x0F5F3E11302a91f806D5589Ec6081494B63BA05a * receive() - mitigates payable exploits * mint() - mint tokens. Only WhaleGame.sol can call. * redeem() - verifies, redeems pro-rata share of ETH in contract by burning $WHALE * unlockRedemptions() - opens ability to redeem ETH in contract. Only WhaleGame.sol can call. * RewardsVesting.sol * claim() - verifies the claimer and transfers ETH * earlyClaim() - verify, apply penalty and transfers ETH # Team While the developers are anonymous, the game mechanics are transparent and auditable. The game has no team/investor/community allocation.