Skip to main content
Copy trading on Bravado subscribes your wallet to a leader’s trading activity so that every fill the leader receives is automatically mirrored on your account. The engine monitors the Polymarket CLOB in real time, when the leader’s order fills, Bravado immediately executes an equivalent trade on your behalf, applying your configured sizing rules and risk controls before the order touches the market. All copy-trade configuration happens through endpoints under /v2/trade/copytrade.
Use simulation mode to paper-trade a leader’s strategy before committing real capital. Simulation tracks all fills against live CLOB prices without executing on-chain transactions, giving you a realistic preview of how a strategy would have performed.

Why Bravado over the native endpoints

There is no comparison to draw here: Polymarket has no copy-trading. Building it yourself means watching the chain for a leader’s fills, deciding your size, and racing to execute before the price moves, then handling the case where you are short of collateral mid-mirror. Bravado runs that as a managed subscription. Two things make it usable as a product rather than a script:
  • Any public wallet can be a leader. They do not need a Bravado account, and are not notified. You can evaluate a candidate’s full history first with the Data API, then subscribe.
  • You can paper-trade the strategy first. Simulation runs the whole subscription against live prices without executing on-chain, so a follower can see how a leader would have performed for them before committing collateral.

Fees

The Copytrade API charges 25 bips (0.25%) per side, applied to both the maker and the taker on every mirrored fill. Basis points are hundredths of a percent, so 25 bips is 0.25% of notional. Fees are collected through Bravado builder codes, applied automatically to mirrored orders. No configuration is required to start copy trading.
Copy trading is priced above the Trade API, which charges 10 bips per side. Orders you place directly are charged at the Trade API rate; fills mirrored by a copytrade subscription are charged at this rate.

Need your own builder codes?

If you need a custom setup running your own builder codes rather than Bravado’s, reach out to support@bravadotrade.com and the team will get you configured.

How it works

1

Leader places a trade

The leader submits an order on Polymarket through any interface, the Bravado API, the Polymarket web app, or any other client.
2

Engine detects the fill

Bravado’s real-time fill monitor detects the on-chain order fill for the leader wallet and parses the trade details: market, outcome, side, size, and price.
3

Sizing and filtering applied

The engine applies your subscription’s sizing mode, market filters, and date filters to determine whether to copy the trade and at what size.
4

Order executed on follower wallet

If the trade passes all filters, Bravado submits a market order on your wallet. The fill happens at the live CLOB price at execution time, which may differ slightly from the leader’s fill price.
You control which direction to copy (buys only, sells only, or both), what size to trade, and which markets to include or exclude.

Sizing modes

Sizing modes define how Bravado calculates the notional size of each copied trade. Buy-side and sell-side modes are configured independently.

Filters

Filters let you limit which of the leader’s trades your subscription copies.
  • market_ids_include: Only copy trades in the listed market IDs. All other markets are ignored.
  • market_ids_exclude: Copy all trades except those in the listed market IDs. Useful for excluding specific markets while still following the leader broadly.
market_ids_include and market_ids_exclude are mutually exclusive, supply one or the other, not both.
  • tags_include: Only copy trades in markets tagged with at least one of the listed tags (e.g., ["politics", "crypto"]).
  • tags_exclude: Skip trades in markets that carry any of the listed tags.
  • copy_start_date: Ignore any leader fills before this ISO 8601 timestamp.
  • copy_end_date: Stop copying leader fills after this timestamp. The subscription remains active but stops mirroring trades.

Risk controls

Risk controls run on your existing copied positions after they fill. They do not affect the initial copy trade execution.

Take-profit levels

An array of { trigger_bps, portion_bps } objects. When the outcome token price rises by trigger_bps basis points above your average cost, Bravado sells portion_bps of your remaining shares.

Stop-loss levels

An array of { trigger_bps, portion_bps } objects. When the token price falls by trigger_bps basis points below your average cost, Bravado sells portion_bps of your remaining shares.

Close at price

close_at_price: automatically close the entire copied position when the token price reaches this decimal probability value (0.001–0.999).

Max hold duration

max_hold_seconds: automatically close the position after this many seconds, regardless of price. Useful for avoiding exposure to slow-resolving markets.

Insufficient funds handling

If your wallet lacks sufficient pUSD to fully fund a copied buy at the configured size, the buy_insufficient_usdc_action field controls the fallback behavior: Set this field at subscription creation time to avoid silent skips on underfunded accounts.

Simulation mode

Simulation mode lets you paper-trade a leader subscription without executing any real on-chain transactions. All copied fills are recorded against live CLOB midpoint prices, giving you a realistic equity curve for the strategy. Enable simulation at subscription creation:
Simulation is the best way to evaluate a leader before committing real funds. Run a simulation for several days across different market conditions, then review the paper equity curve at GET /v2/trade/copytrade/simulation before switching is_simulation to false.
View your paper portfolio at any time:
Reset the simulation to start a fresh evaluation:
Resetting clears all paper fills and restarts the equity curve from zero, useful when you change sizing or filter parameters and want a clean comparison.

Subscription lifecycle

A copy-trade subscription moves through three statuses. Use PATCH /v2/trade/copytrade/{id}/status to transition between them.
Pause a subscription when you want to temporarily stop copying new trades without losing your configuration. Disable it only when you intend to permanently remove it.