Finish line

Price stays near the start until late, then turns up hard.1% fee12× · 30 → 360 SOL mcap

← All configs

Drag across the chart, or focus it and use the arrow keys, to read the price at any point of the raise.12×1×3×5×7×9×11×12×First trade25%50%75%GraduationQuote raised toward graduationPrice vs first trade45% raised · 3.4×Finish line curve: 45% raised · 3.4×

Try a buy

Already raised Your buyLeft is the first trade. Right is graduation.

Price before you
2.83×
You pay, on average
3.1×
Price after you
3.4×
Left to graduation
55%

The raise is 35% full. You take the next 10%, leaving it 45% of the way to graduation. The price before you is 2.83× the first trade, and 3.4× after you. Across that slice you pay about 3.1× on average. If the whole supply were priced along this curve, market cap moves from about 84.86 SOL to 102 SOL. A flat 1% trading fee sits on the swap and does not change the shape.

Brief

Quiet for most of the raise, then the price turns up hard into graduation.

Most of the money comes in while the price is still patient. Near the end the line turns up, so the last stretch is where a higher price gets discovered before a real pool exists. Early buyers are not asked to eat a wall. The finish is.

Pick this if

  • You want a long, calmer entry and a visible sprint into graduation.
  • You like the story “it stays reasonable, then it completes.”

Leave it if

  • You need the open itself to be expensive so snipers do not take the cheap coins.
  • A 12× move from the first trade to graduation feels too wide for this coin.

How the money moves

  • If the whole supply were priced at the first trade, the market cap would be about 30 SOL.
  • At graduation it is about 360 SOL, which is 12× the starting price. The trading fee stays at 1% for the whole curve. The fee does not add a volatility bump.
  • Trading fees this config assigns go to the launchpad fee-claimer, not the coin creator.
  • After graduation, 100% of the LP is permanently locked to the launchpad fee-claimer. It cannot be pulled. The launchpad wallet can update the token name and image.
  • Mint authority is not left open. Graduation uses Meteora's 1% migration-fee preset.
  • That slice comes out of the quote before it is paired into DAMM v2.
  • Launching a pool on this config does not charge an extra creation fee.

Numbers

Quote
SOL
Token
SPL · 1,000,000,000 supply · 6 decimals
Starting market cap
30 SOL
Graduation market cap
360 SOL
Price by graduation
12× the first trade
Trading fee
1% fee
Volatility fee
Off
Creator trading fee
None
LP after graduation
100% locked · 0% withdrawable
Team vest
None
Migration fee preset
1%
Metadata
Launchpad can update

A recipe is numbers you deploy as your own PoolConfig. It is not another pad's address.

Deploy this recipe

create-config.ts· Finish line
import { NATIVE_MINT } from "@solana/spl-token";
import { Keypair, PublicKey } from "@solana/web3.js";
import {
  ActivationType,
  BaseFeeMode,
  buildCurveWithLiquidityWeights,
  CollectFeeMode,
  DynamicBondingCurveClient,
  MigrationFeeOption,
  MigrationOption,
  TokenDecimal,
  TokenType,
  TokenAuthorityOption,
} from "@meteora-ag/dynamic-bonding-curve-sdk";

// Finish line — deploy a new PoolConfig. Fee claimer is your wallet.
// This does not point launches at another pad's config address.
const curveConfig = buildCurveWithLiquidityWeights({
  token: {
    tokenType: TokenType.SPLToken,
    tokenBaseDecimal: TokenDecimal.SIX,
    tokenQuoteDecimal: TokenDecimal.NINE,
    tokenAuthorityOption: TokenAuthorityOption.PartnerUpdateAuthority,
    totalTokenSupply: 1_000_000_000,
    leftover: 0,
  },
  fee: {
    baseFeeParams: {
      baseFeeMode: BaseFeeMode.FeeSchedulerLinear,
      feeSchedulerParam: {
        startingFeeBps: 100,
        endingFeeBps: 100,
        numberOfPeriod: 0,
        totalDuration: 0,
      },
    },
    dynamicFeeEnabled: false,
    collectFeeMode: CollectFeeMode.QuoteToken,
    creatorTradingFeePercentage: 0,
    poolCreationFee: 0,
    enableFirstSwapWithMinFee: false,
  },
  migration: {
    migrationOption: MigrationOption.MET_DAMM_V2,
    migrationFeeOption: MigrationFeeOption.FixedBps100,
    migrationFee: { feePercentage: 0, creatorFeePercentage: 0 },
  },
  liquidityDistribution: {
    partnerLiquidityPercentage: 0,
    partnerPermanentLockedLiquidityPercentage: 100,
    creatorLiquidityPercentage: 0,
    creatorPermanentLockedLiquidityPercentage: 0,
  },
  lockedVesting: {
    totalLockedVestingAmount: 0,
    numberOfVestingPeriod: 0,
    cliffUnlockAmount: 0,
    totalVestingDuration: 0,
    cliffDurationFromMigrationTime: 0,
  },
  activationType: ActivationType.Timestamp,
  initialMarketCap: 30,
  migrationMarketCap: 360,
  liquidityWeights: [8, 6, 3, 1, 1],
});

const config = Keypair.generate();
const partner = /* your launchpad wallet */ new PublicKey("YOUR_FEE_CLAIMER");

const createConfigTx = await client.partner.createConfig({
  config: config.publicKey,
  feeClaimer: partner,
  leftoverReceiver: partner,
  payer: partner,
  quoteMint: NATIVE_MINT,
  ...curveConfig,
});