๐Ÿ“ˆTrading API

Integrate Solana(Raydium, Meteora, Pump.fun) & EVM(Uniswap, Eth) trading

Before Integration

Reach out to our team for :

  • Getting your authorization token and api keys

  • Configuring your fee wallet addresses

Raydium

Base Url (Devnet) : https://api.dev.mintlp.io/v1

Base Url (Mainnet) : https://api.mintlp.io/v1

Authorization : 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": "Ho89H2VPgESL3NB5rQWQZJJwhuDa3xSjNj44w2aCajZi",
  "mintFrom": "11111111111111111111111111111111",
  "mintTo": "8hroC4CCzUw8gfDXPzdYPKGrJxZb1wW3zv8VxKYwatJK",
  "amountIn": "1000000000000000000"  
}

Sample Response

"90862591.204047672"

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

    • priorityFee (number, optional): Priority fee for the transaction in micro lamports (10^-6). We recommend that you set the default prio fee to 2M for the optimal performance and enable a UI for users to change it. This priorityFee is sent to the Solana

    • priority(Optional): Object to set priority-related parameters.

      • priorityTipAmount (string) : Tip amount to prioritize the transaction (in lamports). This amount is optimally sent to jito pools by our services to efficiently increase the rate of landing transactions

      • frontRunningProtection (optional, boolean): Enable front-running protection.

      • 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": "ErrW8R3JdY8AjQ4ZdAR26CoBb5J2xwPmJFpSo7vEZqP2",
  "mintFrom": "BQPWPkjfXMz9jKdqXEnmTFwNVEtsaqDQm74FidPVUZUy",
  "mintTo": "So11111111111111111111111111111111111111112",
  "amountIn": "33550000000000",
  "amountOut": "15718",
  "feeAmount": "0",
  "feeMintAddress": "So11111111111111111111111111111111111111112",
  "swapType": "EXACT_IN",
  "priority": {
    "priorityTipAmount": "10000000",
    "frontRunningProtection": false
  }
}

Sample Response

{
    "serializedTx": "AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQAJGNl9ZW8SJNIbmMgnCO1IEqGI0kjnl//nskkffYhHKfxGf3X+8M4RNKtyiatL6HSofzb2d8ERd9RDNjzB2QT1vJzN7Vysi7EOAwwIlsvdJdQKAc3ViM8BO8CYlXCGJYVsLZLNS0xS71XM1X/iRxeYsbxvmmxs2oEBMYLKAlJe8k4QSdF7gyflVcDsPbxLOn4mGqiKPxaFvvDVNymflq3+mqe7ZBsJpLZiiRnV2O/rwDzaiNRlJsTlfXHRfcZIUhcaJQJH2CNbufp6h3p556Noj/zyYltdRwZLudptLZORAJUVOANXld9rx4ORa6SSj/17QAg+fv89DsMC+VCPl6ZnaPuAMjzNXkuHQJHCxkHlBDrVpSBlLXiVU/KGPYK4dVxVl0sqkuGAKOr6ix51gNPLWZLwWlg0Z8uj7qhyb+dtfwrp9CCpf5wLL9prx2lIsAYp8xGozicy3XXtSSpEf1XNjotqvGXtwwI+LWP0D5tID3x+e3xqNBSymrKvEZMfI1mpr6qTR7zNSetHqhXkpcOhlQqFon9PUiXFt3UUQXm8H9rZvjisOBasKNttoBmn8g1gSs6DNRNXxBMGIi0iQzODsnFDFS6IDnNkEF+ogj2FAmodFC4IfIODZmHudWJ1BhZemwMGRm/lIRcy/+ytunLDm+e8jOW7xfcSayxDmzpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG3fbh12Whk9nL4UbO63msHLSF7V9bN5E6jPWFfv8AqQabiFf+q4GE+2h/Y0YYwDXaxDncGus7VZig8AAAAAABBqfVFxksXFEhjMlMPUrxf1ja7gibof1E49vZigAAAAD1aCsG/MvbprQNI0oUsffenYteEeRacryqkmI/Pmd6G7sc8KMrGdy+1jlvLpZxbQX1Ed7AHQ9l/XWG3WREqk2PzQ68HZv63dbJLeBSkdUvezmSmJTQDe90QbaDTbM3vkT5ead9khDLymmwgAAZDqlcxwpWbz1NG1L1RgsxtJ726+WZKh4z6RoxMM8KyuMHskpzngeIdVxxkztQxeajQCEhBg8ACQPQBwAAAAAAABACAAF8AwAAANl9ZW8SJNIbmMgnCO1IEqGI0kjnl//nskkffYhHKfxGIAAAAAAAAAAzN0hDRHBIeXphZEVZV1B3VlF4WjdNckRuWmNlUnprRvAdHwAAAAAApQAAAAAAAAAG3fbh12Whk9nL4UbO63msHLSF7V9bN5E6jPWFfv8AqREEARIAEwEBFBIRAhUDBAUGFgcICQoLDBcNAQARCQAM1XeDHgAAZj0AAAAAAAARAwEAAAEJEAIADgwCAAAAgJaYAAAAAAAA",
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0eEhhc2giOiJ5VjVKYnlvNWljTGNqUm12S05LakVySllBaXc9Iiwic2Vzc2lvbkhhc2giOiJlamN0VDlMVUFuQ0wwd3l4QzVXaSIsInR4SWQiOiJhZGQtbGF0ZXIiLCJ0eFR5cGUiOiJTV0FQIiwiaGVsaW9GZWUiOiIwIiwicGFydG5lckZlZSI6IjAiLCJmZWVNaW50QWRkcmVzcyI6IlNvMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTIiLCJzdWJtaXRQcmlvcml0eSI6eyJ0aXAiOjEwMDAwMDAwLCJmcm9udFJ1bm5pbmdQcm90ZWN0aW9uIjpmYWxzZSwiaml0b1RpcCI6MTAwMDAwMCwicm91dGVyIjoiTU9PTkJPT1NUIn0sInVuaXhUaW1lc3RhbXAiOjE3MzE1MDg0MDg3NDEsImlhdCI6MTczMTUwODQwOCwiZXhwIjoxNzMxNTA5NjA4fQ.-PsEGOfrBOwWEslU9vhwUCybfll7YcJQbVivRanNBdk"
}

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:

