How it works

The steps of a launch, from the token to the pools.

A launch is one call to launchDrop on DropLaunchpad. The call either does all of the steps below, or it reverts and does none of them.

Deploy the token

The launchpad calls the token deployer that the launch selects. The deployer creates the token and mints the full supply of 1,000,000,000 tokens to the launchpad. See Tokens.

The token address is deterministic. It depends on the caller of launchDrop and the salt, so you can predict it before the launch.

Plan the pools

The launch has 1 to 5 pool requests. Each request has a quote, a share of the supply, and a start tick. The launchpad checks the requests and calculates one single-sided position for each pool. See Pools.

The launchpad stores the drop:

FieldValue
creatorFeeRecipientFrom the launch parameters
partnerIdFrom the launch parameters
creatorThe caller of launchDrop
launchedAtThe block timestamp of the launch

Create the pools

The launchpad unlocks the Uniswap v4 PoolManager. In the unlock callback, it:

  1. Initializes each pool at its start price. Only the launchpad can initialize pools with DropHook.
  2. Adds the pool's position. The position holds only the token, from the start price up.
  3. Pays the full supply to PoolManager once, for all pools. Rounding makes the positions take slightly less than the supply. The small remainder stays in PoolManager forever, so no tokens stay with the launchpad or the creator.
  4. If the launch has a dev buy, it buys from the main pool for the dev buy recipient.

The dev buy happens in the same transaction as pool creation. Nobody can trade in the pools before it.

After the launch

The pools are standard Uniswap v4 pools. Anyone can swap in them with any v4 router.

  • Nobody can remove the liquidity or add more. See Trust model.
  • Swaps pay the partner's LP fee. The launchpad collects the fees and splits them between the partner and the creator fee recipient. See Fees.
  • Each fee recipient can move its share to a new address. Nothing else about a drop can change.

On this page