Skip to main content
Withdraw and consolidate SOL from multiple wallets with Launchpad Trade API
POST/funding/withdraw
Consolidate SOL from multiple source wallets to a single destination wallet in one API call. Choose an amount mode to control how much SOL is withdrawn and a transfer method to control how transactions are routed.

Quick Start

curl -X POST https://api.launchpad.trade/funding/withdraw \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "sourcePrivateKeys": ["SOURCE_PRIVATE_KEY_1", "SOURCE_PRIVATE_KEY_2"],
    "destinationPublicKey": "DEST_PUBLIC_KEY",
    "amount": {
      "mode": "ALL"
    },
    "method": "DIRECT"
  }'

Parameters

ParameterTypeDescription
sourcePrivateKeysstring[]Private keys of the source wallets. Min 1, max 50. Required for all amount modes except CUSTOM
sourcesobject[]Sources with individual amounts. Required when amount.mode is CUSTOM. Replaces sourcePrivateKeys
destinationPublicKeystringPublic key of the destination wallet
amountobjectAmount configuration. See Amount Modes and properties below
methodstring(Optional) Transfer method — DIRECT (default) or ISOLATED. See Transfer Methods. Coming soon: EXCHANGE, PRIVACY

amount

PropertyTypeDescription
modestringALL, PERCENT, FIXED, or CUSTOM
valuenumberPercentage (1–100) when mode is PERCENT, SOL amount when mode is FIXED

sources[]

PropertyTypeDescription
privateKeystringSource wallet private key
amountnumber | stringSOL amount (0.5), percentage ("80%"), or "ALL"

Amount Modes

Withdraw all SOL from each source wallet.
{
  "amount": {
    "mode": "ALL"
  }
}
A small amount (~0.0005 SOL) is reserved per wallet to cover transfer fees.

Response

{
  "success": true,
  "data": {
    "destinationPublicKey": "2Nk4r...",
    "method": "DIRECT",
    "mode": "ALL",
    "transfers": [
      {
        "source": "7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU",
        "balanceBefore": 1.2,
        "amount": 1.199,
        "balanceAfter": 0.001,
        "status": "SUCCESS",
        "signature": "5UfDuX..."
      },
      {
        "source": "9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM",
        "balanceBefore": 0.8,
        "amount": 0.799,
        "balanceAfter": 0.001,
        "status": "SUCCESS",
        "signature": "3KmPqY..."
      }
    ],
    "summary": {
      "totalWallets": 2,
      "successCount": 2,
      "failedCount": 0,
      "totalSolReceived": 1.998,
      "totalFees": 0.00001
    },
    "latency": 515
  }
}

Partial Success

Some transfers may fail individually while others succeed. The response still returns "success": true with per-source details. Failed transfers have status: "FAILED" and an error field with the reason. When failures occur, a warnings array is included at the root of the response:
{
  "success": true,
  "data": { ... },
  "warnings": ["2 transfer(s) failed"]
}
Each transfer is independent. There is no atomic guarantee — check the status field for each source.

Errors

{
  "success": false,
  "error": {
    "code": "INSUFFICIENT_BALANCE",
    "message": "Wallet 7xKX... has 0.01 SOL, not enough for fees"
  }
}
CodeMessageCause
INVALID_WALLETInvalid private keyOne of the source private keys is invalid
INVALID_DESTINATIONInvalid public keyDestination public key is invalid
NO_SOURCESNo source walletsNo sources provided
INSUFFICIENT_BALANCEInsufficient SOLSource wallet does not have enough SOL
INVALID_AMOUNTInvalid amountAmount mode or value is invalid
INVALID_PERCENTPercent must be 1–100Percentage value is out of range
TOO_MANY_SOURCESMaximum 50 sources per requestMore than 50 source wallets submitted
METHOD_UNAVAILABLEMethod not availableEXCHANGE or PRIVACY not yet available
RATE_LIMITRate limit exceededToo many requests — see Rate Limits
INTERNAL_ERRORInternal server errorRetry or contact support

Notes

  • Maximum 50 source wallets per request
  • Each source wallet pays its own Solana transaction fee
  • Each transfer is independent — partial failures do not roll back successful transfers

What’s Next?

Distribute

Send SOL from one wallet to many

Transfer Methods

Compare DIRECT, ISOLATED, EXCHANGE, and PRIVACY PROTOCOL

Check Balance

Verify wallet balances before withdrawing

Close Accounts

Close empty token accounts to recover rent