Sample Request

{
  "signedTransaction": "AWAAhcO+U3q9kFkJiwW20SYk3h/gUiJ6GoFcPQLpKEDzHpZdZygfIl8YL12n9SOJhGS50e2hHgfrkM3SdhdKrwuAAQAJGdl9ZW8SJNIbmMgnCO1IEqGI0kjnl//nskkffYhHKfxGkHQHoMQj8A+T/eOkT/7FJTOTRiTgpimTUppc328cpkbN7Vysi7EOAwwIlsvdJdQKAc3ViM8BO8CYlXCGJYVsLZLNS0xS71XM1X/iRxeYsbxvmmxs2oEBMYLKAlJe8k4QSdF7gyflVcDsPbxLOn4mGqiKPxaFvvDVNymflq3+mqe7ZBsJpLZiiRnV2O/rwDzaiNRlJsTlfXHRfcZIUhcaJQJH2CNbufp6h3p556Noj/zyYltdRwZLudptLZORAJUVOANXld9rx4ORa6SSj/17QAg+fv89DsMC+VCPl6ZnaPuAMjzNXkuHQJHCxkHlBDrVpSBlLXiVU/KGPYK4dVxVl0sqkuGAKOr6ix51gNPLWZLwWlg0Z8uj7qhyb+dtfwrp9CCpf5wLL9prx2lIsAYp8xGozicy3XXtSSpEf1XNjotqvGXtwwI+LWP0D5tID3x+e3xqNBSymrKvEZMfI1mpr6qTR7zNSetHqhXkpcOhlQqFon9PUiXFt3UUQXm8H9rZvjisOBasKNttoBmn8g1gSs6DNRNXxBMGIi0iQzODsnFDFS6IDnNkEF+ogj2FAmodFC4IfIODZmHudWJ1BhZem40LjqD0Gt3mbJMzEG/zDcP8bx9dfKhx37dvGh20ofDGAwZGb+UhFzL/7K26csOb57yM5bvF9xJrLEObOkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCpBpuIV/6rgYT7aH9jRhjANdrEOdwa6ztVmKDwAAAAAAEGp9UXGSxcUSGMyUw9SvF/WNruCJuh/UTj29mKAAAAAPVoKwb8y9umtA0jShSx996di14R5FpyvKqSYj8+Z3obuxzwoysZ3L7WOW8ulnFtBfUR3sAdD2X9dYbdZESqTY/NDrwdm/rd1skt4FKR1S97OZKYlNAN73RBtoNNsze+RPl5p32SEMvKabCAABkOqVzHClZvPU0bUvVGCzG0nvbrhbz8kbUrB8UsK0CM0vKAnhfl1dh8fKKorEnzifUE5G8IEAAJA9AHAAAAAAAAEQIAAXwDAAAA2X1lbxIk0huYyCcI7UgSoYjSSOeX/+eySR99iEcp/EYgAAAAAAAAAENtSldvNGN5RjZZSGdSZVdZZUZnWXFZMzR6ZHk1UWZ2cLS3AAAAAAClAAAAAAAAAAbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCpEgQBEwAUAQEVEhICFgMEBQYXBwgJCgsMGAENABEJgJaYAAAAAAD2FQAAAAAAABIDAQAAAQkRAgAODAIAAABAQg8AAAAAABECABkMAgAAAEANAwAAAAAAEQIADwwCAAAAADUMAAAAAAABPdt9alXB0EBEC4v3yYopqe1Qz8Q4sM3AImFcqd7hZ9IBBQA=",
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0eEhhc2giOiJNRG1sb09wd2V3aWRiR0UvQUVIWlZxakl1Mnc9Iiwic2Vzc2lvbkhhc2giOiIybnFkTGwzWDBySzVnQVh0ZEdhSSIsInR4SWQiOiJhZGQtbGF0ZXIiLCJ0eFR5cGUiOiJTV0FQIiwiaGVsaW9GZWUiOiIyMDAwMDAiLCJwYXJ0bmVyRmVlIjoiODAwMDAwIiwiZmVlTWludEFkZHJlc3MiOiJTbzExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEyIiwic3VibWl0UHJpb3JpdHkiOnsidGlwIjoxMDAwMDAwLCJmcm9udFJ1bm5pbmdQcm90ZWN0aW9uIjpmYWxzZSwiaml0b1RpcCI6MTAwMDAwLCJyb3V0ZXIiOiJNT09OQk9PU1QifSwidW5peFRpbWVzdGFtcCI6MTczMTUwOTY5MDYwNiwiaWF0IjoxNzMxNTA5NjkwLCJleHAiOjE3MzE1MTA4OTB9.wZvkvX2Wl8DmYpdLDgOEKOvMSxVIdh-PT1HUVmajkRY"
}

