---
title: "Send a swap transaction"
method: POST
path: "/api/2/swap/send"
tags: ["V2 - Swap"]
---

# Send a swap transaction

`POST /api/2/swap/send`

Submit a signed swap transaction to the blockchain

## Request body

- object
  - `chainId` string, required — Chain dispatcher. Solana: `solana:solana`. EVM: `evm:<chainId>` (e.g. `evm:8453` for Base). TON: `ton:mainnet` or `ton:testnet`.
  - `signedTransaction` string — Base64 of the signed payload. Solana: signed `VersionedTransaction`/`Transaction` bytes. EVM: raw signed RLP. TON: signed `external_in_message` BoC.
  - `candidates` SwapSendCandidate[] — Multi-lander batch (Solana only). One signed candidate per lander, sharing a durable nonce — only one will commit. Mutually exclusive with `signedTransaction`.
    - `lander` string, required — Lander id — `jito`, `nozomi`, `zeroslot`, …
    - `signedTransaction` string, required — Base64 of the signed payload. Solana: signed `VersionedTransaction`/`Transaction` bytes. EVM: raw signed RLP. TON: signed `external_in_message` BoC.
  - `awaitLanding` boolean — When `true`, the endpoint blocks until on-chain confirmation and returns swap data.
  - `feeWallet` string — Wallet that receives the referral fee on this swap. Echo from the original /quote request.
  - `feeAmountUsd` number, nullable — 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.

## Response `200`

Swap send response

- object
  - `data` object, required
    - `success` boolean, required
    - `transactionHash` string
    - `requestId` string, required
    - `lander` string
    - `landingTimeMs` number
    - `status` 'broadcasted' | 'processed' | 'confirmed' | 'failed' | 'timeout'
    - `onchainLandingTimeMs` number
    - `swap` object
      - `tokenIn` object, required
        - `address` string, required
        - `amount` string, required
      - `tokenOut` object, required
        - `address` string, required
        - `amount` string, required
  - `error` string

## Other responses

- `402` — Payment Required

---

[API](https://skmtc.net/mobula/apis/mobula-api.md) · [All operations](https://skmtc.net/mobula/apis/mobula-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/mobula/mobula-api/versions/32f95d9e8ff2/schema)
