Skip to content

Snipe / scalp

Status: Live | MCP tool: strategy_snipe_create

Dip-buy with a fast take-profit/stop exit -- many small round-trips on a short interval. Needs lookback + 1 ticks of rolling price history before it can enter, so give it time to warm up after creation.

Params

Param Type Default Meaning
wallet_address string required Agent's managed wallet address.
target_token string required Mint to trade.
usd_per_buy float required USD size per entry.
interval_seconds int 60 Tick cadence -- short, reads a rolling price window.
source_token string "USDC" Funding token.
lookback int 3 Ticks back for the dip-entry comparison close.
entry_dip_pct float 0.005 Dip below the lookback close that triggers an entry.
take_profit_pct float 0.01 Tight take-profit exit while holding.
stop_loss_pct float 0.005 Tight stop-loss exit while holding.
slippage_bps int 50 Max slippage per fill.

Direction (optional, all deterministic signals): direction_mode (auto | long_only | short_only | manual, default auto -- follow the detected market regime, reducing exposure in a bear instead of accumulating), allow_short (bool -- enable real shorts via the perps venue adapter), regime_override (bull | bear | range | volatile -- force a regime instead of trusting detection). All three are deterministic signals, not predictions -- DYOR.

risk (optional dict, all percent units, <= 0 disables that single guard; omitted keys keep the model's safe defaults): max_position_pct, max_portfolio_exposure_pct, max_single_loss_pct, max_drawdown_pct, max_daily_loss_pct.

Example create call

result = await client.call_tool("strategy_snipe_create", {
    "wallet_address": "<AGENT_PUBLIC_KEY>",
    "target_token": "So11111111111111111111111111111111111111112",
    "usd_per_buy": 20,
    "interval_seconds": 60,
    "lookback": 3,
    "entry_dip_pct": 0.005,
    "take_profit_pct": 0.01,
    "stop_loss_pct": 0.005,
})

A successful create returns strategy_id, strategy_type, status, schedule, and managed_signing (whether the wallet has a Turnkey signer -- false means each tick returns an unsigned tx to sign).

Policy interaction

Every create call runs through the same gate stack as a hand-built trade before it persists: rate limiting, identity/capability check, the per-wallet policy_gate (action strategy_create), USD-notional sizing against policy limits (derived from the USD budget param below), an idempotency check, and the platform kill switch. A wallet without a Turnkey signing key still gets the strategy -- each due tick returns an unsigned transaction for the owner to sign instead of executing autonomously.

Lifecycle

Every strategy type shares one lifecycle surface once created:

  • strategy_status(strategy_id, wallet_address) -- config, state, P&L, next tick.
  • strategy_modify(strategy_id, wallet_address, config_updates=..., risk=..., ...) -- retune in place without losing execution history; fields that define WHAT the strategy trades (target_token / source_token / tracked_wallet / venue / a composite definition) are immutable and refused -- cancel and create a new strategy to change those.
  • strategy_pause / strategy_resume -- manual pause and re-enable.
  • strategy_cancel(strategy_id, wallet_address) -- stop for good (terminal).
  • strategy_list(wallet_address, detail="concise"|"full") -- every strategy the wallet owns.

Full param docs for all six lifecycle tools: MCP tool reference.

See also