Liquidity
Locked at launch, and the lock is the absence of code.
The launch converts the entire token supply into one Uniswap v4 range position, single-sided, owned by TapeLiquidityLocker.
- Owner of the position
TapeLiquidityLocker- Owner of the locker
- none — the contract has no owner
- Withdrawal function
- does not exist
- Upgradeability
- none
Why the creator cannot rug it
modifyLiquidity is called from exactly two places in the locker. In the first, at launch, the liquidity delta is a positive value derived from the launch supply. In the second, when collecting fees, the delta is the literal constant 0.
// _collect(), the only other call site
ModifyLiquidityParams({
tickLower: p.tickLower,
tickUpper: p.tickUpper,
// The lock. Not a variable, not a parameter: a literal zero.
liquidityDelta: 0,
salt: bytes32(0)
})There is no third call site, no parameter that can carry a negative delta, and no branch that reaches one. Grep the file: there is no withdraw, no emergencyExit, no onlyOwner, no owner at all, and no delegatecall.
LP fees
The position earns the pool's LP fee like any other. collectLpFees is permissionless — anyone may call it — and the destination is fixed: the fee vault. A zero-delta modify collects fees and leaves the principal untouched.
- 01Locked position earns LP fees
- 02collectLpFees (anyone)
- 03Fee vault, per market and token
The range
The position runs from the opening tick upward, which is what makes it single-sided: at the opening price it consists entirely of launch tokens. The launch reverts unless the resulting position consumes exactly one currency — that check is what makes the launch zero-seed rather than merely lopsided.
TAPEZERO is an independent protocol and is not affiliated with Robinhood, Uniswap or Chainlink. The contracts are unaudited. Nothing here is investment advice.