Trading API

Integrate Solana & EVM swaps in your app

Build your own custom swap widget with native token pair support across the major DEXs including Raydium, Meteora, Pump.fun, Swap.pump.fun (Dex by Pump.fun), Uniswap and more.

Before Integration

Reach out to our team for:

  • Authorisation token and API keys
  • Provide your fee wallet

Authentication

All API requests require two forms of authentication:

  1. API Key (x-api-key header)
  • Format: x-api-key: <your_api_key>
  • Example: x-api-key: 8d4f3c2b-1a5e-4f9d-8c7b-6a5d4e3f2c1b
  • This is your unique API key for accessing the services
  1. Bearer Token (Authorization header)
  • Format: Bearer <your_token>
  • Example: Authorization: Bearer eyJhbGciOiJIUzI1NiJ9f4k2l5j6m7n8p9q0r1s2t3u4v5w6x7y8z9
  • This is a unique token tied to your integration

ℹ️

IMPORTANT: make sure to use the correct endpoint for each supported DEX (Raydium AMMv4; CLMM; Meteora DYN; DLMM; Pump.fun LP & AMM; Uniwap v2)

Fees collected

We support fees to be collected in SOL (so feeMintAddress in prepare endpoint needs to be So11111111111111111111111111111111111111112), ETH and stables (e.g. USDC). We can customise the fees you'd like to charge your customers (e.g. 1% split 80/20 with Helio)

Raydium (AMMv4)

**Base URL (Mainnet): **https://api.btftx.io/v1

Authorisation: Request your bearer tokens from the Helio team

1. Raydium Swap Price

  • Endpoint: POST /raydium-swap/price
  • Authentication: Required
  • Description: Retrieves the current price for a swap transaction based on the specified pool and token amounts.
  • Request Body:
    • poolId (string): Liquidity pool ID of the token pair being swapped
    • mintFrom (string): Contract Address of the token that the sender has
    • mintTo (string): Contract Address of the token being swapped to
    • amountIn (BigInt as string): Amount of mintFrom tokens to be swapped in minimal units
  • Response: (string) Indicates the estimated price, such as the expected amount of mintTo tokens

Sample Request:

{
  "poolId": "FRhB8L7Y9Qq41qZXYLtC2nw8An1RJfLLxRF2x9RwLLMo",
  "mintFrom": "So11111111111111111111111111111111111111112",
  "mintTo": "7GCihgDB8fe6KNjn2MYtkzZcRjQy3t9GHdC8uHYmW2hr",
  "amountIn": "100000"
}

Sample Response:

"0.052495764"

2. Prepare Raydium Swap

  • Endpoint: POST /raydium-swap/prepare
  • Authentication: Required
  • Description: Prepares a swap transaction by setting up necessary details and validations before submission.
  • Request Body:
  • sender (string): Wallet address(public key) of the sender
  • poolId (string): Liquidity pool ID of the token pair being swapped
  • mintFrom (string): Contract Address of the token that the sender has
  • mintTo (string): Contract Address of the token being swapped to
  • amountIn (string): The amount of mintFrom tokens to be swapped in minimal units
  • amountOut (string): The desired amount of mintTo tokens to receive in minimal units
  • feeAmount (string): The total fee amount in feeMintAddress tokens.
  • feeMintAddress (string): The mint address for the token in which the fee will be charged.
  • swapType (string, optional): Select the swap strategy;
    • EXACT_IN : fix the amount of mintFrom tokens so that the amount of mintTo tokens adjusts based on slippage
    • EXACT_OUT: fix the amount of mintTo tokens so that the amount of mintFrom tokens adjusts based on slippage
  • priority(Optional): Priority fees are dynamically optimised. You can optionally send a tip amount and other priority related parameters
    • priorityTipAmount (string): Boost transaction speed & conversions with tips. We recommend that you set the default to 2M for the optimal performance, and enable a UI for users to change it (see example). This amount is optimally sent to Jito pools to efficiently increase the rate of landing transactions
    • frontRunningProtection (optional, boolean): Enable front-running protection to increase chances of landing with Jito.
    • fastBestEffort (Optional, boolean): Attempt to process the transaction as quickly as possible.
  • useStakedRPCs (Optional, boolean): Utilise staked RPC nodes for better performance
  • Response:

serializedTx (string): A serialized transaction prepared for submission.

token (string):

Sample Request:

{
  "sender": "FdzNYdgdWPKDWmwFwdjRNh48sEh6RkE7RPXvrbjMJszm",
  "poolId": "FRhB8L7Y9Qq41qZXYLtC2nw8An1RJfLLxRF2x9RwLLMo",
  "mintFrom": "So11111111111111111111111111111111111111112",
  "mintTo": "7GCihgDB8fe6KNjn2MYtkzZcRjQy3t9GHdC8uHYmW2hr",
  "amountIn": "1000000",
  "amountOut": "521901480",
  "feeAmount": "0",
  "feeMintAddress": "11111111111111111111111111111111",
  "swapType": "EXACT_IN",
  "priority": {
    "priorityTipAmount": "2000000",
    "frontRunningProtection": false
  }
}

Sample Response:

