
POST
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.
/funding/withdrawQuick Start
Parameters
| Parameter | Type | Description |
|---|---|---|
sourcePrivateKeys | string[] | Private keys of the source wallets. Min 1, max 50. Required for all amount modes except CUSTOM |
sources | object[] | Sources with individual amounts. Required when amount.mode is CUSTOM. Replaces sourcePrivateKeys |
destinationPublicKey | string | Public key of the destination wallet |
amount | object | Amount configuration. See Amount Modes and properties below |
method | string | (Optional) Transfer method — DIRECT (default) or ISOLATED. See Transfer Methods. Coming soon: EXCHANGE, PRIVACY |
amount
| Property | Type | Description |
|---|---|---|
mode | string | ALL, PERCENT, FIXED, or CUSTOM |
value | number | Percentage (1–100) when mode is PERCENT, SOL amount when mode is FIXED |
sources[]
| Property | Type | Description |
|---|---|---|
privateKey | string | Source wallet private key |
amount | number | string | SOL amount (0.5), percentage ("80%"), or "ALL" |
Amount Modes
- ALL
- PERCENT
- FIXED
- CUSTOM
Withdraw all SOL from each source wallet.A small amount (~0.0005 SOL) is reserved per wallet to cover transfer fees.
Response
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:
Each transfer is independent. There is no atomic guarantee — check the
status field for each source.Errors
| Code | Message | Cause |
|---|---|---|
INVALID_WALLET | Invalid private key | One of the source private keys is invalid |
INVALID_DESTINATION | Invalid public key | Destination public key is invalid |
NO_SOURCES | No source wallets | No sources provided |
INSUFFICIENT_BALANCE | Insufficient SOL | Source wallet does not have enough SOL |
INVALID_AMOUNT | Invalid amount | Amount mode or value is invalid |
INVALID_PERCENT | Percent must be 1–100 | Percentage value is out of range |
TOO_MANY_SOURCES | Maximum 50 sources per request | More than 50 source wallets submitted |
METHOD_UNAVAILABLE | Method not available | EXCHANGE or PRIVACY not yet available |
RATE_LIMIT | Rate limit exceeded | Too many requests — see Rate Limits |
INTERNAL_ERROR | Internal server error | Retry 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