mint.fast docs

CTO and governance

2/4 multisig ownership, fee managers, community takeover, and how to apply.

Protocol owner: 2/4 multisig

The mint.fast launchpad and fee vault are owned through Ownable2Step, and that owner key is held by a 2/4 multisig. Two of four signers must approve sensitive admin actions.

Ownership renounce is disabled on both contracts (OwnershipRenounced), so attester rotation, treasury updates, and fee-manager appointments stay possible.

Transfer is two-step: transferOwnership then acceptOwnership.

What the multisig can do

On MintFastLaunchpad:

ActionEffect
setCreatePausedstop or resume new mints only
setCreationFeefuture creates, ≤ 0.005 ETH
setDefaultFeesfuture creates' Fletcher / LP split defaults
setTreasurywhere sweepProtocolFees pays
setFeeManagergrant or revoke CTO / ops rewrite power

On SocialFeeVault:

ActionEffect
queueAttester / removeAttestermanage who may sign social claims
(not available)no sweep, withdraw, or pause on escrow

What it cannot do

  • Freeze trading
  • Pull or remove locked LP
  • Change fee splits on coins that already exist
  • Touch ETH sitting in the vault under Fletcher keys
  • Mint extra supply
  • Upgrade implementation code (no proxies)

Fee managers and CTO

A fee manager is an address with isFeeManager[account] == true. Fee managers may call setBeneficiaries on any live token, even when the list is locked. That is the on-chain lever for:

  • community takeovers (CTO)
  • fixing a mistyped social handle
  • reassigning Fletcher recipients when a creator is gone or compromised

setBeneficiaries:

  1. Requires a non-empty new list (empty is only valid at createToken)
  2. Auto-harvests pending fees to the old set first
  3. Clears and registers the new set
  4. Leaves the token locked

Already-escrowed vault balances stay under the old identity keys. Only fees harvested after the change go to the new recipients. Per-token socialSplitBps / lpSplitBps never change.

Creators who minted with an empty beneficiary list can do one setBeneficiaries themselves before lock. After that, only fee managers.

Apply for CTO

If you are organizing a community takeover, or you need Fletcher recipients corrected, submit the apply form. Ops review, then a fee manager executes the on-chain update when appropriate.

Apply here: CTO / Fletcher change form

Include the token address, why the change is needed, and the exact new beneficiary rows (platform, normalized handle or wallet, and bps that sum to 10_000).

Example: fee manager rewrite

await walletClient.writeContract({
  address: launchpad,
  abi: launchpadAbi,
  functionName: "setBeneficiaries",
  args: [
    token,
    [
      {
        kind: 1,
        handle: "newhandle",
        wallet: "0x0000000000000000000000000000000000000000",
        bps: 7000,
      },
      {
        kind: 3,
        handle: "",
        wallet: "0xTreasuryOrOpsWallet",
        bps: 3000,
      },
    ],
  ],
})

Only a fee manager (or the unlocked creator on their one shot) will succeed. Everyone else gets NotAuthorized or BeneficiariesLocked.