{
    "serializedTx": "AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQAJGNl9ZW8SJNIbmMgnCO1IEqGI0kjnl//nskkffYhHKfxGqRdkCqM+DPwbpCNRnQgmtoq0oCIdGj8uHyYIU6Z9LFHsxgD6ywZ22caoxUN2/0I4Msq4TIVyHcBLBygFaKIs2NZW+2CkwQH0/mbhheae1fZssFsdLiDC/WLCYoQ6GEA6MyhLEMzhz9JVKn7Aq8alUpf6K+fXMVs8cX6V7m43+vF9Q/EKt1IqEkXBSqD+2F5frcKpc9kvviRrLWyShJnomTPnAKwzjt6c5KgIBRRr3ZE+gNb8v84vex9DmyoQ1sR5C40Fy7WuZGLIodWscvJ7s1KJBr/vwjoMFfAnox2PZA53OmFAmcrvLU6U1c4IuONz9HHYueKXPLHa1Qy0hMFM+K1zOOlJ8xQlRVlEzYfddMRgFdR8EcxsuM+3VyWddf/NSL6jjmJT9/SUMwzICHSr9NyX7yxaCKxg0m1F5Dw20o/yNJO/Ot7U4O3q0JQdzT4Spf1f1oZqENdnb9ByzpzNAMPz9pPTlkMDgWOzlycw12HyF869tygZFYxRxQ6pyYe+uIYdEgIuik8KQEzGiex/+l3iV3RgmZeZVhXbn9bjhKL15UFr0nRKiCSRFpHkgexInSYIpBjN5W39YLKdFWzBVQMGRm/lIRcy/+ytunLDm+e8jOW7xfcSayxDmzpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG3fbh12Whk9nL4UbO63msHLSF7V9bN5E6jPWFfv8AqQabiFf+q4GE+2h/Y0YYwDXaxDncGus7VZig8AAAAAABBqfVFxksXFEhjMlMPUrxf1ja7gibof1E49vZigAAAACMlyWPTiSJ8bs9ECkUjg2DC1oTmdr/EIQEjnvY2+n4WV0LFZr/y8zxZcCbwvXUuvtKpjRa95O5syItqkApOpUNS9lJxDYCwz8gd5DtFqNSTKG5l1zxIaKpDP/sffi2is1wJKUvUtTWYO3euNJ/k5ovFUmxmTGJjOBB/S5nVyEftmJ5Eda9iEU1YZAgXVoZ5JDny5vfglhlE5PMJc6JoKcfCA8ABQKghgEADwAJA6CGAQAAAAAAEAIAAXwDAAAA2X1lbxIk0huYyCcI7UgSoYjSSOeX/+eySR99iEcp/EYgAAAAAAAAAEFvVXoxbTJUalNGM2Zqcm5zTHBQWloydXg4QzVVQTRnMGAuAAAAAAClAAAAAAAAAAbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCpEQQBEgATAQEUBgACABUQEQAWEhEDGAQFBgcZCAkKCwwNFwECABEJQEIPAAAAAAColRsfAAAAABEDAQAAAQkQAgAODAIAAACAhB4AAAAAAAFD3CiQeGRTwrhlOjhVgnHBwVfolxhcM92rTS23wbEvcgACCAk=",
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0eEhhc2giOiJ0T2ZYYXQ1T1hYSWNiTHZMVWozMTlyV21rWEk9Iiwic2Vzc2lvbkhhc2giOiJ1VzdPTWVXRDlGUjN6SUg4S2I4ZSIsInR4SWQiOiJhZGQtbGF0ZXIiLCJ0eFR5cGUiOiJTV0FQIiwiaGVsaW9GZWUiOiIwIiwicGFydG5lckZlZSI6IjAiLCJmZWVNaW50QWRkcmVzcyI6IjExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExIiwic3VibWl0UHJpb3JpdHkiOnsidGlwIjoyMDAwMDAwLCJmcm9udFJ1bm5pbmdQcm90ZWN0aW9uIjpmYWxzZSwiaml0b1RpcCI6MTAwMDAwMCwicm91dGVyIjoiTU9PTkJPT1NUIn0sInVuaXhUaW1lc3RhbXAiOjE3NDA3NTY1MzY0NjYsImlhdCI6MTc0MDc1NjUzNiwiZXhwIjoxNzQwNzU2NzE2fQ.AK93_XqkwuxmhvNXCZ22psscubC1lRxd6GKTgvd8bZI"
}

3. Submit Raydium Swap

Endpoint: POST /raydium-swap/submit

Authentication: Required

Description: Submits a swap transaction to the blockchain using the provided signed transaction data.

Request Body:

signedTransaction (string): The signed transaction data returned from prepare endpoint and which is required to execute the swap

token (string): received from the prepare endpoint

Response:

  • status:
    • “SUCCESS”
    • “PENDING”
    • “FAILED”
  • transactionSignature:

Raydium (CLMM Pools)

  • Everything remains same as V4(above) except for the endpoints
  • Price endpoint: https://api.mintlp.io/v1/raydium-swap/clmm/price
  • Prepare endpoint: https://api.mintlp.io/v1/raydium-swap/clmm/prepare
  • Submit endpoint: https://api.mintlp.io/v1/raydium-swap/clmm/submit

Sample Request:

{
  "signedTransaction": "AYG6+P9piG/qqa1cm0LgftBm1U6U5T50S4GeERnr4m6yKaH8kt6L6mAEZf/O/RzYdPHpk180aFHBfPX3hBC64AiAAQAJGNl9ZW8SJNIbmMgnCO1IEqGI0kjnl//nskkffYhHKfxGqRdkCqM+DPwbpCNRnQgmtoq0oCIdGj8uHyYIU6Z9LFHsxgD6ywZ22caoxUN2/0I4Msq4TIVyHcBLBygFaKIs2NZW+2CkwQH0/mbhheae1fZssFsdLiDC/WLCYoQ6GEA6MyhLEMzhz9JVKn7Aq8alUpf6K+fXMVs8cX6V7m43+vF9Q/EKt1IqEkXBSqD+2F5frcKpc9kvviRrLWyShJnomTPnAKwzjt6c5KgIBRRr3ZE+gNb8v84vex9DmyoQ1sR5C40Fy7WuZGLIodWscvJ7s1KJBr/vwjoMFfAnox2PZA53OmFAmcrvLU6U1c4IuONz9HHYueKXPLHa1Qy0hMFM+K1zOOlJ8xQlRVlEzYfddMRgFdR8EcxsuM+3VyWddf/NSL6jjmJT9/SUMwzICHSr9NyX7yxaCKxg0m1F5Dw20o/yNJO/Ot7U4O3q0JQdzT4Spf1f1oZqENdnb9ByzpzNAMPz9pPTlkMDgWOzlycw12HyF869tygZFYxRxQ6pyYe+uIYdEgIuik8KQEzGiex/+l3iV3RgmZeZVhXbn9bjhKL15UFr0nRKiCSRFpHkgexInSYIpBjN5W39YLKdFWzBVQMGRm/lIRcy/+ytunLDm+e8jOW7xfcSayxDmzpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG3fbh12Whk9nL4UbO63msHLSF7V9bN5E6jPWFfv8AqQabiFf+q4GE+2h/Y0YYwDXaxDncGus7VZig8AAAAAABBqfVFxksXFEhjMlMPUrxf1ja7gibof1E49vZigAAAACMlyWPTiSJ8bs9ECkUjg2DC1oTmdr/EIQEjnvY2+n4WV0LFZr/y8zxZcCbwvXUuvtKpjRa95O5syItqkApOpUNS9lJxDYCwz8gd5DtFqNSTKG5l1zxIaKpDP/sffi2is1wJKUvUtTWYO3euNJ/k5ovFUmxmTGJjOBB/S5nVyEftmJ5Eda9iEU1YZAgXVoZ5JDny5vfglhlE5PMJc6JoKcfCA8ABQKghgEADwAJA6CGAQAAAAAAEAIAAXwDAAAA2X1lbxIk0huYyCcI7UgSoYjSSOeX/+eySR99iEcp/EYgAAAAAAAAAEFvVXoxbTJUalNGM2Zqcm5zTHBQWloydXg4QzVVQTRnMGAuAAAAAAClAAAAAAAAAAbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCpEQQBEgATAQEUBgACABUQEQAWEhEDGAQFBgcZCAkKCwwNFwECABEJQEIPAAAAAAColRsfAAAAABEDAQAAAQkQAgAODAIAAACAhB4AAAAAAAFD3CiQeGRTwrhlOjhVgnHBwVfolxhcM92rTS23wbEvcgACCAk=",
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0eEhhc2giOiJ0T2ZYYXQ1T1hYSWNiTHZMVWozMTlyV21rWEk9Iiwic2Vzc2lvbkhhc2giOiJ1VzdPTWVXRDlGUjN6SUg4S2I4ZSIsInR4SWQiOiJhZGQtbGF0ZXIiLCJ0eFR5cGUiOiJTV0FQIiwiaGVsaW9GZWUiOiIwIiwicGFydG5lckZlZSI6IjAiLCJmZWVNaW50QWRkcmVzcyI6IjExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExIiwic3VibWl0UHJpb3JpdHkiOnsidGlwIjoyMDAwMDAwLCJmcm9udFJ1bm5pbmdQcm90ZWN0aW9uIjpmYWxzZSwiaml0b1RpcCI6MTAwMDAwMCwicm91dGVyIjoiTU9PTkJPT1NUIn0sInVuaXhUaW1lc3RhbXAiOjE3NDA3NTY1MzY0NjYsImlhdCI6MTc0MDc1NjUzNiwiZXhwIjoxNzQwNzU2NzE2fQ.AK93_XqkwuxmhvNXCZ22psscubC1lRxd6GKTgvd8bZI"
}

