Baa logo
Baa sheeplol.xyz
Launch app

Version v0.1 / Baa / Baa / 210,000,000,000 supply

Baa protocol whitepaper

Thesis

Baa is a fixed-supply Uniswap v4 hook meme protocol. The core loop is simple: trade the canonical Baa/ETH pool, use a reserve-backed launch curve for the first 40%, build a last-minter jackpot, and mine the 60% reward pool through real v4 liquidity.

Human Version

Supply

BucketAmountShare
Launch curve84,000,000,000 Baa40%
LP mining126,000,000,000 Baa60%
Dev allocation0 Baa0%

The full supply is minted once at deployment. There is no owner mint, no pause, no blacklist, and no upgrade path.

Mainnet Contracts

ContractAddress
Baa token (Baa)0xE49F1541d1f14Ef593Afb66e3D08A46342C4D232
Launcher0x293B2D54482cBB194aE258D4507ad98b26364Eaf
V4 Hook0x2533dc1b8aD4C34563c99105AeDF2DD4c36405cc
Jackpot0xb03900b74a814A481BBa5Eae92Ba4e3aaD5b675E
BaaBaa Draw0x629017f3Dc0612Fc1C98365179deE44908F8EDa9
Baa/BTC Vault0x8020188c836467075120B8b2E47228515a79D79D
Baa/WBTC Compounder0x6d78b42BAac34F3947341C52CD84C1dba8C9741A
Mining0x8f972e05dee49c362A770Ad5016c5cED48c76FE3
V4 Router0x817f1a4bC1f63Ef5E6994b2E1AdD97852A57e6fD
Liquidity Manager0x69ecABb1F5e6C245D93f27Ee64C4A7e36D7C859e
Buyback Router0x3db7b3567Fb4125A252125C9DCD04Ea9E4Ca6CAC
Uniswap v4 PoolManager0x000000000004444c5dc75cB358380D2e3dE08A90

Launch Curve

Mint/Sell Flow

FlowRateDestination
Mint0.3% of ETH inputJackpot
Sell0.3% of ETH outputJackpot
Mint/sell0.2% of ETH flowBaaBaa draw fund
Mint/sell0.2% of ETH flowBaa/BTC vault
Mint0.2% of Baa outputAutomatic burn
V4 sell0.2% of Baa inputAutomatic burn
Post-sellout curve sell100% of Baa inputAutomatic burn

Only mints with at least 0.015 ETH of input update the last minter. Smaller mints and all sells still execute normally. Launch-curve mints and v4 pool mints both compete for the same last-minter slot; whichever effective mint happens later wins. Sells do not update the last minter.

Last-Minter Jackpot

LP Mining

The mining pool contains 126,000,000,000 Baa. Rewards are released by cumulative block accounting. The first reward era lasts 21,600 blocks, then rewards halve every 28,800 blocks. After era 60, the remaining dust continues at 1 wei per block until the fixed reward pool is exhausted.

Users do not need to move LP positions into a separate staking contract. The hook tracks full-range v4 liquidity changes. Non-full-range positions can still trade, but they do not earn Baa mining rewards.

The Baa Liquidity Manager passes the caller explicitly and generates a deterministic salt. Generic EOA-initiated v4 LP adds can also be credited because the hook falls back to the transaction origin when no beneficiary is passed. Smart-wallet or relayed paths should use the manager or pass a beneficiary in hook data, because the hook cannot infer an off-chain intended owner from an arbitrary contract call.

Automatic Burn

Mints burn 0.2% of Baa output. V4 sells and pre-sellout curve sells burn 0.2% of Baa input. Post-sellout curve sells burn all Baa sold back. No keeper, bounty, cron, manual fee button, or nested swap is required.

BaaBaa / Baa-BTC

