This endpoint creates a single-sided liquidity pool where only one asset (asset A) needs to be deposited initially. The pool uses a Linear Price Ramp bonding curve mechanism to establish price discovery and liquidity bootstrapping.
Single-sided pools use a Linear Price Ramp bonding curve that differs from constant product pools:
P_start + S * (P_end - P_start)tokens_sold / initial_supply)Fees are split between:
lp_fee_rate_bps)Requires a valid JWT bearer token. The token’s public key must match the
pool_owner_public_key in the request.
After successful creation, the pool owner must:
Send the initial asset A deposit to the pool’s addresspool_owner_public_key - Public key of the pool creatorasset_a_token_public_key - Public key of the deposited assetasset_b_token_public_key - Public key of the paired assetasset_a_initial_reserve - Amount to depositgraduation_threshold_pct - Percentage of initial supply to sell before graduationtarget_b_raised_at_graduation - Target asset B amount that determines end pricelp_fee_rate_bps - LP fee in basis pointstotal_host_fee_rate_bps - Total host fees in basis pointshost_namespace - Optional host identifiernonce - Unique value for replay protectionsignature - Request signature202 Accepted with pool creation details and deposit address400 Bad Request if validation fails401 Unauthorized if authentication fails500 Internal Server Error if creation failsBearer authentication header of the form Bearer <token>, where <token> is your auth token.
Single-sided pool creation parameters including bonding curve configuration and fee settings
Request body for creating a new single-sided AMM pool.
Single-sided pools allow liquidity providers to deposit only one asset (asset A), while the pool creates a Linear Price Ramp bonding curve against a paired asset (asset B). This is useful for launching new tokens with price discovery and initial liquidity.
Public key of the pool owner who will control the pool. Must match the authenticated user's public key.
"03b06b7c3e39bf922be19b7ad5f19554bb7991cae585ed2e3374d51213ff4eeb3c"
Address of asset A (the deposited asset). This is the asset that liquidity providers will deposit.
"0338d6978bd3163d1547f9ddb8b215d1c163bc7b4a552e559b89057f5449ba69de"
Address of asset B (the paired asset). This asset forms the other side of the trading pair.
"020202020202020202020202020202020202020202020202020202020202020202"
Initial reserve amount for asset A in the smallest unit. This is the actual amount that will be deposited into the pool.
x >= 0"1000000000"
Virtual reserve amount for asset A in the smallest unit. This is the amount that will be used to calculate the price of the pool.
x >= 0"5000000000"
Virtual reserve amount for asset B in the smallest unit. This is the amount that will be used to calculate the price of the pool.
x >= 0"10000000000"
Amount of asset A that must be sold to graduate to constant product.
x >= 0"1000000000"
Liquidity provider fee rate in basis points (BPS). 1 BPS = 0.01%, so 500 BPS = 5% fee.
x >= 0500
Total host fee rate in basis points (BPS). Includes both host and Flashnet fees. Must be validated based on host configuration.
x >= 0200
Unique nonce for replay protection.
Must be a unique value that hasn't been used before.
"550e8400-e29b-41d4-a716-446655440000"
Hex-encoded secp256k1 signature of the request.
Must be signed by the private key corresponding to pool_owner_public_key.
"3045022100a7e5d4f8b2c9a1e6f0d5b8c4a9e7f2d1c8b5a4e9f0d6c5b3a2e1d0c9b8a7f02201f2e3d4c5b6a7980e9f0a1b2c3d4e5f67889a0b1c2d3e4f5a6b7c8d9e0f1a2b3"
Optional host namespace for fee sharing. If provided, fees will be shared with the specified host.
"my-cool-exchange"
Pool creation initiated. Initial deposit required to activate pool.