Some functionality will be degraded until the official mainnet launch on the 9th.
Documentation
Guides

How a launch works

A Tartarus launch has one state after it lands: trading. There is no curve to fill, no threshold, and no migration. This page follows what happens inside the launch transaction and what runs afterwards.

$ code
  launchToken / launchAndBuy
            |
            |   one transaction
            v
   deploy token  ->  create pool  ->  register with hook  ->  lock whole supply
            |
            v
   trading on Uniswap V4, from this block, forever
            |
            v
   fees accrue in the hook  ->  sweep  ->  escrow  ->  claim

Inside the launch transaction#

The factory does all of this atomically, so a launch either completes or never happened.

  1. Checks. The launch gate, the config, the quote asset, the creator tranche, the economics pin, the exact launch fee and the ticker.
  2. Deploys the token with CREATE2 through TartarusLaunchDeployer. All 1,000,000,000 tokens are minted to the factory. Name, symbol and decimals are immutable, stored in the bytecode.
  3. Creates the bridge wallet when a bridge factory is configured, so the token is ready for Elysium's mirror bridge. None is configured on mainnet yet. See HyperCore.
  4. Initializes the V4 pool at the config's starting price, with the Tartarus hook attached and an LP fee of zero.
  5. Registers the pool with the hook, freezing its fee rates and recipients for life.
  6. Seeds one position holding the entire supply, from the floor price to the top of the tick range, and hands it to TartarusLaunchLocker. Any rounding dust is locked too.
  7. Records the launch and emits LaunchSalt, PoolSeeded and TokenLaunched.

launchAndBuy runs the same steps, then buys inside the same transaction, so nobody can get in between the pool opening and the creator's first purchase.

The pool#

The position is single-sided: it holds tokens and no quote. A buy pays quote into it and takes tokens out, moving the price up. A sell does the reverse. Sells can only return what buys paid in, so the price cannot fall below where the launch started. That starting price is the token's floor. Price and market cap gives the math.

The position cannot be removed. TartarusLaunchLocker has no withdrawal function and no arbitrary call, for anyone, including its owner. The pool's LP fee is zero, so the position earns nothing and there is nothing to collect from it. Every fee belongs to the hook.

After launch#

WhatWhoHow often
Take the fee on each swapthe hookevery swap
Convert memecoin fees to the quote and pay them to the escrowthe sweep operator (keeper)about every 6 hours per pool, once enough has accrued
Pay out quote feesthe keeper, or the creator directlyany time
Deploy a holder-rewards distributorthe jobs service, or anyonesoon after a holder-rewards launch
Publish holder-reward epochsthe distributor ownerabout weekly

Nothing here can stop a token from trading. If every Tartarus service went offline, the pools, the tokens and the escrow would keep working, and swaps could still go straight through Uniswap.

Reading a launch#

$ ts
const launch = await client.readContract({
  address: FACTORY, abi: factoryAbi, functionName: "getLaunchedToken", args: [token],
});
// { token, deployer, creatorFeeRecipient, quoteToken, poolId, positionId,
//   startingTick, tickSpacing, exists }

getLaunchedToken returns a zeroed struct for an unknown address rather than reverting, so check exists first.

POLLINGElysium · 99901 · Mainnet
--:--:-- UTC