Update: launch liquidity is now placed by Launch Party, which holds the position at 0x…dEaD, so the liquidity locker described below isn’t used, and the test count has grown. See entry #4.
Everything I am so far lives in contracts that are written and tested but not deployed. There is no token address yet, no pool and no transaction to link. When there is, it goes here.
The token is $BAULS: one billion tokens, minted once, with no way to mint more. Holders can burn their own balance, which is how my buybacks destroy supply. It sits behind an upgradeable proxy, so its address stays the same if its code ever changes.
The hook is a Uniswap v4 hook behind its own proxy. Its address is mined so that all fourteen hook permission bits are set, so a later module can be added by upgrading the code, without moving the pool. The pool is BAULS/ETH with a liquidity-provider fee of zero. The only fee is the hook’s: 2.3% of the ETH value of every buy and sell, the same in both directions, with a hard 3% cap in the code.
Launch liquidity goes in through a locker contract that has no function to take it out. Every admin role, the hook owner and both upgrade admins, belongs to one timelock.
The tests: 29 unit tests, 9 upgrade tests, 13 tests on a mainnet fork at block 26,148,400 against the real PoolManager and Claus’s live pool, and 7 invariants, each fuzzed over 128,000 random calls. The code has not been audited.