Skip to main content
POST
/
tx
/
pro
/
create
Create Pro Pool
curl --request POST \
  --url https://tx.api.heaven.xyz/tx/pro/create \
  --header 'Content-Type: application/json' \
  --data '
{
  "payer": "<string>",
  "creator": "<string>",
  "encoded_user_defined_event_data": "<string>",
  "config_version": 1,
  "program_id": "<string>",
  "mint": "<string>",
  "initial_token_a_amount": 1,
  "initial_token_b_amount": 1,
  "lut_address": "<string>",
  "compute_unit_limit": 1,
  "compute_unit_price": 1,
  "features": {
    "enable_swap": true,
    "enable_deposit_liquidity": true,
    "enable_withdraw_liquidity": true,
    "enable_update_creator_trading_fee": true,
    "enable_same_slot_trading": true,
    "enable_sandwich_resistant_mode": true
  },
  "creator_trading_fee": [
    {
      "market_cap_upper_bound": 100000000000,
      "buy_fee_bps": 100,
      "sell_fee_bps": 100
    }
  ],
  "creator_slot_trading_fee": {
    "brackets": [
      {
        "buy_fee_bps": 5000,
        "sell_fee_bps": 5000,
        "slot_offset_upperbound": 5
      },
      {
        "buy_fee_bps": 1000,
        "sell_fee_bps": 1000,
        "slot_offset_upperbound": 15
      }
    ],
    "max_slot_offset": 15,
    "max_fee_bps": 5000,
    "enabled": true
  },
  "reflection_trading_fee": [
    {
      "market_cap_upper_bound": 100000000000,
      "buy_fee_bps": 100,
      "sell_fee_bps": 100
    }
  ],
  "liquidity_provider_trading_fee": [
    {
      "market_cap_upper_bound": 100000000000,
      "buy_fee_bps": 100,
      "sell_fee_bps": 100
    }
  ]
}
'
{
  "tx": "<string>",
  "pool": "<string>"
}

Body

application/json

Request to create a new pro liquidity pool. Unlike standard pools, pro pools use an existing SPL token and give creators full control over initial liquidity, fee structure, and pool features.

payer
string
required

Public key of the wallet that will sign and pay for the transaction.

creator
string
required

Public key of the pool creator. This wallet will have creator privileges (toggle features, set fees, claim creator fees).

encoded_user_defined_event_data
string
required

Arbitrary string data emitted as an on-chain event. Useful for tracking or attributing transactions.

config_version
integer<int32>
required

Protocol config version. Use 1 for community tokens, 2 for creator tokens, 3 for pro pools.

Required range: x >= 0
program_id
string
required

Program ID of the Heaven DEX program. Use HEAVENoP2qxoeuF8Dj2oT1GHEnu49U5mJYkdeC8BAX2o for mainnet.

mint
string
required

Mint address of the SPL token (token A) in the pool.

initial_token_a_amount
integer<int64>
required

Amount of token A (in native/smallest units) to deposit as initial liquidity. Must be large enough to satisfy the minimum liquidity requirement.

Required range: x >= 0
initial_token_b_amount
integer<int64>
required

Amount of SOL (in lamports) to deposit as initial liquidity. Together with token A, this sets the initial price.

Required range: x >= 0
lut_address
string
required

Address of an on-chain Address Lookup Table (ALT) to compress the transaction size.

compute_unit_limit
integer<int32> | null

Maximum compute units for the transaction. Higher values allow more complex operations but cost more. Defaults to a sensible value if omitted.

Required range: x >= 0
compute_unit_price
integer<int64> | null

Priority fee in micro-lamports per compute unit. Higher values increase transaction priority. Defaults to a sensible value if omitted.

Required range: x >= 0
features
object

Optional feature toggles for the pool. Controls whether swapping, deposits, withdrawals, and other features are enabled at creation time. All default to sensible values if omitted.

creator_trading_fee
object[] | null

Creator trading fee brackets. Up to 4 brackets with market cap thresholds. Uses protocol config defaults if omitted.

creator_slot_trading_fee
object

Optional slot-offset based creator fee for sniper resistance. When active, takes precedence over market cap based creator fees.

Example:
{
"brackets": [
{
"buy_fee_bps": 5000,
"sell_fee_bps": 5000,
"slot_offset_upperbound": 5
},
{
"buy_fee_bps": 1000,
"sell_fee_bps": 1000,
"slot_offset_upperbound": 15
}
],
"max_slot_offset": 15,
"max_fee_bps": 5000,
"enabled": true
}
reflection_trading_fee
object[] | null

Optional reflection trading fee brackets. Reflection fees are distributed to token holders. Uses protocol defaults if omitted.

liquidity_provider_trading_fee
object[] | null

Optional LP provider trading fee brackets. LP fees are distributed to liquidity providers. Uses protocol defaults if omitted.

Response

200 - application/json
tx
string
required

Base64 encoded versioned transaction. Decode, sign with the payer (and creator if different), and submit to the Solana network.

pool
string
required

On-chain address of the newly created pool state account. Save this to interact with the pool later.