Build your own fully customizable bonding curve with DBC. DBC allows you to configure everything from the curve shape to the trading fees.

Program Address

  • Mainnet-beta: dbcij3LWUppWqq96dh6gJWwBifmcGfLSB5D4DuSMaqN
  • Devnet: dbcij3LWUppWqq96dh6gJWwBifmcGfLSB5D4DuSMaqN

Resources

Flow of DBC Pool -> DAMM v1/v2 Pool

Concepts

  • Pre-bonding: DBC pool - where the newly minted token discovers its price. No need for an LP.
  • Post-bonding: DAMM v1/v2 pool - where the accumulated quote_mint tokens in the bonding curve + a portion of the base_mint tokens are migrated to form the liquidity pool of the new token
  • Partner: Launchpad
  • Creator: Token Pool Creator

Flow

1

Step 1: Create DBC Config Key

Partner creates a DBC Config Key that consists of the curve shape, migrated pool fee, and many more.

2

Step 2: Create DBC Token Pool

Creator creates a DBC Token Pool with the Partner’s DBC Config Key. This action will mint the new token and initialise a DBC Pool.

3

Step 3: Trade DBC Token Pool

The DBC Token Pool is tradeable on all trading terminals and trading bots (including Jupiter Pro, Axiom, Photon, GMGN, BullX etc.)

4

Step 4: Migrate to DAMM Pool

Once the DBC Token Pool has accumulated enough quote_mint tokens (pool_state::quote_reserve >= pool_config::migration_quote_threshold), our migrator keeper will automatically migrate the DBC pool to a DAMM Pool.

The migration_quote_threshold and a portion of the base_mint tokens will form the liquidity pool of the DAMM Pool.

5

Step 5: Trade on graduated DAMM v1/v2 Pool

The graduated DAMM v1/v2 Pool is also tradeable on all trading terminals and trading bots (including Jupiter Pro, Axiom, Photon, GMGN, BullX etc.)

Migration

DAMM Fee Config Keys

DAMM (v1) Migration Fee Config Keys:

  • migration_fee_option == 0: 8f848CEy8eY6PhJ3VcemtBDzPPSD4Vq7aJczLZ3o8MmX
  • migration_fee_option == 1: HBxB8Lf14Yj8pqeJ8C4qDb5ryHL7xwpuykz31BLNYr7S
  • migration_fee_option == 2: 7v5vBdUQHTNeqk1HnduiXcgbvCyVEZ612HLmYkQoAkik
  • migration_fee_option == 3: EkvP7d5yKxovj884d2DwmBQbrHUWRLGK6bympzrkXGja
  • migration_fee_option == 4: 9EZYAJrcqNWNQzP2trzZesP7XKMHA1jEomHzbRsdX8R2
  • migration_fee_option == 5: 8cdKo87jZU2R12KY1BUjjRPwyjgdNjLGqSGQyrDshhud

DAMM v2 Migration Fee Config Keys:

  • migration_fee_option == 0: 7F6dnUcRuyM2TwR8myT1dYypFXpPSxqwKNSFNkxyNESd
  • migration_fee_option == 1: 2nHK1kju6XjphBLbNxpM5XRGFj7p9U8vvNzyZiha1z6k
  • migration_fee_option == 2: Hv8Lmzmnju6m7kcokVKvwqz7QPmdX9XfKjJsXz8RXcjp
  • migration_fee_option == 3: 2c4cYd4reUYVRAB9kUUkrq55VPyy2FNQ3FDL4o12JXmq
  • migration_fee_option == 4: AkmQWebAwFvWk55wBoCr5D62C6VVDTzi84NJuD9H7cFD
  • migration_fee_option == 5: DbCRBj8McvPYHJG1ukj8RE15h2dCNUdTAESG49XpQ44u

Migration Keeper

We run 2 migration keepers on Mainnet to automatically migrate DBC pools to DAMM pools.

Keeper addresses that we are running:

  1. CQdrEsYAxRqkwmpycuTwnMKggr3cr9fqY8Qma4J9TudY
  • pool_config.migration_quote_threshold requirements:
    • 10 SOL
    • 750 USDC
    • 1500 JUP
  1. DeQ8dPv6ReZNQ45NfiWwS5CchWpB2BVq1QMyNV8L2uSW
  • pool_config.migration_quote_threshold requirements:
    • >= 750 USD (quote_mint token)
The Migration Keepers only runs on Mainnet.

Manual Migrator

We have created a Manual Migrator user interface that allows you to manually migrate your DBC pool to a DAMM pool on both Mainnet and Devnet.

Depending on your DBC Config Key, the migration process will require you to sign more than one transaction to call each instruction.

Config Key Parameters

pool_fees

Type: object (includes base_fee and optional dynamic_fee)
Defines the trading fee for any pool created from this configuration. Partner can add a fee scheduler or rate limiter in base_fee or just a fixed fee.

collect_fee_mode

Type: 0 | 1
0: Only collects fee in quote token.
1: Collects fee in both tokens.

migration_option

Type: number
Currently only supports migration to Meteora DAMM. Set to 0.

activation_type

Type: 0 | 1
0: Slot
1: Timestamp
Indicates the time unit for pool operations, mainly for fee scheduler/rate limiter and dynamic fee calculations.

token_type

Type: 0 | 1
0: SPL Token
1: Token2022

token_decimal

Type: number (6-9)
Token decimals used when creating the virtual pool. Only supports 6 to 9.

partner_lp_percentage

Type: number
Percentage of LP that partner can claim after migration.

partner_locked_lp_percentage

Type: number
Percentage of LP that partner will have locked after migration.

creator_lp_percentage

Type: number
Percentage of LP that creator can claim after migration.

creator_locked_lp_percentage

Type: number
Percentage of LP that creator will have locked after migration.

migration_quote_threshold

Type: number
Threshold for quote token. When the virtual pool reserve reaches this amount, the token will graduate and be migrated.

fee_claimer

Type: address
Address of the partner that can claim trading fees from virtual pools and locked LPs.

owner

Type: address
Owner of the configuration.

quote_mint

Type: address
Quote mint address that the virtual pool will support.

locked_vesting

Type: object
Locked vesting for creator after migration (tokens will be migrated to Jup lock).

migration_fee_option

Type: number
Fee option for graduated pool. Supported: 0.25%, 0.3%, 1%, 2%, 4%, 6%.

token_supply

Type: number
If specified, token will have fixed supply pre- and post-migration. Leftover will be returned to leftover_receiver (configured in config key).

creator_trading_fee_percentage

Type: number
Percentage of trading fee and surplus pool creator can get for a pool.

token_update_authority

Type: 0 | 1
0: Mutable
1: Immutable
Option to allow creator to update token metadata.

migration_fee

Type: number
Option to configure migration fee from migration quote threshold. Migration fee can be shared between partner and creator.

sqrt_start_price

Type: number
Square root of min price in the bonding curve for the virtual pools.

curve

Type: array of (square price, liquidity)
Defines the liquidity distribution for the virtual pools.