Copy-Trade

Create a copy-trade subscription

Create a rule that mirrors chosen Solana wallets into a signed webhook and/or the copytrade:signals WebSocket channel. Which wallets fire depends on the running engine, reported on every rule as source_admission: any_wallet (production since 2026-10-04) = any valid source wallet, KOL or not, with no Wallet Tracker entry and no Wallet Tracker quota used; kol_only (legacy) = only active tracked KOL wallets (the set behind GET /api/v1/kol/wallets), other wallets are accepted but never fire. operational_state says whether the rule can fire right now. A source trade must be at most 10 s old by chain time or it is not executed. sizing_amount is SOL when sizing_mode=fixed, otherwise a multiplier of the source trade. Optional min_mc_usd/max_mc_usd band on the source trade's market cap — rows with unknown MC are dropped when the band is set, never assumed inside it. Returns webhook_secret once, never again. Quotas: PRO 3 rules × 5 wallets · ULTRA 20 × 50 · BUSINESS 100 × 250. PRO+.

post/copytrade/subscriptions

Request

  • Base URL: https://madeonsol.com/api/v1
  • URL: https://madeonsol.com/api/v1/copytrade/subscriptions
  • Auth: HTTP bearer

Request body

namestring
source_walletsstring[] required

Capped further by the tier's per-rule copytrade_wallets quota (PRO 5 / ULTRA 50 / BUSINESS 250), reported by GET /me as features.copytrade_wallets_per_rule.limit.

min_trade_solnumber
only_action'buy' | 'sell' | 'both'
sizing_mode'fixed' | 'proportional' | 'percent_source'
sizing_amountnumber required
delivery_mode'webhook' | 'websocket' | 'both'
webhook_urlstring uri

HTTPS only. Required unless delivery_mode is websocket.

min_mc_usdnumber nullable
max_mc_usdnumber nullable

Response

Created — the CopyTradeSubscription row (under subscription) plus the one-time webhook_secret

webhook_secretstring nullable

Shown once; null when delivery_mode is websocket.

notestring

Changes

No recorded changes to this operation across all 1 revision of this API.