Start here / SHOOK
The SHOOK protocol From formation to permanent liquidity, staking, and games. A complete guide to the official protocol.
01 Formation Curve distribution
โ 02 Graduation Atomic handoff
โ 03 Permanent Liquidity + staking
SHOOK is a token protocol with a formation market, permanent ETH liquidity, automatically compounding staking, and games played with SHOOK. One billion tokens are issued at construction. Formation distributes tokens along a curve, then hands its reserve principal to a permanent Uniswap v4 pool.
These docs describe the official mainnet configuration and the contracts in this repository. Deployment addresses have not been populated in the mainnet manifest. See Mainnet deployment before connecting an integration.
Stage What happens Before opening Tokens are allocated to contracts; formation waits for its immutable opening timestamp. Formation Buy or sell against the curve. The graduation target can decline from 500M to a 300M floor. Graduation Reserve principal seeds the permanent pool. Unused token inventory funds the staking launch stream. Permanent market Trade through the ETH/SHOOK pool. Stake SHOOK, earn streamed rewards, and use the game contracts.
Core economic parameters are immutable. The reserve vault has an owner who controls its custody, revenue sources, and optional routing. The creator has a separate transferable right to accrued creator revenue. Those roles are different from control over permanent liquidity.
An immutable contract still depends on correct deployment and external infrastructure. Read Authority and risks for the actual trust boundaries.
Source reference Checked against the source shipped with this documentation. Contract calls and units are detailed in the contract reference .
contracts/src/token/SHOOKToken.solcontracts/src/formation/FormationMarket.solcontracts/src/liquidity/LiquidityVault.solcontracts/src/market/PermanentMarketRouter.solcontracts/src/market/SHOOKVanillaHook.solcontracts/src/staking/StakingVault.solcontracts/src/reserve/ReserveVault.solcontracts/src/game/ShookCoinflip.solcontracts/src/game/ShookTicTacToe.solcontracts/src/game/ShookTurnBasedGame.solcontracts/src/game/ShookGameFeeRouter.solcontracts/src/game/ShookDailyLottery.solcontracts/src/game/ShookRandomnessCoordinator.solImported source files 69 Supporting contracts, interfaces, and libraries imported by the sources above, including their dependencies.
contracts/src/formation/FormationMath.solcontracts/src/game/IShookDailyLottery.solcontracts/src/game/IShookGameFeeRouter.solcontracts/src/game/IShookSettledGameLottery.solcontracts/src/liquidity/ILiquidityVault.solcontracts/src/reserve/IReserveRouteReceiver.solcontracts/src/reserve/IReserveVault.solcontracts/src/staking/IStakingVault.solcontracts/src/token/IProtocolToken.solcontracts/src/vendor/drand/BLS.solcontracts/src/vendor/drand/ModExp.solcontracts/src/vendor/drand/Precompiles.sol@openzeppelin/contracts/access/Ownable.sol@openzeppelin/contracts/access/Ownable2Step.sol@openzeppelin/contracts/interfaces/IERC1363.sol@openzeppelin/contracts/interfaces/IERC165.sol@openzeppelin/contracts/interfaces/IERC20.sol@openzeppelin/contracts/interfaces/IERC5267.sol@openzeppelin/contracts/interfaces/draft-IERC6093.sol@openzeppelin/contracts/token/ERC20/ERC20.sol@openzeppelin/contracts/token/ERC20/IERC20.sol@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol@openzeppelin/contracts/utils/Bytes.sol@openzeppelin/contracts/utils/Context.sol@openzeppelin/contracts/utils/Nonces.sol@openzeppelin/contracts/utils/Panic.sol@openzeppelin/contracts/utils/ReentrancyGuardTransient.sol@openzeppelin/contracts/utils/ShortStrings.sol@openzeppelin/contracts/utils/StorageSlot.sol@openzeppelin/contracts/utils/Strings.sol@openzeppelin/contracts/utils/TransientSlot.sol@openzeppelin/contracts/utils/cryptography/ECDSA.sol@openzeppelin/contracts/utils/cryptography/EIP712.sol@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol@openzeppelin/contracts/utils/introspection/IERC165.sol@openzeppelin/contracts/utils/math/Math.sol@openzeppelin/contracts/utils/math/SafeCast.sol@openzeppelin/contracts/utils/math/SignedMath.sol@uniswap/v4-core/src/interfaces/IExtsload.sol@uniswap/v4-core/src/interfaces/IExttload.sol@uniswap/v4-core/src/interfaces/IHooks.sol@uniswap/v4-core/src/interfaces/IPoolManager.sol@uniswap/v4-core/src/interfaces/IProtocolFees.sol@uniswap/v4-core/src/interfaces/callback/IUnlockCallback.sol@uniswap/v4-core/src/interfaces/external/IERC20Minimal.sol@uniswap/v4-core/src/interfaces/external/IERC6909Claims.sol@uniswap/v4-core/src/libraries/BitMath.sol@uniswap/v4-core/src/libraries/CustomRevert.sol@uniswap/v4-core/src/libraries/FixedPoint96.sol@uniswap/v4-core/src/libraries/FullMath.sol@uniswap/v4-core/src/libraries/Hooks.sol@uniswap/v4-core/src/libraries/LPFeeLibrary.sol@uniswap/v4-core/src/libraries/ParseBytes.sol@uniswap/v4-core/src/libraries/SafeCast.sol@uniswap/v4-core/src/libraries/TickMath.sol@uniswap/v4-core/src/types/BalanceDelta.sol@uniswap/v4-core/src/types/BeforeSwapDelta.sol@uniswap/v4-core/src/types/Currency.sol@uniswap/v4-core/src/types/PoolId.sol@uniswap/v4-core/src/types/PoolKey.sol@uniswap/v4-core/src/types/PoolOperation.sol@uniswap/v4-periphery/src/base/ImmutableState.sol@uniswap/v4-periphery/src/interfaces/IImmutableState.sol@uniswap/v4-periphery/src/libraries/LiquidityAmounts.sol@uniswap/v4-periphery/src/utils/BaseHook.sol
Next โ Token and allocationSHOOK docs Official protocol ยท Mainnet parameters