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,
  "feeWallet": "<string>",
  "feeAmountUsd": 1.25
}
'
{
  "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>"
}

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

feeWallet
string

Wallet that receives the referral fee on this swap. Echo from the original /quote request.

feeAmountUsd
number | null

Referral fee amount in USD for this swap (feePercentage × amountInUsd from the /quote response). Persisted for dashboard attribution; not re-validated against the signed transaction.

Required range: x >= 0
Example:

1.25

Response

200 - application/json

Swap send response

data
object
required
error
string