Orders and sniping
Orders run against explicit owned wallets. Create them with a master key and an idempotency key, then monitor the returned state and any resulting trades. Immediate Market orders continue to use POST /v1/trades/execute or the quote and trade endpoints described in Market trades.
Stop loss, DCA, and Pulse strategies
| Method | Path | Purpose |
|---|---|---|
POST |
/v1/trading-strategies |
Create one stop loss, DCA, or Pulse strategy |
GET |
/v1/trading-strategies |
List strategies, optionally filtered by walletId |
POST |
/v1/trading-strategies/dca/batch |
Create DCA buys for up to 30 wallets |
POST |
/v1/trading-strategies/:strategyId/pause |
Pause a strategy |
POST |
/v1/trading-strategies/:strategyId/resume |
Resume a paused strategy |
POST |
/v1/trading-strategies/:strategyId/stop |
Stop a strategy |
A stop_market request binds one active owned wallet and exact non-settlement token with triggerPriceUSD, sellPercentage of 25, 50, or 100, and optional slippage. Add triggerDirection: "above" to arm a take profit instead: it latches when the observed price is at or above the threshold and must be armed above the current price. Omit the field for a stop loss. Send side: "buy" with spendMicros (and no sellPercentage) for a limit buy: it latches at the target from the side it was armed on and then buys at market with up to spendMicros of the wallet's available settlement balance. Completed limit buys report completionReason: "bought" and spentMicros. Its body is a strict variant: do not send DCA or Pulse fields. The threshold activates a market sell rather than guaranteeing a fill price, so execution may fill lower. Price polling targets every 10 seconds but is not a timing guarantee. The percentage uses the sellable balance observed when the trigger is latched; deposits after the amount is frozen are excluded.
Stop-loss states are armed, paused, triggered, executing, completed, failed, and cancelled. Pause, resume, or cancel is allowed only before the trigger is latched. A delayed price update leaves the order armed. After triggering, recovery keeps the same frozen amount and one stable trade attempt across retries.
DCA binds allowanceMicros and intervalSeconds; buys use amountPerCycleMicros, while sells use side: "sell" and amountPerCycleRaw. Pulse uses price-step and circuit-breaker percentages. Their existing states and request fields remain unchanged. Use the OpenAPI schema for each variant.
DCA batch creation returns one outcome per wallet, with status: "created" and a strategy or status: "failed" and an error. Preserve the original body and idempotency key when recovering an interrupted request.
Sniper rules
Create rules through POST /v1/sniper-rules, list them with GET /v1/sniper-rules, and cancel an eligible rule with POST /v1/sniper-rules/:ruleId/cancel.
A rule identifies the chain, a deployer or ticker target, optional launchpad, watch duration, slippage, and wallet allocations. Settlement-funded allocations use amountMicros; native-funded allocations use amountRaw. Keep funding and feePayment explicit when the payment source matters.
Read the returned versioned feePolicy. Sniper fees have their own policy and payment terms. payPonsAntiSniperTax explicitly opts into early Pons execution under its tax policy; inspect those terms before enabling it.
Each wallet uses its own transaction, including grouped snipes and automatic sells. Monitor allocation-level state, tradeId, sellTradeId, and error as well as the rule's overall state. A rule can finish as partial_failed when only some allocations succeed. Cancellation does not reverse an already submitted trade.
Token launches
The deployment API supports Pons V2 launches. Read GET /v1/deployments/pons-v2/terms before constructing a launch. POST /v1/deployments includes the reviewed expectedTerms together with the wallet, token identity, pairing, and launch settings. If terms change, review the new terms before submitting another operation.
Use GET /v1/deployments and GET /v1/deployments/:deploymentId to follow the result. Asset upload and X-post lookup have separate endpoints in OpenAPI. Preserve the original deployment request and idempotency key while a launch is unresolved.