Sample Response

{
    "status": "SUCCESS",
    "transactionSignature": "2vKpgviD1GjBGTuNPVhbxshFNyEvn5eCkrrhLFj4aKs8WqFLVwqMNjrPmtz475yC3JahdLAQoS5advLjiQwr6vk2"
}

Meteora

Base Url (Devnet) : https://api.dev.mintlp.io/v1

Base Url (Mainnet) : https://api.mintlp.io/v1

Authorization : 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": "1000000000",
  "mintFrom": "So11111111111111111111111111111111111111112",
  "mintTo": "DZNvxMVM9xNRSAZMAv2xAPsrVkertM4mS6XTRTogvs1T",
  "poolId": "FGHLncnajeazn5mjJHvpefLthEnuXhQzgtSwq36oRBre",
  "slippageBps": 100
}

Sample Response

"5357279420573652"

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.

    • priorityFee (number, optional): Priority fee for the transaction in micro lamports (10^-6). We recommend that you set the default prio fee to 2M for the optimal performance and enable a UI for users to change it. This priorityFee is sent to the Solana

    • priority(Optional): Object to set priority-related parameters.

      • priorityTipAmount (string) : Tip amount to prioritize the transaction (in lamports). This amount is optimally sent to jito pools by our services to efficiently increase the rate of landing transactions

      • frontRunningProtection (optional, boolean): Enable front-running protection.

      • 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":"FGHLncnajeazn5mjJHvpefLthEnuXhQzgtSwq36oRBre",
"mintFrom":"So11111111111111111111111111111111111111112",
"mintTo":"DZNvxMVM9xNRSAZMAv2xAPsrVkertM4mS6XTRTogvs1T",
"amountIn":"1000000000",
"feeAmount":"0",
"feeMintAddress":"So11111111111111111111111111111111111111112",
"priorityFee":0.01,
"amountOut":"100",
"priority": {
    "priorityTipAmount": "10000000",
    "frontRunningProtection": false
  }
}

