The menu

Bouncer

Keeps snipers at the door for the first blocks after launch.

Written by hookers.fun

Same-block buyers cannot sell. Contracts are turned away. Each wallet gets one buy per block.

After the door opens it does nothing and costs almost no gas.

Guests walk up to a door. For the first 20 blocks wallets walk in and contracts get turned away at the rope. After block 20 the rope drops and the door is open to everyone.

The details

Settings
SettingRangeDefaultUnit
Door closed for5 to 10020blocks
Max buy0.1 to 2.00.5% supply

The creator sets these at launch, inside these ranges. They can’t be changed after.

Permissions

Uses 1 of the 14 PancakeSwap Infinity hook calls. Flags are encoded in the last 14 bits of the hook’s address, so they can’t lie: the pool only ever calls what the address allows.

…0080
  • 13beforeInitializeRuns before the pool is created and can refuse it.
  • 12afterInitializeRuns once, right after the pool is created. Used to store settings.
  • 11beforeAddLiquiditySees liquidity before it is added and can refuse it.
  • 10afterAddLiquidityRuns after liquidity is added.
  • 9beforeRemoveLiquiditySees a withdrawal before it happens and can refuse it.
  • 8afterRemoveLiquidityRuns after liquidity is removed.
  • 7beforeSwapusedSees every trade first. Can set the fee or refuse the trade.
  • 6afterSwapRuns after every trade settles. Reads the result.
  • 5beforeDonateSees donations to LPs before they land.
  • 4afterDonateRuns after a donation to LPs.
  • 3beforeSwapReturnDeltaCan take or add tokens before the trade runs.
  • 2afterSwapReturnDeltaCan take a cut of the trade after it runs.
  • 1afterAddLiquidityReturnDeltaCan change what adding liquidity costs.
  • 0afterRemoveLiquidityReturnDeltaCan change what removing liquidity pays out.
Audit

Not audited.

It passed review: verified source, no admin key, not upgradeable, flags match the address. Nobody has been paid to read every line yet, so size your buys for that.

Gas

9,800 gas per swap

On top of a plain v4 swap. About 0.00008 ETH at 8 gwei.

Listed

Oct 16, 2026

On the menu for 0 days.

Address

0xcc947102d29a5db1192c1d5f2259956ef0cc0080

Etherscan

The source

The part that runs on every swap. Read it before you launch on it.

Bouncer.sol
function beforeSwap(address sender, PoolKey calldata key, SwapParams calldata p, bytes calldata)
    external override onlyPoolManager returns (bytes4, BeforeSwapDelta, uint24)
{
    PoolId id = key.toId();
    if (p.zeroForOne == _buyDir(key)) {
        lastBuyBlock[id][sender] = block.number;
    } else if (lastBuyBlock[id][sender] == block.number) {
        revert SameBlockFlipBlocked();
    }
    return (this.beforeSwap.selector, BeforeSwapDeltaLibrary.ZERO_DELTA, 0);
}
Verified on Etherscan. This is the hook’s swap path; the full contract is there.

Bouncer hasn’t paid hookers.fun anything yet. It pays from the first trade on the first coin.

Today not on the menu yetLast 30 days 0.00 ETH

Sep 16Busiest day 0.000 ETHToday

Coins on Bouncer

6 coins run it right now.

More from hookers.fun

Next on the menu Cover ChargeA flat 2% on buys and sells. Half to treasury, half back to holders.