Sample Response:

{
    "status": "FAILED",
    "transactionSignature": "2VFtKzjdVWYY8ovpTPxomwsgFFe8M4aMPvV82KSfYkrgHomryp855m11fwFu2bZaumPR2QSgmzrAGM3V5TEHB1Sp"
}

Meteora (DYN Pools)

Base URL (Mainnet): https://api.btftx.io/v1

Authorisation: Request your Bearer Token from the Helio team

1. Meteora Swap Price

  • Endpoint: POST /meteora-swap/price
  • Authentication: Required
  • Description: Retrieves the current price for a swap transaction based on the specified pool and token amounts.
  • Request Body:
    • poolId (string): Liquidity pool ID of the token pair being swapped
    • mintFrom (string): Contract Address of the token that the sender has
    • mintTo (string): Contract Address of the token being swapped to
    • amountIn (BigInt as string): Amount of mintFrom tokens to be swapped in minimal units
    • slippageBps(Number): slippage BPS (10000 is 100%)
      • Max 10000
      • Min 0
  • Response: (string) Indicates the estimated price, such as the expected amount of mintTo tokens

Sample Request:

{
  "amountIn": "100000000",
  "mintFrom": "So11111111111111111111111111111111111111112",
  "mintTo": "CNyMaRR4krm1yAxfCvPXevNMArZZZk7sRqKwX68uCeJk",
  "poolId": "Gc9yHrCpcUMXCw1YhAVTcrUb6ZGbCv7ns363FZpDTbHW",
  "slippageBps": 100
}

Sample Response:

"3059889328560"

2. Prepare Meteora Swap

  • Endpoint: POST /meteora-swap/prepare
  • **Authentication: **Required
  • Description: Prepares a swap transaction by setting up necessary details and validations before submission.
  • Request Body:
    • sender (string): Wallet address(public key) of the sender
    • poolId (string): Liquidity pool ID of the token pair being swapped
    • mintFrom (string): Contract Address of the token that the sender has
    • mintTo (string): Contract Address of the token being swapped to
    • amountIn (string): The amount of mintFrom tokens to be swapped in minimal units
    • amountOut (string): The desired amount of mintTo tokens to receive in minimal units
    • feeAmount (string): The total fee amount in feeMintAddress tokens.
    • feeMintAddress (string): The mint address for the token in which the fee will be charged.
    • priority(Optional): Priority fees are dynamically optimised. You can optionally send a tip amount and other priority related parameters
      • priorityTipAmount (string): Boost transaction speed & conversions with tips. We recommend that you set the default to 2M for the optimal performance, and enable a UI for users to change it (see example). This amount is optimally sent to Jito pools to efficiently increase the rate of landing transactions
      • frontRunningProtection (optional, boolean): Enable front-running protection to increase the chances of landing with Jito
      • fastBestEffort (Optional, boolean): Attempt to process the transaction as quickly as possible.
      • useStakedRPCs (Optional, boolean): Utilize staked RPC nodes for better performance
  • Response:
    • serializedTx (string): A serialized transaction prepared for submission.
    • token (string):

Sample Request:

{
  "sender": "FdzNYdgdWPKDWmwFwdjRNh48sEh6RkE7RPXvrbjMJszm",
  "poolId": "Gc9yHrCpcUMXCw1YhAVTcrUb6ZGbCv7ns363FZpDTbHW",
  "mintFrom": "So11111111111111111111111111111111111111112",
  "mintTo": "CNyMaRR4krm1yAxfCvPXevNMArZZZk7sRqKwX68uCeJk",
  "amountIn": "100000000",
  "feeAmount": "100000",
  "feeMintAddress": "So11111111111111111111111111111111111111112",
  "amountOut": "3059889342657",
  "priority": {
    "priorityTipAmount": "2000000",
    "frontRunningProtection": false
  }
}

Sample Response:

