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.
Prerequisites
A MultiHopper API key (mh_live_... for live, mh_test_... for test)
A Solana wallet with funds to transfer
Get API Keys Sign in to the MultiHopper app to generate your API key.
Transfer flow overview
Transfers require three steps after creation:
1. POST /transfers → receive serialized funding transactions
2. Sign + submit → sign each transaction with your wallet and send to Solana
3. POST .../confirm → confirm the transaction hashes back to the API
Once confirmed, the transfer moves into processing automatically.
Step 1: Estimate fees (optional)
Check expected costs before creating the transfer.
curl -X POST /api/v1/transfers/estimate \
-H "x-api-key: mh_test_abc123..." \
-H "Content-Type: application/json" \
-d '{
"tokenMint": "So11111111111111111111111111111111111111112",
"amountRaw": "1000000000",
"tokenDecimals": 9,
"hops": 7
}'
{
"tier" : "standard" ,
"percentFeeBps" : 5 ,
"totalFlatFeeLamports" : 42000 ,
"usdEquivalent" : 150.25
}
Step 2: Create the transfer
curl -X POST /api/v1/transfers \
-H "x-api-key: mh_test_abc123..." \
-H "Content-Type: application/json" \
-d '{
"tokenMint": "So11111111111111111111111111111111111111112",
"amountRaw": "1000000000",
"amountTokens": "1.0",
"tokenDecimals": 9,
"tokenSymbol": "SOL",
"senderWallet": "<YOUR_WALLET>",
"recipientWallet": "<RECIPIENT_WALLET>",
"hops": 7,
"arrivalSeconds": 300,
"externalId": "my-order-001"
}'
The response includes a fundingBundle with serialized Solana transactions — one per intermediate wallet.
Step 3: Sign and submit funding transactions
For each transaction in fundingBundle.transactions, sign and submit it to Solana using your wallet. Record the transaction signature (txHash) for each.
# Example using Solana CLI for one transaction
echo "<serialized_base64>" | base64 --decode > tx.bin
solana transaction submit tx.bin
Step 4: Confirm funding
Once all transactions are submitted, confirm the hashes:
curl -X POST /api/v1/transfers/42/funding/confirm \
-H "x-api-key: mh_test_abc123..." \
-H "Content-Type: application/json" \
-d '{
"fundingResults": [
{ "walletIndex": 0, "txHash": "4mGxFn7m..." },
{ "walletIndex": 1, "txHash": "2qYzLf1x..." }
]
}'
When all wallets are confirmed, the transfer status moves to processing and aggregation is scheduled.
Step 5: Monitor status
curl /api/v1/transfers/42 \
-H "x-api-key: mh_test_abc123..."
Or receive real-time updates by registering a webhook .
Next steps
API Reference Full documentation for all endpoints, error codes, and rate limits.
Webhooks Receive real-time transfer lifecycle events.
How it works Understand the on-chain abstraction mechanism.
Security model Trust assumptions and on-chain guarantees.