Skip to main content
POST
/
2
/
swap
/
send
Send a swap transaction
curl --request POST \
  --url https://demo-api.mobula.io/api/2/swap/send \
  --header 'Content-Type: application/json' \
  --data '
{
  "chainId": "solana:solana",
  "signedTransaction": "AQABAuObQ8Adqk1eqZxRMJg4r6vGtXq9k0...base64...",
  "candidates": [
    {
      "lander": "jito",
      "signedTransaction": "AQABAuObQ8Adqk1eqZxRMJg4r6vGtXq9k0...base64..."
    }
  ],
  "awaitLanding": false
}
'
{
  "data": {
    "success": true,
    "requestId": "<string>",
    "transactionHash": "<string>",
    "lander": "<string>",
    "landingTimeMs": 123,
    "onchainLandingTimeMs": 123,
    "swap": {
      "tokenIn": {
        "address": "<string>",
        "amount": "<string>"
      },
      "tokenOut": {
        "address": "<string>",
        "amount": "<string>"
      }
    }
  },
  "error": "<string>"
}

Documentation Index

Fetch the complete documentation index at: https://docs.mobula.io/llms.txt

Use this file to discover all available pages before exploring further.

Body

application/json
chainId
string
required

Chain dispatcher. Solana: solana:solana. EVM: evm:<chainId> (e.g. evm:8453 for Base). TON: ton:mainnet or ton:testnet.

Example:

"solana:solana"

signedTransaction
string

Base64 of the signed payload. Solana: signed VersionedTransaction/Transaction bytes. EVM: raw signed RLP. TON: signed external_in_message BoC.

Minimum string length: 1
Example:

"AQABAuObQ8Adqk1eqZxRMJg4r6vGtXq9k0...base64..."

candidates
object[]

Multi-lander batch (Solana only). One signed candidate per lander, sharing a durable nonce — only one will commit. Mutually exclusive with signedTransaction.

Minimum array length: 1
awaitLanding
boolean

When true, the endpoint blocks until on-chain confirmation and returns swap data.

Example:

false

Response

200 - application/json

Swap send response

data
object
required
error
string