{
    "serializedTx": "AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQAHF9l9ZW8SJNIbmMgnCO1IEqGI0kjnl//nskkffYhHKfxGoPkjYjZWG9iBx8OtU2fpptWAi0ypz7OyDafqyIypEg7JlIBfrnc2wO5bM5oR0rn+5u4Gq+w7p6jStxLJIvnDoOfgxnS6OakrrtFguwUqtsLBbpPdvd1jswjqhutmi0a103QhdricXhTJa3SJmEIfOBAeCeXFkzGxaLYlzScVuyYv6cFT3i+zHc83PVJcImKrOuzGwrT55iU2nTIP/jctNfYXzUUQr3DHYZIEmfj+l9WyMRpp4ZoXaDyiqqSL7Jp9KrKMKufzL0G4tIvRw/1bLu6j6bzrclF6nyJt7YSVFLHYThKQwZjniLoOEU8DghRnlgjaKPzSChYx78OT+79pKljBgSeNf85FqHlZctVPAuFPpA/Xr7w86jap6O5s79nq0H9G2Tc0tmZbInVvXV1qriAy0I3h4iWQY18/H1BE7C1YGD12XFCXvHg69lGvkUNj3gu2mvptSLsZqkPPNR6NpCiFLYUDrHnBeGhObkxtMnl+ttqeGiSPgTKtA4fWsLi79eVBa9J0SogkkRaR5IHsSJ0mCKQYzeVt/WCynRVswVVAEDXTWrtTEl2R6bMAPLi4v0ZWZb8BResLmfiD0dDAGY0LjqD0Gt3mbJMzEG/zDcP8bx9dfKhx37dvGh20ofDGjJclj04kifG7PRApFI4NgwtaE5na/xCEBI572Nvp+FkGm4hX/quBhPtof2NGGMA12sQ53BrrO1WYoPAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKmpEXlFSg3a16aw9DO+B/QdyVbxXmGE1fDI8M+Znfus0cz4AtTMzITX+yG19ztJ2BoWxbTIjuMjlOHJHTWIzECAD7/ohG1oXL3GLMp+BMfo9o3MMTqzEnfi4BEqLsDgUuVl7qcZNT7dopp+PtEEATSrID5snAlHwoO07IutVAtWbAgQBgABABESEwAQBgACABQSEwASAgABDAIAAAAA4fUFAAAAABMBAQERFQ8DAQIEBQYHCAkKCwwAFhMY+MaekeF1h8gA4fUFAAAAAMEInm/IAgAAEgIADQwCAAAAgIQeAAAAAAASAgAODAIAAACIEwAAAAAAABICAA8MAgAAABhzAQAAAAAAAA==",
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0eEhhc2giOiJPaDZRU2hXbE41d2g5VWRuZEZCb1ByelN1WE09Iiwic2Vzc2lvbkhhc2giOiJUbGk2ZnR0V0FBbFlKdnEzREtPZSIsInR4SWQiOiJhZGQtbGF0ZXIiLCJ0eFR5cGUiOiJTV0FQIiwiaGVsaW9GZWUiOiI1MDAwIiwicGFydG5lckZlZSI6Ijk1MDAwIiwiZmVlTWludEFkZHJlc3MiOiJTbzExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEyIiwic3VibWl0UHJpb3JpdHkiOnsidGlwIjoyMDAwMDAwLCJmcm9udFJ1bm5pbmdQcm90ZWN0aW9uIjpmYWxzZSwiaml0b1RpcCI6MTAwMDAwMCwicm91dGVyIjoiTU9PTkJPT1NUIn0sInVuaXhUaW1lc3RhbXAiOjE3NDA3NTcyODcxMDgsImlhdCI6MTc0MDc1NzI4NywiZXhwIjoxNzQwNzU3NDY3fQ.WSaExFtSwhD7ZnHCpRtsQbZ0fHtsgWO7ld0bQ85du5U"
}

3. Submit Meteora Swap

  • Endpoint: POST /meteora-swap/submit
  • Authentication: Required
  • Description: Submits a swap transaction to the blockchain using the provided signed transaction data.
  • Request Body:
    • signedTransaction (string): The signed transaction data required to execute the swap.
    • token (string): token from the prepare endpoint response
  • Response:
    • status:
    • "SUCCESS"
    • "PENDING"
    • "FAILED"
    • transactionSignature:

Sample Request:

{
  "signedTransaction": "AbTIcfj9+ub+6+gvfHo/6ofNxJ8tOR6NQmImQmMY+NMVraXqE1DoL+innRfzLt+TSR0etQQ3YWXzVKSs8PW+wwWAAQAIGNl9ZW8SJNIbmMgnCO1IEqGI0kjnl//nskkffYhHKfxGoPkjYjZWG9iBx8OtU2fpptWAi0ypz7OyDafqyIypEg7JlIBfrnc2wO5bM5oR0rn+5u4Gq+w7p6jStxLJIvnDoOfgxnS6OakrrtFguwUqtsLBbpPdvd1jswjqhutmi0a103QhdricXhTJa3SJmEIfOBAeCeXFkzGxaLYlzScVuyYv6cFT3i+zHc83PVJcImKrOuzGwrT55iU2nTIP/jctNfYXzUUQr3DHYZIEmfj+l9WyMRpp4ZoXaDyiqqSL7Jp9KrKMKufzL0G4tIvRw/1bLu6j6bzrclF6nyJt7YSVFLHYThKQwZjniLoOEU8DghRnlgjaKPzSChYx78OT+79pKljBgSeNf85FqHlZctVPAuFPpA/Xr7w86jap6O5s79nq0H9G2Tc0tmZbInVvXV1qriAy0I3h4iWQY18/H1BE7C1YGD12XFCXvHg69lGvkUNj3gu2mvptSLsZqkPPNR6NpCiFLYUDrHnBeGhObkxtMnl+ttqeGiSPgTKtA4fWsLi79eVBa9J0SogkkRaR5IHsSJ0mCKQYzeVt/WCynRVswVVAEDXTWrtTEl2R6bMAPLi4v0ZWZb8BResLmfiD0dDAGY0LjqD0Gt3mbJMzEG/zDcP8bx9dfKhx37dvGh20ofDGAwZGb+UhFzL/7K26csOb57yM5bvF9xJrLEObOkAAAACMlyWPTiSJ8bs9ECkUjg2DC1oTmdr/EIQEjnvY2+n4WQabiFf+q4GE+2h/Y0YYwDXaxDncGus7VZig8AAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG3fbh12Whk9nL4UbO63msHLSF7V9bN5E6jPWFfv8AqakReUVKDdrXprD0M74H9B3JVvFeYYTV8Mjwz5md+6zRzPgC1MzMhNf7IbX3O0nYGhbFtMiO4yOU4ckdNYjMQIAPv+iEbWhcvcYsyn4Ex+j2jcwxOrMSd+LgESouwOBS5dLBUB7r1T1WMnfv80LJhI2uBn2w7NFQxFCQ/mF89NXQChAACQOghgEAAAAAABAABQLAXBUAEQYAAQASExQAEQYAAgAVExQAEwIAAQwCAAAAoIYBAAAAAAAUAQEBERYPAwECBAUGBwgJCgsMABcUGPjGnpHhdYfIoIYBAAAAAADfFTG4AAAAABMCAA0MAgAAANAHAAAAAAAAEwIADgwCAAAAiBMAAAAAAAATAgAPDAIAAAAYcwEAAAAAAAA=",
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0eEhhc2giOiJQT3hSZytNKytxaGhFWXVUTngvQ001dEhsdmc9Iiwic2Vzc2lvbkhhc2giOiI3cmtFeDdwbFNzY0R3eldURGZiVSIsInR4SWQiOiJhZGQtbGF0ZXIiLCJ0eFR5cGUiOiJTV0FQIiwiaGVsaW9GZWUiOiI1MDAwIiwicGFydG5lckZlZSI6Ijk1MDAwIiwiZmVlTWludEFkZHJlc3MiOiJTbzExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEyIiwic3VibWl0UHJpb3JpdHkiOnsidGlwIjoyMDAwLCJmcm9udFJ1bm5pbmdQcm90ZWN0aW9uIjpmYWxzZSwiaml0b1RpcCI6MTAwMDAwMCwicm91dGVyIjoiTU9PTkJPT1NUIn0sInVuaXhUaW1lc3RhbXAiOjE3NDA3NTc0NTMwNjUsImlhdCI6MTc0MDc1NzQ1MywiZXhwIjoxNzQwNzU3NjMzfQ.gElatl0VgvKmArsrQ8FrdApXWjWyIHrag67c82q2Kbs"
}

