mint.fast docs

Migration

What "migrated" means, how to compute market cap and progress, and how much ETH is left to the threshold.

Straight talk

mint.fast does not migrate liquidity. There is no bonding-curve exit, no new pool, no move of LP NFT, no "graduate" transaction.

Coins trade on Uniswap v4 from block zero. In the product, migrated means the coin's ETH market cap reached a fixed milestone:

LISTING_CAP_ETH = 18.67

When market cap reaches 18.67 ETH, mint.fast marks the coin as migrated. That status sticks in the app. Treat it as a badge, not a contract mechanism.

Market cap

From launchpad state:

spotPriceWad = state(token).spotPriceWad   // ETH per token, 1e18 scale
marketCapEth = spotPriceWad * 1e9 / 1e18

Same idea from a price feed: ethPerToken * 1_000_000_000.

Launch sits near 1.5 ETH mcap. Migrated is 18.67 ETH mcap.

Progress

progress = min(1, marketCapEth / 18.67)
percentToMigration = progress * 100

Example: mcap = 9.335 ETH → progress = 0.5 → 50% of the way.

How much mcap is left

mcapLeftEth = max(0, 18.67 - marketCapEth)

That is market-cap headroom in ETH terms, not "send this much ETH into a buy." A market buy moves price along the curve, so ETH spent ≠ mcap gained one-for-one.

Worked examples

Read progress from chain

const [, , spotPriceWad] = await publicClient.readContract({
  address: launchpad,
  abi: launchpadAbi,
  functionName: "state",
  args: [token],
})

const LISTING_CAP = 18.67
const marketCapEth =
  (Number(spotPriceWad) / 1e18) * 1_000_000_000

const progress = Math.min(1, marketCapEth / LISTING_CAP)
const mcapLeft = Math.max(0, LISTING_CAP - marketCapEth)

console.log({
  marketCapEth,
  progressPct: progress * 100,
  mcapLeftEth: mcapLeft,
  migrated: marketCapEth >= LISTING_CAP,
})

Sample table

Spot (ETH / token)Market cap (ETH)ProgressMcap left
1.5e-91.5~8.0%17.17
5e-95.0~26.8%13.67
9.335e-99.33550%9.335
1.867e-818.67100%0

Spot × 1e9 = mcap because supply is 1e9 tokens.

Why 18.67?

It is a fixed product milestone used by mint.fast for the migrated badge. It is intentionally not encoded in the smart contracts, so changing it does not require a contract upgrade. It also does not move with ETH/USD. Progress is ETH-denominated.

What traders should remember

  • After "migration," you keep trading the same pool the same way.
  • Fee rules and locked LP do not change at the threshold.
  • The badge is informational, useful for discovery tabs like "Almost migrated" and "Migrated."