Documentation

Fees

The flat launch fee, the 2.5% pool fee, and how collected pool fees split between the creator and the protocol.

On this page

A launch involves two separate fees. The launch fee is paid once, in APE, when the token is created. The pool fee is paid by every swap in the launch pool for as long as the pool exists, and it is the one creators earn from.

The launch fee

A flat amount of APE per launch, read from ArmoryLauncher.launchFee(). It is currently 10 APE. The contract caps it at 500 APE (MAX_LAUNCH_FEE), and no admin call can set it higher.

The launch fee goes straight to the platform treasury, treasury() on the launcher. It never touches the fee receiver.

Everything sent above the launch fee is spent on the dev buy. The launcher does not refund. If the fee changes between the moment you read it and the moment your transaction lands, the difference comes out of the dev buy, and a launch with less than the fee attached reverts with InsufficientValue(). Read launchFee() immediately before you build the transaction.

The pool fee

Every launch pool is on the 2.5% tier. Every swap in it, buy or sell, pays 2.5% of the input to the liquidity in range. Since the locked launch position is the only liquidity a fresh launch pool has, those fees accrue to it.

Fees accrue in both tokens: WAPE from buys, the launched token from sells.

How collected fees split

The split is fixed per token at launch. The launcher stamps its current creatorBps into the locked position, and that number never changes for that token again.

Today
creatorBps at launch7000
Creator share70%
Protocol share30%
Floor on the creator share10% (MIN_CREATOR_BPS, compiled in)

The platform can change creatorBps for future launches, never below 10%. A change does not reach tokens that have already launched.

On each collect, ArmoryLaunchFeeReceiver splits each side separately:

  • WAPE side. The creator share goes to the position's fee recipient. The rest goes to the protocol recipient.
  • Token side. The creator share is paid in kind, in the launched token, to the fee recipient. The protocol share is burned, sent to the dead address, while burnTokenFees() is true. That is the default, so the protocol's cut of a token's own fees reduces supply rather than being sold.

The arithmetic is creatorAmount = amount * creatorBps / 10000, rounded down, and the protocol takes the remainder including any rounding.

Fees arrive as WAPE, not native APE. WAPE unwraps 1:1 to APE with its withdraw function, and the app offers that in the wallet panel.

Collecting

ArmoryLaunchLocker.collect(positionId) has no access control. Anyone can call it for any launch position, and the payout always goes to the recipients recorded on chain, never to the caller.

Two parties collect in practice:

  • The creator, any time, from Creator Corner at /creator.
  • A platform keeper, which collects a position once at least 25 WAPE of fees is waiting on it. A creator does not have to do anything to get paid.

Uncollected fees are not lost and do not expire. They sit in the pool position until somebody collects.

Unclaimed balances

The fee receiver pushes each payout and does not let one failed transfer block the rest. If a transfer to a recipient fails, the amount is recorded in claimable(recipient, token) and a FeeCredited event is emitted. The recipient pulls it later with claim(token).

Creator Corner shows any unclaimed balance next to the pending fees for the same token. The call is in Integration recipes.

The launchpad split is not the DEX protocol fee

The creator and protocol shares on this page apply to fees collected from locked launch positions. The DEX has its own protocol fee mechanism, documented under access control. The two are separate systems.