Sample Response

{
    "serializedTx": "AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQAEEtl9ZW8SJNIbmMgnCO1IEqGI0kjnl//nskkffYhHKfxGoPkjYjZWG9iBx8OtU2fpptWAi0ypz7OyDafqyIypEg7T7c5cdngPg2OR+hkMblMU8Cf7OtWRJLFdGrSvAMz/5+X9B8+OcDyxHnIZIks3I4PQedTJql/39VQbUhR5gfkz03QhdricXhTJa3SJmEIfOBAeCeXFkzGxaLYlzScVuyZ/N2RAy1UmK3Uv8BOM0g7mPEYHfxpsJ7J2yZOdGVxnpvYXzUUQr3DHYZIEmfj+l9WyMRpp4ZoXaDyiqqSL7Jp95QNIRsv5pXVOj18cBCdhSMso/OipyXxbX6bNNr9GV78CzKKq7OGUV/Hz0fc/G4b0fXoXg4sLmtSgAyCmgp4w/qlw1xZZ0hhatrXFAfBoDK2Bp83O0tH4riN211+YysnFcUXDBBLNzx22qeCCM2E+6h1OsO0CcDR/8oDtNHPbSCTg67tHhb0QrwjKGIzyTlTIqBcFZhArpP9s/tZebEmMF/PxiILojbxGsZLd3Lwl2t5bS5X7X38PHPBf5IEjhPh3QxUuiA5zZBBfqII9hQJqHRQuCHyDg2Zh7nVidQYWXpsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCpzPgC1MzMhNf7IbX3O0nYGhbFtMiO4yOU4ckdNYjMQIAPv+iEbWhcvcYsyn4Ex+j2jcwxOrMSd+LgESouwOBS5ULDd2GW59YIjPIvXzJ6dY4CxMkmrx9LmV0vuuivBU1PBA4CAAEMAgAAAADKmjsAAAAADwEBAREQDwIBAwQFBgcICQoLDAARDxj4xp6R4XWHyADKmjsAAAAAZAAAAAAAAAAOAgANDAIAAACAlpgAAAAAAAA=",
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0eEhhc2giOiJiWENEUEdtVDhuTFNlYUpKaDJPaFVGVks5ZFk9Iiwic2Vzc2lvbkhhc2giOiJSS3pIdXpEWVZqS0w2UmFXMUVKNiIsInR4SWQiOiJhZGQtbGF0ZXIiLCJ0eFR5cGUiOiJTV0FQIiwiaGVsaW9GZWUiOiIwIiwicGFydG5lckZlZSI6IjAiLCJmZWVNaW50QWRkcmVzcyI6IlNvMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTIiLCJzdWJtaXRQcmlvcml0eSI6eyJ0aXAiOjEwMDAwMDAwLCJmcm9udFJ1bm5pbmdQcm90ZWN0aW9uIjpmYWxzZSwiaml0b1RpcCI6MTAwMDAwMCwicm91dGVyIjoiTU9PTkJPT1NUIn0sInVuaXhUaW1lc3RhbXAiOjE3MzE1MTMzNjUyNTIsImlhdCI6MTczMTUxMzM2NSwiZXhwIjoxNzMxNTE0NTY1fQ.lnxlt1MvI3cap46gwMUEIa03AiWyWPay3HRkMSypGdc"
}

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": "Aasxnje/6xu1MZe6dVPWAowopDiqlCjWTamZGYfY2vFvueoUeakdcaudqazbEpTQ+UnVqq1hvKR/VWnOWIckPA2AAQAFEtl9ZW8SJNIbmMgnCO1IEqGI0kjnl//nskkffYhHKfxGoPkjYjZWG9iBx8OtU2fpptWAi0ypz7OyDafqyIypEg7T7c5cdngPg2OR+hkMblMU8Cf7OtWRJLFdGrSvAMz/5+X9B8+OcDyxHnIZIks3I4PQedTJql/39VQbUhR5gfkz03QhdricXhTJa3SJmEIfOBAeCeXFkzGxaLYlzScVuyZ/N2RAy1UmK3Uv8BOM0g7mPEYHfxpsJ7J2yZOdGVxnpvYXzUUQr3DHYZIEmfj+l9WyMRpp4ZoXaDyiqqSL7Jp95QNIRsv5pXVOj18cBCdhSMso/OipyXxbX6bNNr9GV78CzKKq7OGUV/Hz0fc/G4b0fXoXg4sLmtSgAyCmgp4w/qlw1xZZ0hhatrXFAfBoDK2Bp83O0tH4riN211+YysnFcUXDBBLNzx22qeCCM2E+6h1OsO0CcDR/8oDtNHPbSCTg67tHhb0QrwjKGIzyTlTIqBcFZhArpP9s/tZebEmMF/PxiILojbxGsZLd3Lwl2t5bS5X7X38PHPBf5IEjhPh3AwZGb+UhFzL/7K26csOb57yM5bvF9xJrLEObOkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCpzPgC1MzMhNf7IbX3O0nYGhbFtMiO4yOU4ckdNYjMQIAPv+iEbWhcvcYsyn4Ex+j2jcwxOrMSd+LgESouwOBS5VfgtbDZbE/NUAbAGK3K+FLIEdIVnvPBFW1EUf7ifDEdBQ0ACQMhoQcAAAAAAA0ABQJADQMADgIAAQwCAAAAAMqaOwAAAAAPAQEBERAPAgEDBAUGBwgJCgsMABEPGPjGnpHhdYfIAMqaOwAAAABkAAAAAAAAAAA=",
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0eEhhc2giOiJwWStSVmQ5WWl5cm9qQjU3c2kxVnBDUVg3ZjA9Iiwic2Vzc2lvbkhhc2giOiJXUHRQczZZMnBpejB1RmszcGg0SyIsInR4SWQiOiJhZGQtbGF0ZXIiLCJ0eFR5cGUiOiJTV0FQIiwiaGVsaW9GZWUiOiIwIiwicGFydG5lckZlZSI6IjAiLCJmZWVNaW50QWRkcmVzcyI6IlNvMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTIiLCJ1bml4VGltZXN0YW1wIjoxNzMxNTEzNjMzOTQ5LCJpYXQiOjE3MzE1MTM2MzMsImV4cCI6MTczMTUxNDgzM30.na0buflISm2JiYZgoyBu_WIqCzUzv6ds4KKAebAGp0I"
}

