Change a fee recipient

Move the creator's fee share to a new address, or turn on burn mode.

Only the current creator fee recipient of a drop can change it. The new recipient must not be the zero address or the launchpad.

Collect first

The change applies to fees that are collected after it. Credits that are already collected stay with the old recipient. Fees that are still in the pools go to the new recipient at the next collection.

To keep the fees that the pools hold now, collect each pool of the token before the change:

// The quote of each pool of the token
for (const quote of [zeroAddress, USDC]) {
  await walletClient.writeContract({
    address: LAUNCHPAD,
    abi: launchpadAbi,
    functionName: "collectAndClaimFees",
    args: [quote, token, account.address],
  });
}

Change the recipient

Send this from the current creator fee recipient:

await walletClient.writeContract({
  address: LAUNCHPAD,
  abi: launchpadAbi,
  functionName: "setCreatorFeeRecipient",
  args: [token, newRecipient],
});

Other callers get DropLaunchpad__NotFeeRecipient. The launchpad emits CreatorFeeRecipientUpdated.

Turn on burn mode

Set the recipient to 0x000000000000000000000000000000000000dEaD:

await walletClient.writeContract({
  address: LAUNCHPAD,
  abi: launchpadAbi,
  functionName: "setCreatorFeeRecipient",
  args: [token, BURN_ADDRESS],
});

Burn mode is permanent. Nobody controls 0x…dEaD, so nobody can change the recipient again.

In burn mode, the partner fee recipient gets all quote fees, and 0x…dEaD gets all token fees. See Burn mode.

Partner fee recipients

The partner fee recipient works the same way, with setPartnerFeeRecipient(partnerId, newRecipient). See Register a partner.

On this page