0.2% of ETH flow funds the 777-piece BaaBaa draw. This is not a personal mint sale and the clicker does not send 0.05 ETH. Once the BaaBaa fund has at least 0.05 ETH, mints of at least 0.015 ETH can receive tickets for the active round. The target block is 20 blocks after the round starts. After that block, anyone can call forge(uint256) to settle the public draw with gas only; the vault spends its own 0.05 ETH buying and burning Baa, then awards one BaaBaa to the picked ticket holder. If nobody calls before the blockhash window expires, anyone can call rearm() to reopen the draw window. After 777 BaaBaa awards, burnOnly(uint256) keeps spending 0.05 ETH chunks buying and burning Baa without awarding more BaaBaa.

Another 0.2% of ETH flow goes to the Baa/BTC vault. This is not automatic on every trade and it is not a dev-only action. ETH waits in the vault until the balance reaches 0.1 ETH. Then anyone can call compound(uint256,uint256). The clicker only pays gas; the vault sends exactly 0.1 ETH already collected by fees to the production compounder, which buys Baa through the canonical Baa/ETH v4 pool, buys Ethereum-mainnet WBTC through the configured WETH/WBTC v3 route, and locks both into a full-range Baa/WBTC v4 position. If the ratio is not exact, unused Baa or WBTC remains in the compounder for a later call. This path is isolated, so a failed Baa/WBTC compound cannot block minting, selling, jackpot, burn, or LP rewards. The test stub is Sepolia-only.

Price Drift

The launch curve and the v4 pool are separate venues, so their prices can diverge. Inside the curve, mint, sell, and current price all derive from one state. Before sellout, sell-backs move that state down after the 0.2% burn fee, so later curve mints can refill returned inventory without a second ledger. After sellout, mints stay closed even if sells move the curve state down. V4 swaps depend on LP liquidity and should use minimum output fields for slippage protection.

Ownerless Boundary

Explorer Fallback

The website is only a client. If the website disappears, the same protocol can be used from a block explorer through contract pages. Connect a wallet, open the target contract, use Write Contract, and pass values in wei-sized token units where required.

FunctionUse
SheepLauncher.buyGenesis(address)Mint from the launch curve; send ETH value and pass your wallet.
SheepLauncher.sellGenesis(uint256,uint256)Sell back to the curve. Before sellout, 0.7% ETH goes to protocol sinks and 0.2% Baa burns; after sellout, all Baa sold back burns. Approve Baa first.
SheepLauncher.finalizeBootstrap()After the startup window, settle the already-collected startup bucket into locked v4 LP. Caller pays gas only.
SheepSwapRouter.buy(uint256)Mint through the v4 pool; send ETH and set a minimum Baa output.
SheepSwapRouter.sell(uint256,uint256)Sell through the v4 pool; approve Baa first and set minimum ETH output.
SheepLiquidityManager.addLiquidity(...)Add v4 LP with mining credit; approve Baa and send required ETH.
SheepMining.claim()Claim LP mining rewards.
SheepLiquidityManager.poolSlot0()Read the live v4 pool price state used by the LP helper.
SheepJackpot.draw()Settle the prize after the deadline block. Caller pays gas only; the jackpot contract pays the winner.
BaaBaaVault.forge(uint256)Settle the next BaaBaa draw when ready. Caller pays gas only; the BaaBaa award goes to the picked ticket wallet, not automatically to the caller.
BaaBaaVault.rearm()Reset an expired NFT draw if the old target block hash expired before anyone settled it. Caller pays gas only.
BaaBaaVault.burnOnly(uint256)After all 777 BaaBaa awards exist, spend one chunk buying and burning Baa without awarding another BaaBaa.
BaaBtcVault.compound(uint256,uint256)Settle one Baa/BTC vault chunk when enough ETH is ready. Caller pays gas only; the vault spends its own fee ETH.

Risk

Baa is a meme game, not a promise of price appreciation. Early emissions are intentionally aggressive. Fixed supply and no owner controls reduce admin risk; they do not remove market risk, contract risk, or liquidity risk.