Sample Response

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

Fees collected

We support fees to be collected in SOL (so feeMintAddress in prepare endpoint needs to be So11111111111111111111111111111111111111112). We can customise the fees you'd like to charge your customers and agree the fee split.

Base

Base Url (Devnet) : https://api.dev.mintlp.io/v1

Base Url (Mainnet) : https://api.mintlp.io/v1

Authorization : request your bearer token from the helio team

1. Get Uniswap Price

  • Endpoint: GET /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

Copy

{
    "amount": "99999999999999991611392",
    "mintFrom": "0x14FD6842cc82744473AF1e20bF367900a5a4c41c",
    "mintTo": "0x0000000000000000000000000000000000000000",
    "poolId": "0xF0Aad6553E80dfda0582E201a6b9f36D469423Dc",
    "swapType": "EXACT_IN"
}

Sample Response

Copy

"283315947643723"

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

Copy

{
    "sender": "0x94c456dc9F6FB7D72F6344DF2694bCcB943A76B2",
    "poolId": "0xF0Aad6553E80dfda0582E201a6b9f36D469423Dc",
    "mintFrom": "0x14FD6842cc82744473AF1e20bF367900a5a4c41c",
    "mintTo": "0x0000000000000000000000000000000000000000",
    "amountIn": "99999999999999991611392",
    "amountOut": "240818555497164",
    "feeAmount": "100000000000000",
    "feeMintAddress": "0x0000000000000000000000000000000000000000",
    "swapType": "EXACT_IN"
}

Sample Response

Copy