Sample Response:

{
    "status": "SUCCESS",
    "transactionSignature": "4cdwrs4WrzDxZr5cWvwEy5AxAjRLGwAqdpC8e7uNaNTLbWbA28Do3L3hwdVyvchMih6QydYCd2wx2NB8sX8YRdnt"
}

Meteora (DLMM Pools)

Everything remains same as DYN but the endpoints

Base

Base URL (Mainnet): https://api.btftx.io/v1

Authorisation: Request your Bearer Token from the Helio team

1. Get Uniswap Price

  • Endpoint: /uniswap/price/base
  • Authentication: Required
  • Description: Retrieves the price information for a token swap on Uniswap.
  • Request Body:
    • mintFrom (string): Contract address of the token to swap from
    • mintTo (string): Contract address of the token to swap to
    • amount (string): The amount of mintFrom tokens to be swapped
    • poolId (string, optional): Specific Uniswap pool ID to use for the swap

Sample Request:

{
  "amount": "1000000000000000",
  "mintFrom": "0x0000000000000000000000000000000000000000",
  "mintTo": "0x1F1c695f6b4A3F8B05f2492ceF9474Afb6d6Ad69",
  "poolId": "0x7Dc3662f4C2C41c5752652e8B417a9024c2B1f63",
  "swapType": "EXACT_IN"
}

Sample Response:

"170715047628202137"

2. Prepare Uniswap Swap

  • Endpoint: POST /uniswap/prepare/base
  • Authentication: Required
  • Description: Prepares a swap transaction by setting up necessary details and validations before submission.
  • Request Body:
    • sender (string): Wallet address of the sender
    • poolId (string): Liquidity pool ID for the token pair
    • mintFrom (string): Contract address of the token to swap from
    • mintTo (string): Contract address of the token to swap to
    • amountIn (string): The amount of mintFrom tokens to be swapped
    • amountOut (string): The expected amount of mintTo tokens to receive
    • feeAmount (string): The total fee amount in feeMintAddress tokens
    • feeMintAddress (string): Contract address of the token in which fees will be charged
    • swapType (string, optional): Type of swap to perform
      • EXACT_IN: fix the amount of mintFrom tokens so that the amount of mintTo tokens adjusts based on slippage
      • EXACT_OUT: fix the amount of mintTo tokens so that the amount of mintFrom tokens adjusts based on slippage
  • Response:
    • serializedTx (string): A serialized transaction prepared for submission.
    • token (string):
    • contractAddress (string): contract which will execute trades and is required on sell to approve funds

Sample Request:

{
  "sender": "0xC3da585b27af55e3BeFBc72CFd13DF7022fB5002",
  "poolId": "0x7Dc3662f4C2C41c5752652e8B417a9024c2B1f63",
  "mintFrom": "0x0000000000000000000000000000000000000000",
  "mintTo": "0x1F1c695f6b4A3F8B05f2492ceF9474Afb6d6Ad69",
  "amountIn": "1000000000000000",
  "amountOut": "145107790483971808",
  "feeAmount": "100000000000000",
  "feeMintAddress": "0x0000000000000000000000000000000000000000",
  "swapType": "EXACT_IN"
}

Sample Response:

{
    "serializedTx": "0x01f87082210580834de5b88307a12094d28a68072a19202ce386136661fb4ff6a111f39c87038d7ea4c68000b844b79c48e50000000000000000000000001f1c695f6b4a3f8b05f2492cef9474afb6d6ad69000000000000000000000000000000000000000000000000020386c441f05ee0c0",
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0eEhhc2giOiI1OCtWV0FEYmFPNmw4akc5eG9tNDZBUDJxRzA9Iiwic2Vzc2lvbkhhc2giOiJHb0dKT2hWUzZjeXBURVVXODVqdSIsInR4SWQiOiJhZGQtbGF0ZXIiLCJ0eFR5cGUiOiJTV0FQIiwiaGVsaW9GZWUiOiI1MDAwMDAwMDAwMDAwIiwicGFydG5lckZlZSI6Ijk1MDAwMDAwMDAwMDAwIiwiZmVlTWludEFkZHJlc3MiOiIweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsInVuaXhUaW1lc3RhbXAiOjE3NDA3NTk0OTQ4MzgsImlhdCI6MTc0MDc1OTQ5NCwiZXhwIjoxNzQwNzYwNjk0fQ.egZizblX_OH19DbEMAvrK0strgCGp07NKNMSTuqxBmo",
    "contractAddress": "0xD28a68072A19202ce386136661FB4Ff6A111F39c"
}

3. Confirm Uniswap Swap

  • Endpoint: POST /uniswap/confirm/base
  • Authentication: Required
  • Description: Confirms and submits the prepared swap transaction to the network.
  • Request Body:
    • signedTransaction (string): The signed transaction data ready for submission
    • token (string): Authentication token received from the prepare endpoint
  • Response
    • status (string):
      • “SUCCESS”
      • “PENDING”
      • “FAILED”
    • transactionSignature (string):

Sample Request:

{
  "signedTransaction": "{\"_type\":\"TransactionResponse\",\"accessList\":null,\"blockNumber\":null,\"blockHash\":null,\"blobVersionedHashes\":null,\"chainId\":null,\"data\":\"0xb79c48e50000000000000000000000001f1c695f6b4a3f8b05f2492cef9474afb6d6ad69000000000000000000000000000000000000000000000000020386c441f05ee0\",\"from\":\"0xC3da585b27af55e3BeFBc72CFd13DF7022fB5002\",\"gasLimit\":\"500000\",\"gasPrice\":\"5105080\",\"hash\":\"0xf98f3c84e362701c55f753ae66e8aec645f588a2f50faa8bfa50fe435945c7dd\",\"maxFeePerGas\":\"5105080\",\"maxPriorityFeePerGas\":\"5105080\",\"maxFeePerBlobGas\":null,\"nonce\":81,\"signature\":{\"_type\":\"signature\",\"networkV\":null,\"r\":\"0x7afce8796a911fa98cc2082a1ba795ec81ed7975b80bb34ed4d2a2b0f23f4362\",\"s\":\"0x0f78996257f927b15fac339d46ccaf26719e7ce9767cf4239991f6b86defcee5\",\"v\":27},\"to\":\"0xD28a68072A19202ce386136661FB4Ff6A111F39c\",\"type\":2,\"value\":\"1000000000000000\"}",
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0eEhhc2giOiI1OCtWV0FEYmFPNmw4akc5eG9tNDZBUDJxRzA9Iiwic2Vzc2lvbkhhc2giOiJHb0dKT2hWUzZjeXBURVVXODVqdSIsInR4SWQiOiJhZGQtbGF0ZXIiLCJ0eFR5cGUiOiJTV0FQIiwiaGVsaW9GZWUiOiI1MDAwMDAwMDAwMDAwIiwicGFydG5lckZlZSI6Ijk1MDAwMDAwMDAwMDAwIiwiZmVlTWludEFkZHJlc3MiOiIweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsInVuaXhUaW1lc3RhbXAiOjE3NDA3NTk0OTQ4MzgsImlhdCI6MTc0MDc1OTQ5NCwiZXhwIjoxNzQwNzYwNjk0fQ.egZizblX_OH19DbEMAvrK0strgCGp07NKNMSTuqxBmo"
}

Sample Response:

{
    "status": "SUCCESS",
    "transactionSignature": "0xf98f3c84e362701c55f753ae66e8aec645f588a2f50faa8bfa50fe435945c7dd"
}

Ethereum

All structures are the same as those of Base; only the names of the endpoints are different.

Base URL (Mainnet): https://api.btftx.io/v1

1. Get Uniswap Price

  • Endpoint: POST /uniswap/price/eth

Prepare Uniswap Price

  • Endpoint: POST /uniswap/prepare/eth

Confirm Uniswap Swap

  • Endpoint: Post /uniswap/confirm/eth

Pump.fun - Launchpad

Base URL (Mainnet): https://api.btftx.io/v1

1. Get Price Quote

  • Endpoint: POST /pumpfun-swap/price
  • Authentication: Required
  • Description: Retrieves a price quote for a token swap.
  • Request Body:
    • mintFrom (string): Token mint address to swap from
    • mintTo (string): Token mint address to swap to
    • minimalUnitsTokenAmount (string): Amount of mintFrom tokens in minimal units to get quote for
  • Response:
    • Returns a string representing the quoted amount in minimal units (e.g., "123456790")

Sample Request:

{
"minimalUnitsTokenAmount":"1000000",
"mintTo":"4em1AYxoDeehCBbgCkBqY1PDvk7Ly1dsR1v6bgmapump",
"mintFrom":"So11111111111111111111111111111111111111112"
}

Sample Response:

{
"price":"7375643054"
}

2. Prepare Swap Transaction

  • Endpoint: POST /pumpfun-swap/prepare
  • Authentication: Required
  • Description: Prepares a swap transaction for signing.
  • Request Body:
    • sender (string): Address of the transaction sender
    • mintFrom (string): Token mint address to swap from
    • mintTo (string): Token mint address to swap to
    • amountIn (string): Amount of input token in minimal units
    • amountOut (string): Expected output amount in minimal units
    • feeAmount (string): Fee amount in minimal units
    • feeMintAddress (string): Address of the fee token mint
    • priority (object, optional): Priority fees are dynamically optimised. You can optionally send a tip amount and other priority related parameters
      • priorityTipAmount (string): Boost transaction speed & conversions with tips. We recommend that you set the default to 2M for the optimal performance, and enable a UI for users to change it (see example). This amount is optimally sent to Jito pools to efficiently increase the rate of landing transactions
      • frontRunningProtection (optional, boolean): Enable front-running protection to increase the chances of landing with Jito
  • Response:
    • serializedTx (string): Serialised transaction ready for signing
    • token (string, optional): Token for transaction tracking

Sample Request:

{
  "sender": "FdzNYdgdWPKDWmwFwdjRNh48sEh6RkE7RPXvrbjMJszm",
  "mintFrom": "So11111111111111111111111111111111111111112",
  "mintTo": "4em1AYxoDeehCBbgCkBqY1PDvk7Ly1dsR1v6bgmapump",
  "amountIn": "1000000",
  "amountOut": "7375643054",
  "slippageBps": 0,
  "feeAmount": "100",
  "feeMintAddress": "So11111111111111111111111111111111111111112",
  "priority": {
    "priorityTipAmount": "200000",
    "frontRunningProtection": true
  }
}

Sample Response:

{
    "serializedTx": "AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQAJEdl9ZW8SJNIbmMgnCO1IEqGI0kjnl//nskkffYhHKfxGKqhJpBdxAOHeGPci56iavzBxWYWrxDznjZPIKHnpmIytEeak/ClEpPqCUb74FUJuG/soxrZkZndgfGrZ9WamRqsDzYYoJ+qtqe6SW4kbBa5nGIhTfO1uQ6ji+ncJNZL/GM9vLzWWbCvffDw6FMwRspDMUmeqOI+s5V/DvkY7z2T15UFr0nRKiCSRFpHkgexInSYIpBjN5W39YLKdFWzBVUAQNdNau1MSXZHpswA8uLi/RlZlvwFF6wuZ+IPR0MAZjQuOoPQa3eZskzMQb/MNw/xvH118qHHft28aHbSh8MYDBkZv5SEXMv/srbpyw5vnvIzlu8X3EmssQ5s6QAAAAIyXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZNj9ODNxLrqxQXEM5m3KWvUeRk9p+9yhCcRwHFwM5aR8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCpAVbg9pNmWs9E2xVovxdbqlGJy5f10v87ZV0rtv1tGLA6hl5p7g9UgMq89mNX5NwvGNWNRcHqdIn7NyPZeTxypgan1RcZLFxRIYzJTD1K8X9Y2u4Im6H9ROPb2YoAAAAArPE26wH8HE6IPSPItYRKtZo39mrdV8XprDtT4FnTXGQVD+6iPwaL36smPDBarQbo9sxFUREhjb7aeAybIkbZyQYIAAUCoIYBAAkGAAEACgsMAA0MDgIKAwQBAAsMDxANGGYGPRIB2uvqrmGftwEAAABRaQ8AAAAAAAsCAAUMAgAAAEANAwAAAAAACwIABgwCAAAABQAAAAAAAAALAgAHDAIAAABfAAAAAAAAAAA=",
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0eEhhc2giOiIvRHpSek1qcTZQSlVsa2krMldjTWFwMmM0V0U9Iiwic2Vzc2lvbkhhc2giOiI5NW5PdkZHc0hpNTg5TkFJa09UNyIsInR4SWQiOiJhZGQtbGF0ZXIiLCJ0eFR5cGUiOiJTV0FQIiwiaGVsaW9GZWUiOiI1IiwicGFydG5lckZlZSI6Ijk1IiwiZmVlTWludEFkZHJlc3MiOiJTbzExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEyIiwic3VibWl0UHJpb3JpdHkiOnsidGlwIjoyMDAwMDAsImZyb250UnVubmluZ1Byb3RlY3Rpb24iOnRydWUsImppdG9UaXAiOjEwMDAwMDAsInJvdXRlciI6Ik1PT05CT09TVCJ9LCJ1bml4VGltZXN0YW1wIjoxNzQwNzYwNjAwNjExLCJpYXQiOjE3NDA3NjA2MDAsImV4cCI6MTc0MDc2MDc4MH0.443oPOMmk-1bl196vSLWAfKERHn3Yy0KpP8RB9hjkUo"
}

3. Submit Swap Transaction

  • Endpoint: POST /pumpfun-swap/submit
  • Authentication: Required
  • Description: Submits a signed swap transaction to the network.
  • Request Body:
    • signedTransaction (string): The signed transaction data
    • token (string): Transaction tracking token from prepare step
  • Response:
    • transactionSignature (string): Signature of the submitted transaction
    • status (string): Transaction status

Swap.pump.fun (Dex by Pump.fun)

Base URL (Mainnet): https://api.btftx.io/v1

1. Get Price Quote

  • Endpoint: POST /pumpfun-swap/price
  • Authentication: Required
  • Description: Retrieves a price quote for a token swap.
  • URL: https://api.btftx.io/v1/pumpfun-swap/price
  • Request Body:
  • minimalUnitsTokenAmount (string): Amount of mintFrom tokens in minimal units to get quote for
  • mintFrom (string): Token mint address to swap from
  • mintTo (string): Token mint address to swap to
  • Response:
    • price (string): The quoted amount in minimal units

Sample Request:

{
  "minimalUnitsTokenAmount": "1000000",
  "mintFrom": "So11111111111111111111111111111111111111112",
  "mintTo": "4em1AYxoDeehCBbgCkBqY1PDvk7Ly1dsR1v6bgmapump"
}

Sample Response:

{
  "price": "7375643054"
}

2. Prepare Swap Transaction

  • Endpoint: POST /pumpfun-swap/prepare
  • Authentication: Required
  • Description: Prepares a swap transaction for signing.
  • URL: https://api.btftx.io/v1/pumpfun-swap/prepare
  • Request Body:
    • sender (string): Address of the transaction sender
    • mintFrom (string): Token mint address to swap from
    • mintTo (string): Token mint address to swap to
    • amountIn (string): Amount of input token in minimal units
    • amountOut (string): Expected output amount in minimal units
    • slippageBps (number): Slippage tolerance in basis points (optional)
    • feeAmount (string): Fee amount in minimal units
    • feeMintAddress (string): Address of the fee token mint
    • priority (object): Optional priority settings
      • priorityTipAmount (string): Boost transaction speed & conversions with tips. We recommend that you set the default to 2M for the optimal performance, and enable a UI for users to change it (see example). This amount is optimally sent to Jito pools to efficiently increase the rate of landing transactions
      • frontRunningProtection (boolean): Enable front-running protection to increase the chances of landing with Jito
  • Response:
    • serializedTx (string): Serialized transaction ready for signing
    • token (string): Token for transaction tracking

Sample Request:

{
  "sender": "FdzNYdgdWPKDWmwFwdjRNh48sEh6RkE7RPXvrbjMJszm",
  "mintFrom": "So11111111111111111111111111111111111111112",
  "mintTo": "4em1AYxoDeehCBbgCkBqY1PDvk7Ly1dsR1v6bgmapump",
  "amountIn": "1000000",
  "amountOut": "7375643054",
  "slippageBps": 0,
  "feeAmount": "100",
  "feeMintAddress": "So11111111111111111111111111111111111111112",
  "priority": {
    "priorityTipAmount": "200000",
    "frontRunningProtection": true
  }
}

Sample Response:

