Skip to main content
POST
/
api
/
v1
/
transfers
curl -X POST /api/v1/transfers \
  -H "x-api-key: mh_live_abc123..." \
  -H "Content-Type: application/json" \
  -d '{
    "tokenMint": "So11111111111111111111111111111111111111112",
    "amountRaw": "1000000000",
    "amountTokens": "1.0",
    "tokenDecimals": 9,
    "tokenSymbol": "SOL",
    "senderWallet": "Abc123...",
    "recipientWallet": "Def456...",
    "hops": 7,
    "arrivalSeconds": 300,
    "externalId": "order_12345"
  }'
{
  "id": 42,
  "externalId": "order_12345",
  "supportBundleId": "MH-acme-42",
  "tokenMint": "So111...112",
  "amountRaw": "1000000000",
  "amountTokens": "1.0",
  "senderWallet": "Abc123...",
  "recipientWallet": "Def456...",
  "fundingStatus": "awaiting_funding",
  "fundingSummary": {
    "sessionId": 17,
    "sessionStatus": "pending",
    "intermediateCount": 5,
    "fundedCount": 0,
    "allFunded": false
  },
  "fundingBundle": {
    "sessionId": 17,
    "totalTransactions": 5,
    "feeEstimate": {
      "totalFeesLamports": 4286310
    },
    "transactions": [
      {
        "walletIndex": 0,
        "destinationAddress": "Ghi789...",
        "amount": "250000000",
        "serialized": "AQAAAAAAAA..."
      }
    ]
  },
  "hops": 7,
  "arrivalSeconds": 300,
  "pricingTier": "standard",
  "percentFeeBps": 5,
  "totalFlatFeeLamports": 42000,
  "status": "awaiting_deposit",
  "isTest": false,
  "quotedAt": "2025-01-15T10:30:00.000Z",
  "expiresAt": "2025-01-15T11:00:00.000Z",
  "createdAt": "2025-01-15T10:30:00.000Z"
}

Documentation Index

Fetch the complete documentation index at: https://dev-docs.multihopper.com/llms.txt

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

Creates a new transfer. The response includes a funding bundle containing serialized transactions for intermediate wallets that the client must sign, submit, and confirm back through the API. Idempotent via externalId — sending the same externalId returns the existing transfer rather than creating a duplicate.

Request body

tokenMint
string
required
The Solana mint address of the token to transfer.
amountRaw
string
required
Raw token amount as a string.
amountTokens
string
required
Human-readable token amount (e.g. "1.0").
senderWallet
string
required
Solana public key of the sending wallet.
recipientWallet
string
required
Solana public key of the receiving wallet.
tokenDecimals
integer
default:"6"
Decimal precision of the token.
tokenSymbol
string
Token symbol (e.g. "SOL"). Optional, used for display purposes.
hops
integer
Number of intermediate abstraction hops (3–10). Defaults to the integration setting.
arrivalSeconds
integer
Target transfer arrival time in seconds. Minimum: 60.
externalId
string
Your own identifier for idempotency (e.g. "order_12345"). Optional.

Response

id
integer
Internal transfer ID.
externalId
string
Your external ID, if provided.
supportBundleId
string
Human-readable support reference (e.g. "MH-acme-42").
status
string
Transfer status. Initially awaiting_deposit.
fundingStatus
string
Funding status. Initially awaiting_funding.
fundingSummary
object
Summary of intermediate wallet funding progress.
fundingBundle
object
Transactions to sign and submit to fund the intermediate wallets.
hops
integer
Number of abstraction hops.
arrivalSeconds
integer
Target arrival time in seconds.
pricingTier
string
Pricing tier applied.
percentFeeBps
integer
Percentage fee in basis points.
totalFlatFeeLamports
integer
Total flat fee in lamports.
quotedAt
string
ISO 8601 timestamp of when pricing was quoted.
expiresAt
string
ISO 8601 timestamp after which the transfer expires if not funded.
createdAt
string
ISO 8601 creation timestamp.
curl -X POST /api/v1/transfers \
  -H "x-api-key: mh_live_abc123..." \
  -H "Content-Type: application/json" \
  -d '{
    "tokenMint": "So11111111111111111111111111111111111111112",
    "amountRaw": "1000000000",
    "amountTokens": "1.0",
    "tokenDecimals": 9,
    "tokenSymbol": "SOL",
    "senderWallet": "Abc123...",
    "recipientWallet": "Def456...",
    "hops": 7,
    "arrivalSeconds": 300,
    "externalId": "order_12345"
  }'
{
  "id": 42,
  "externalId": "order_12345",
  "supportBundleId": "MH-acme-42",
  "tokenMint": "So111...112",
  "amountRaw": "1000000000",
  "amountTokens": "1.0",
  "senderWallet": "Abc123...",
  "recipientWallet": "Def456...",
  "fundingStatus": "awaiting_funding",
  "fundingSummary": {
    "sessionId": 17,
    "sessionStatus": "pending",
    "intermediateCount": 5,
    "fundedCount": 0,
    "allFunded": false
  },
  "fundingBundle": {
    "sessionId": 17,
    "totalTransactions": 5,
    "feeEstimate": {
      "totalFeesLamports": 4286310
    },
    "transactions": [
      {
        "walletIndex": 0,
        "destinationAddress": "Ghi789...",
        "amount": "250000000",
        "serialized": "AQAAAAAAAA..."
      }
    ]
  },
  "hops": 7,
  "arrivalSeconds": 300,
  "pricingTier": "standard",
  "percentFeeBps": 5,
  "totalFlatFeeLamports": 42000,
  "status": "awaiting_deposit",
  "isTest": false,
  "quotedAt": "2025-01-15T10:30:00.000Z",
  "expiresAt": "2025-01-15T11:00:00.000Z",
  "createdAt": "2025-01-15T10:30:00.000Z"
}