{
    "serializedTx": "0x01f88a83014a3480830f43b7837a120094370f357a1d15cef1a070c1c5951b76a3436e199780b864c038847a00000000000000000000000014fd6842cc82744473af1e20bf367900a5a4c41c00000000000000000000000000000000000000000000152d02c7e14af60000000000000000000000000000000000000000000000000000000000db05f074aaccc0",
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0eEhhc2giOiJZcXBRZjlDR3lpa1VENUtvbG9BTTlLN0w2RjA9Iiwic2Vzc2lvbkhhc2giOiJHTDdkM1NJRVExa251Umd2S1JjQiIsInR4SWQiOiJhZGQtbGF0ZXIiLCJ0eFR5cGUiOiJTV0FQIiwiaGVsaW9GZWUiOiI1MDAwMDAwMDAwMDAwIiwicGFydG5lckZlZSI6Ijk1MDAwMDAwMDAwMDAwIiwiZmVlTWludEFkZHJlc3MiOiIweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsInVuaXhUaW1lc3RhbXAiOjE3MzQ2MjM2NDI1MDcsImlhdCI6MTczNDYyMzY0MiwiZXhwIjoxNzM0NjIzODIyfQ.MUchwt7THuSmR9nXP_PKlhOX-28YMTbCkFWDjMsQrO0",
    "contractAddress": "0x370F357a1d15CEF1A070C1C5951B76a3436E1997"
}

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

Copy

{
   "signedTransaction": "{\"_type\":\"TransactionResponse\",\"accessList\":null,\"blockNumber\":null,\"blockHash\":null,\"blobVersionedHashes\":null,\"chainId\":null,\"data\":\"0xc038847a00000000000000000000000014fd6842cc82744473af1e20bf367900a5a4c41c00000000000000000000000000000000000000000000d3c21bcecceda000000000000000000000000000000000000000000000000000000000087f7244dc11c6\",\"from\":\"0x94c456dc9F6FB7D72F6344DF2694bCcB943A76B2\",\"gasLimit\":\"8000000\",\"gasPrice\":\"1000370\",\"hash\":\"0x016e3ba0284a2db9729e9862ff68776c927ec9a4941d4280c8fff313c7837dfe\",\"maxFeePerGas\":\"1000370\",\"maxPriorityFeePerGas\":\"1000370\",\"maxFeePerBlobGas\":null,\"nonce\":268,\"signature\":{\"_type\":\"signature\",\"networkV\":null,\"r\":\"0x97765e03d15a0dc178998f3cc04a11ed6a3982607bad6c6e527ecd6a263e06c2\",\"s\":\"0x1b0ac8aac3ac741cb815dc04c5078493709f5ce18da18700a1ad93d1fdf29f23\",\"v\":28},\"to\":\"0x370F357a1d15CEF1A070C1C5951B76a3436E1997\",\"type\":2,\"value\":\"0\"}",
   "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0eEhhc2giOiJ6NkJiTmlSclNmb0xwUVlickJNYnN3UGRyRXc9Iiwic2Vzc2lvbkhhc2giOiJueUhoR2FPenozY0R4MlVBQ3QyWiIsInR4SWQiOiJhZGQtbGF0ZXIiLCJ0eFR5cGUiOiJTV0FQIiwiaGVsaW9GZWUiOiI1MDAwMDAwMDAwMDAwMCIsInBhcnRuZXJGZWUiOiI5NTAwMDAwMDAwMDAwMDAiLCJmZWVNaW50QWRkcmVzcyI6IjB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwidW5peFRpbWVzdGFtcCI6MTczNDYyNTU1NzA0MywiaWF0IjoxNzM0NjI1NTU3LCJleHAiOjE3MzQ2MjU3Mzd9.24XJalZvPW-98jba7FLpDaPjhEUd7n0gOLd4QqGkrkk"
}

Sample Response

Copy

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

Ethereum

All structures are same as that of Base. Only the name of the endpoints are different

Base Url (Devnet) : https://api.dev.mintlp.io/v1

Base Url (Mainnet) : https://api.mintlp.io/v1

1. Get Uniswap Price

  • Endpoint: GET /uniswap/price/eth

2. Prepare Uniswap Price

  • Endpoint: POST /uniswap/prepare/eth

3. Confirm Uniswap Swap

  • Endpoint: POST /uniswap/confirm/eth

Pump.fun

Base Url (Devnet) : https://api.dev.mintlp.io/v1

Base Url (Mainnet) : https://api.mintlp.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": "Du6YvPqGNqj2DbwVKvvFeda4SSA2qheipCvCTitJpump",
   "mintFrom": "So11111111111111111111111111111111111111112"
}