{
  "serializedTx": "AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQAJEdl9ZW8SJNIbmMgnCO1IEqGI0kjnl//nskkffYhHKfxGKqhJpBdxAOHeGPci56iavzBxWYWrxDznjZPIKHnpmIytEeak/ClEpPqCUb74FUJuG/soxrZkZndgfGrZ9WamRqsDzYYoJ+qtqe6SW4kbBa5nGIhTfO1uQ6ji+ncJNZL/GM9vLzWWbCvffDw6FMwRspDMUmeqOI+s5V/DvkY7z2T15UFr0nRKiCSRFpHkgexInSYIpBjN5W39YLKdFWzBVUAQNdNau1MSXZHpswA8uLi/RlZlvwFF6wuZ+IPR0MAZjQuOoPQa3eZskzMQb/MNw/xvH118qHHft28aHbSh8MYDBkZv5SEXMv/srbpyw5vnvIzlu8X3EmssQ5s6QAAAAIyXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZNj9ODNxLrqxQXEM5m3KWvUeRk9p+9yhCcRwHFwM5aR8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCpAVbg9pNmWs9E2xVovxdbqlGJy5f10v87ZV0rtv1tGLA6hl5p7g9UgMq89mNX5NwvGNWNRcHqdIn7NyPZeTxypgan1RcZLFxRIYzJTD1K8X9Y2u4Im6H9ROPb2YoAAAAArPE26wH8HE6IPSPItYRKtZo39mrdV8XprDtT4FnTXGQVD+6iPwaL36smPDBarQbo9sxFUREhjb7aeAybIkbZyQYIAAUCoIYBAAkGAAEACgsMAA0MDgIKAwQBAAsMDxANGGYGPRIB2uvqrmGftwEAAABRaQ8AAAAAAAsCAAUMAgAAAEANAwAAAAAACwIABgwCAAAABQAAAAAAAAALAgAHDAIAAABfAAAAAAAAAAA=",
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0eEhhc2giOiIvRHpSek1qcTZQSlVsa2krMldjTWFwMmM0V0U9Iiwic2Vzc2lvbkhhc2giOiI5NW5PdkZHc0hpNTg5TkFJa09UNyIsInR4SWQiOiJhZGQtbGF0ZXIiLCJ0eFR5cGUiOiJTV0FQIiwiaGVsaW9GZWUiOiI1IiwicGFydG5lckZlZSI6Ijk1IiwiZmVlTWludEFkZHJlc3MiOiJTbzExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEyIiwic3VibWl0UHJpb3JpdHkiOnsidGlwIjoyMDAwMDAsImZyb250UnVubmluZ1Byb3RlY3Rpb24iOnRydWUsImppdG9UaXAiOjEwMDAwMDAsInJvdXRlciI6Ik1PT05CT09TVCJ9LCJ1bml4VGltZXN0YW1wIjoxNzQwNzYwNjAwNjExLCJpYXQiOjE3NDA3NjA2MDAsImV4cCI6MTc0MDc2MDc4MH0.443oPOMmk-1bl196vSLWAfKERHn3Yy0KpP8RB9hjkUo"
}

3. Submit Swap Transaction

  • Endpoint: POST /pumpfun-swap/submit
  • Authentication: Required
  • Description: Submits a signed swap transaction to the network.
  • URL: https://api.btftx.io/v1/pumpfun-swap/submit
  • Request Body:
    • signedTransaction (string): The signed transaction data
    • token (string): Transaction tracking token from prepare step

Sample Request:

{
  "signedTransaction": "AXz5Db6eLwkoAPFptp2L3BpL5qq8uX1ng+A+3SZ/wpeg4Lzxysky1jKsl0NQR9UtNnuMZ6QchKBMHadHtSaDuQ6AAQALFNl9ZW8SJNIbmMgnCO1IEqGI0kjnl//nskkffYhHKfxGoPkjYjZWG9iBx8OtU2fpptWAi0ypz7OyDafqyIypEg5Vb3/4bnCuz/FpGN1wbhrfmHNG/sR7/QRiahXhcsovNonGk4jXP1ym2ZFSzyZ1nztfK6E2FTnssNjivlL8wO+l+pcEB3n8Rci/tJUvV/TgAuocuEm+SDJhQ3rQD7/8wxLUEXuWRjrqaw28gxoeB52B2nK9qoyy5sh+wlJKiK1aVfXlQWvSdEqIJJEWkeSB7EidJgikGM3lbf1gsp0VbMFVQBA101q7UxJdkemzADy4uL9GVmW/AUXrC5n4g9HQwBmNC46g9Brd5myTMxBv8w3D/G8fXXyocd+3bxodtKHwxgMGRm/lIRcy/+ytunLDm+e8jOW7xfcSayxDmzpAAAAAjJclj04kifG7PRApFI4NgwtaE5na/xCEBI572Nvp+FkGm4hX/quBhPtof2NGGMA12sQ53BrrO1WYoPAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKnMpe5BANWHMHXTe2d6bLGxlvV0m77GXKrOC98WQF9P/wwU3vyCXsZ2lCUIGLtlQGX0KY0xVtVxtNT4CQwY6ahjWMdaDWaNZr0NAUuOhZc9uwtDdtKariHb8X6S9vPfcfGJC6ZE/h9VqhnxHNLS7BTTIztuCkvq7vcraYWOIeFw1o0YGgyEn6k3pvNK3tMIHvlXAKrLDJuz2QmkuRR1J6Tr5UpwlSiDn2HAubhgeYkcE5IW5Hpxti+3O+xyFpRYdF5C1nYt5bnmMk4sy1XpWlMErmhjdF3qiPJlkSse5lFXDAsJAAkDoIYBAAAAAAAJAAUCQA0DAAoGAAEACwwNAQEMAgABDAIAAACAhB4AAAAAAA0BAQERCgYAAgAODA0BAQ8REAARDgsCAQMEEgUNDQwKEw8YZgY9EgHa6+pd/FkOAAAAAICEHgAAAAAADQMBAAABCQwCAAYMAgAAAECcAAAAAAAADAIABwwCAAAAiBMAAAAAAAAMAgAIDAIAAAAYcwEAAAAAAAA=",
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0eEhhc2giOiJCSUdQU2psM1hNbDZERkxnempXT3JCRzBJcEk9Iiwic2Vzc2lvbkhhc2giOiI2QUZMUXphS3N0N2RGRGZTZ2QzcyIsInR4SWQiOiJhZGQtbGF0ZXIiLCJ0eFR5cGUiOiJTV0FQIiwiaGVsaW9GZWUiOiI1MDAwIiwicGFydG5lckZlZSI6Ijk1MDAwIiwiZmVlTWludEFkZHJlc3MiOiJTbzExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEyIiwic3VibWl0UHJpb3JpdHkiOnsidGlwIjo0MDAwMCwiZnJvbnRSdW5uaW5nUHJvdGVjdGlvbiI6ZmFsc2UsImppdG9UaXAiOjQwMDAwLCJyb3V0ZXIiOiJNT09OQk9PU1QifSwidW5peFRpbWVzdGFtcCI6MTc0MjQ5MzIzODM4NCwiaWF0IjoxNzQyNDkzMjM4LCJleHAiOjE3NDI0OTM0MTh9.RWzT_YPeU7RFTb662QD5WPNFj-kP1sg8G5aej-lbdCg"
}

Sample Response:

{
  "status": "SUCCESS",
  "transactionSignature": "3VvKP1RauxwkCcxqdCHjwhMzuAn6Aqgmfam7o89YxL7d4bpjQhiVowsQGqQAL6EfuQsNxMC1DX37RR2uVeEPzcVb"
}