POST /trading/delayed/sell
Sell tokens from one or multiple wallets with a configurable delay between each transaction. Wallets execute sequentially — one after another — at the interval you define.
Quick Start
cURL
TypeScript
Rust
Go
Python
curl -X POST https://api.launchpad.trade/trading/delayed/sell \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"tokenAddress": "7GCihgDB8fe6KNjn2MYtkzZcRjQy3t9GHdC8uHYmW2hr",
"privateKeys": ["YOUR_PRIVATE_KEY_1", "YOUR_PRIVATE_KEY_2"],
"amount": {
"type": "PERCENT",
"mode": "FIXED",
"value": 100
},
"delay": {
"mode": "FIXED",
"value": 500
}
}'
See all parameters , delay modes , and amount modes below.
Parameters
Required
Parameter Type Description tokenAddressstring Solana token address to sell privateKeysstring[] Private keys of the wallets. Min 1, max 50. Required for all modes except CUSTOM amountobject Amount to sell per wallet. See Amount Modes delayobject Delay configuration between transactions. See Delay Modes
Conditional
Parameter Type Description walletsobject[] Wallets with individual amounts ({ privateKey, amount }). Required when amount.mode is CUSTOM — replaces privateKeys
Optional
Parameter Type Default Description priorityFeeobject FAST (0.00015 SOL) Transaction priority level. See Priority Fee platformTagobject | false No attribution Tag transactions with a DEX source. See Platform Attribution
Delay Modes
Exact interval between each transaction. {
"delay" : {
"mode" : "FIXED" ,
"value" : 500
}
}
All wallets wait exactly 500ms between each execution. Random interval between min and max for each gap. {
"delay" : {
"mode" : "RANGE" ,
"min" : 200 ,
"max" : 800
}
}
Each gap between transactions is independently randomized within the range.
The 45-second limit applies: (numberOfWallets − 1) × maxDelay ≤ 45,000ms. Requests exceeding this are rejected before execution. See 45-Second Limit .
Amount Modes
Sell amounts require a type field — either PERCENT (percentage of token balance) or TOKEN (exact token quantity).
Using TOKEN type is faster than PERCENT — it skips the on-chain balance fetch required to calculate the percentage.
Sell a percentage of each wallet’s token balance. // FIXED — same percentage from each wallet
{
"amount" : {
"type" : "PERCENT" ,
"mode" : "FIXED" ,
"value" : 100
}
}
// RANGE — random percentage per wallet
{
"amount" : {
"type" : "PERCENT" ,
"mode" : "RANGE" ,
"min" : 50 ,
"max" : 100
}
}
Valid range: 0.01 to 100. Sell an exact token quantity from each wallet. // FIXED — same token amount from each wallet
{
"amount" : {
"type" : "TOKEN" ,
"mode" : "FIXED" ,
"value" : 1000000
}
}
// RANGE — random token amount per wallet
{
"amount" : {
"type" : "TOKEN" ,
"mode" : "RANGE" ,
"min" : 500000 ,
"max" : 2000000
}
}
Per-wallet amounts . Uses the wallets array instead of privateKeys. The type field sets whether amounts are in percent or tokens.// Per-wallet percentages
{
"wallets" : [
{ "privateKey" : "5K7gT..." , "amount" : 25 },
{ "privateKey" : "3Jd8f..." , "amount" : 50 },
{ "privateKey" : "9Pm2x..." , "amount" : 100 }
],
"amount" : {
"type" : "PERCENT" ,
"mode" : "CUSTOM"
}
}
More Examples
Variable percentage with variable delay
Random sell percentage per wallet with random delay intervals. cURL
TypeScript
Rust
Go
Python
curl -X POST https://api.launchpad.trade/trading/delayed/sell \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"tokenAddress": "7GCihgDB8fe6KNjn2MYtkzZcRjQy3t9GHdC8uHYmW2hr",
"privateKeys": ["PRIVATE_KEY_1", "PRIVATE_KEY_2", "PRIVATE_KEY_3"],
"amount": {
"type": "PERCENT",
"mode": "RANGE",
"min": 50,
"max": 100
},
"delay": {
"mode": "RANGE",
"min": 500,
"max": 1500
},
"platformTag": {
"platform": ["PHOTON", "AXIOM", "NONE"]
}
}'
Per-wallet percentages with staged exit
Each wallet sells a different percentage with a slow delay — useful for staged position exits across multiple wallets. cURL
TypeScript
Rust
Go
Python
curl -X POST https://api.launchpad.trade/trading/delayed/sell \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"tokenAddress": "7GCihgDB8fe6KNjn2MYtkzZcRjQy3t9GHdC8uHYmW2hr",
"wallets": [
{ "privateKey": "PRIVATE_KEY_1", "amount": 25 },
{ "privateKey": "PRIVATE_KEY_2", "amount": 50 },
{ "privateKey": "PRIVATE_KEY_3", "amount": 100 }
],
"amount": {
"type": "PERCENT",
"mode": "CUSTOM"
},
"delay": {
"mode": "RANGE",
"min": 2000,
"max": 5000
},
"platformTag": {
"platform": ["PHOTON", "AXIOM", "GMGN", "NONE"]
}
}'
Response
Success (200)
Partial Success (200)
{
"success" : true ,
"data" : {
"transactions" : [
{
"wallet" : "7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU" ,
"signature" : "5UfDuX7nPqR3kLm8vYz..." ,
"status" : "confirmed" ,
"slot" : 234567890 ,
"networkLatency" : 48 ,
"confirmLatency" : 686 ,
"tokensSold" : 1234567890 ,
"solReceived" : 0.48 ,
"executedAt" : 1706612400000
},
{
"wallet" : "9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM" ,
"signature" : "3KmPqYvRs8T2nHj7..." ,
"status" : "confirmed" ,
"slot" : 234567891 ,
"networkLatency" : 45 ,
"confirmLatency" : 672 ,
"tokensSold" : 2500000000 ,
"solReceived" : 0.95 ,
"executedAt" : 1706612400500
}
],
"summary" : {
"totalWallets" : 2 ,
"successful" : 2 ,
"failed" : 0 ,
"totalTokensSold" : 3734567890 ,
"totalSolReceived" : 1.43 ,
"totalDuration" : 500
}
}
}
Field Type Description transactions[].walletstring Public address of the wallet transactions[].signaturestring Transaction signature transactions[].statusstring confirmed or failedtransactions[].slotnumber Solana slot the transaction landed in transactions[].networkLatencynumber Time to build, sign, and broadcast the transaction (ms) transactions[].confirmLatencynumber Total time from request to Solana confirmation (ms) transactions[].tokensSoldnumber Tokens sold transactions[].solReceivednumber SOL received transactions[].executedAtnumber Unix timestamp of execution (ms) summary.totalWalletsnumber Total number of wallets summary.successfulnumber Number of confirmed transactions summary.failednumber Number of failed transactions summary.totalTokensSoldnumber Total tokens sold across all wallets summary.totalSolReceivednumber Total SOL received across all wallets summary.totalDurationnumber Total execution duration (ms)
Some transactions may fail individually. The response still returns "success": true — always check status for each wallet. {
"success" : true ,
"data" : {
"transactions" : [
{
"wallet" : "7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU" ,
"signature" : "5UfDuX7nPqR3kLm8vYz..." ,
"status" : "confirmed" ,
"slot" : 234567890 ,
"networkLatency" : 45 ,
"confirmLatency" : 488 ,
"tokensSold" : 1234567890 ,
"solReceived" : 0.48 ,
"executedAt" : 1706612400000
},
{
"wallet" : "9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM" ,
"signature" : null ,
"status" : "failed" ,
"slot" : null ,
"networkLatency" : 52 ,
"confirmLatency" : 667 ,
"error" : "INSUFFICIENT_TOKENS" ,
"tokensSold" : 0 ,
"solReceived" : 0 ,
"executedAt" : 1706612400500
}
],
"summary" : {
"totalWallets" : 2 ,
"successful" : 1 ,
"failed" : 1 ,
"totalTokensSold" : 1234567890 ,
"totalSolReceived" : 0.48 ,
"totalDuration" : 500
}
}
}
Each transaction is independent — there is no atomic guarantee. Always iterate over transactions and check each status.
Errors
{
"success" : false ,
"error" : {
"code" : "ESTIMATED_DURATION_EXCEEDED" ,
"message" : "Estimated duration ~57000ms exceeds 45000ms limit. Reduce wallets or delay."
}
}
Code Message Cause INVALID_TOKENInvalid token address Token address is not a valid Solana address INVALID_WALLETInvalid private key One of the private keys is malformed INSUFFICIENT_TOKENSInsufficient token balance Wallet does not have enough tokens to sell INVALID_AMOUNTInvalid amount configuration Amount type, mode, value, or range is invalid INVALID_DELAYInvalid delay configuration Delay mode, value, or range is invalid ESTIMATED_DURATION_EXCEEDEDEstimated duration ~Xms exceeds 45000ms limit (wallets − 1) × maxDelay > 45,000ms — reduce wallets or delayRATE_LIMITRate limit exceeded Too many requests — see Rate Limits INTERNAL_ERRORInternal server error Retry or contact support
Notes
Use TOKEN type instead of PERCENT when you know the exact amount to sell. It skips the on-chain balance fetch and reduces latency by ~10–20ms.
TOTAL mode is not available for sells — use CUSTOM for per-wallet control
Each wallet needs enough SOL to cover the priority fee
executedAt is a Unix timestamp in milliseconds — use it to verify actual timing between transactions
summary.totalDuration reflects the real elapsed time across all executions
What’s Next?
Delayed Buy Buy tokens with configurable delays between wallets
Instant Sell Execute all wallets in the same block for maximum speed
Priority Fee Configure transaction speed and cost
Platform Attribution Tag transactions with a DEX source