Sample Response

{ 
"price":"35743205475"
}

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

    • priorityFee (number, optional): Priority fee that goes to the blockchain

    • priority (object, optional): Transaction priority settings

      • priorityTipAmount (string) : Tip amount to prioritize the transaction landing through Jito

      • frontRunningProtection (optional, boolean): Enable front-running protection.

  • Response:

    • serializedTx (string): Serialized transaction ready for signing

    • token (string, optional): Token for transaction tracking

Sample Request

{
  "sender": "FdzNYdgdWPKDWmwFwdjRNh48sEh6RkE7RPXvrbjMJszm",
  "mintFrom": "So11111111111111111111111111111111111111112",
  "mintTo": "3aak6CseacNGwLoTPpu9cLAJoNsLNzYXaZrfYjCjpump",
  "amountIn": "1000000",
  "amountOut": "35741180765",
  "slippageBps": 100,
  "feeAmount": "10000",
  "feeMintAddress": "So11111111111111111111111111111111111111112",
  "priority": {
    "priorityTipAmount": "20000",
    "frontRunningProtection": true
  }
}

Sample Response

{
    "serializedTx": "AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQAIENl9ZW8SJNIbmMgnCO1IEqGI0kjnl//nskkffYhHKfxGrRHmpPwpRKT6glG++BVCbhv7KMa2ZGZ3YHxq2fVmpkY/hY4hFm5e+V2wyTXayhOLvTAmwH1g6eY3PorLJuHWDghdL3WO7EwSlgWD4q5BNjhXPKFqOa0u8VK/AB7fTH1VqDISzK7FEcaJno7fQqvTLFGQKHMbI1i/+CytIAfDBjBz2n87UEOz/l1MGeorkymTxfNSWruKPS1Jx5DSUBcH1EAQNdNau1MSXZHpswA8uLi/RlZlvwFF6wuZ+IPR0MAZjQuOoPQa3eZskzMQb/MNw/xvH118qHHft28aHbSh8MYDBkZv5SEXMv/srbpyw5vnvIzlu8X3EmssQ5s6QAAAAAFW4PaTZlrPRNsVaL8XW6pRicuX9dL/O2VdK7b9bRiwOoZeae4PVIDKvPZjV+TcLxjVjUXB6nSJ+zcj2Xk8cqYmUbGc7db6+gsmBzAhxMo7vrTqU9509KpJu3mCEv8pTwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKkGp9UXGSxcUSGMyUw9SvF/WNruCJuh/UTj29mKAAAAAKzxNusB/BxOiD0jyLWESrWaN/Zq3VfF6aw7U+BZ01xkSUXsNoWxy2D+YU89MeZZbsW6PCAfAp4p0sOZoYvx6rEFCAAFAuCTBAAJDAoBCwIDBAAMDQ4PCRhmBj0SAdrr6l0jV1IIAAAAUWkPAAAAAAAMAgAFDAIAAAAgTgAAAAAAAAwCAAYMAgAAAPQBAAAAAAAADAIABwwCAAAAHCUAAAAAAAAA",
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0eEhhc2giOiJoNlh3M0tBbzhSV0xxajdmQVl4MUViSjlkTEk9Iiwic2Vzc2lvbkhhc2giOiJrQUFjSEhoSDI4a1FlWHV3ZDRqcCIsInR4SWQiOiJhZGQtbGF0ZXIiLCJ0eFR5cGUiOiJTV0FQIiwiaGVsaW9GZWUiOiI1MDAiLCJwYXJ0bmVyRmVlIjoiOTUwMCIsImZlZU1pbnRBZGRyZXNzIjoiU28xMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMiIsInN1Ym1pdFByaW9yaXR5Ijp7InRpcCI6MjAwMDAsImZyb250UnVubmluZ1Byb3RlY3Rpb24iOnRydWUsImppdG9UaXAiOjEyNTAwMDAsInJvdXRlciI6Ik1PT05CT09TVCJ9LCJ1bml4VGltZXN0YW1wIjoxNzM2MjU4MjM1NzczLCJpYXQiOjE3MzYyNTgyMzUsImV4cCI6MTczNjI1ODQxNX0.TQCFLSOv6jNTpm3FvVEidOUVgB_pUHBVCqQQ1yK8Eks"
}

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

Last updated