Automations
Automations are what happens when a Filter matches a trade. The filter says “this trade is interesting”; the automation decides what you want done about it: be told via email, simulate the trade on paper, or execute it on-chain with real capital.
Choosing an automation type
The first three types form a natural progression. You’ll often want all three running on the same filter at different stages. Discretionary Trading (user-controlled) is a separate mode for placing trades directly.
| Automation type | When to reach for it | Risk |
|---|---|---|
| Email Alert | You want to watch a strategy without doing anything automatically. Good for validating that a filter catches what you expect, and for staying informed about whales you’re not yet ready to copy. | None, informational only. |
| Paper Copy Trade | You’re past validation and want to track what would have happened if you copied. Full PnL accounting, position tracking, analytics: everything a real automation does, with simulated capital. The honest measurement of whether the strategy works. | None, no capital at risk. |
| Real Copy Trade | The paper version has proven out and you’re ready to put real money behind it. See Real Copy Trading Setup. | Real on-chain trades with your wallet. |
| Discretionary Trading | You want to place individual trades yourself through Airavat rather than auto-copying. Not attached to a filter. One per user. | Real on-chain trades with your wallet. |
A common pattern: email + paper trade on the same filter. The emails surface candidate trades for human review while the paper automation keeps an honest scoreboard.
Creating an Automation
- Go to the Automations tab
- Click the + button
- Step 1: Choose automation type
- Step 2: Fill in the form (see details below for each type)
- Click Create
Every automation (except Discretionary Trading) requires:
- Automation Name: a descriptive label (e.g., “Whale Trades Alert”)
- Filter: which trades trigger this automation. Cannot be changed after creation. Create a new automation to use a different filter.
- Active on creation: whether the automation starts processing immediately or stays inactive until you enable it
Email Alert
Sends you an email when a matching trade occurs.
Fields
| Field | Description | Required | Default |
|---|---|---|---|
| Email Address | Where to send notifications | Yes | N/A |
| Throttle Type | Hourly or Daily, the rate limit window | Yes | Daily |
| Max Emails | Maximum emails per window | Yes | 6 |
Throttle Limits
| Type | Range |
|---|---|
| Hourly | 1 to 6 emails per hour |
| Daily | 1 to 144 emails per day |
Once the limit is reached, additional matching trades are silently skipped until the window resets. The automation list shows your current throttle usage (e.g., “3/6 sent today”).
Paper Copy Trade
Simulates copying trades that match your filter. Tracks full PnL and position accounting without risking real capital. Use this to validate a strategy before going live with real copy trading.
Capital Settings
| Field | Description | Default | Validation |
|---|---|---|---|
| Starting Capital ($) | Total simulated capital for this strategy | $10,000 | Min $1 |
| Position Size (%) | Percentage of total capital to allocate per trade | 5% | 1 to 100% |
| Max Exposure (%) | Maximum percentage of total capital in a single position | 25% | 1 to 100% |
Example: With $10,000 starting capital and 5% position size, each new trade allocates $500. If the position grows via scale-ups, it can’t exceed 25% of total capital ($2,500).
Exit Behavior
Controls when and how positions are closed.
| Setting | What it does | Default |
|---|---|---|
| Follow sells | Exit when the trader you’re copying sells their position | ON |
| Proportional exits | Match the trader’s sell percentage instead of exiting fully. Only available when Follow sells is ON | ON |
| Hold until resolution | Keep positions open until the market resolves. When OFF, you must set a Sell-At Price | ON |
| Sell-At Price | Market-sell when the outcome price reaches this level to free up capital. Only shown when Hold until resolution is OFF. Any value greater than 0 and less than 1 is accepted. The default tracks the Sell post-resolution flag below: 0.99 when off, 0.999 when on. | (0, 1) exclusive |
| Sell post-resolution | Catch-all for late-resolving positions. When ON, market-sell once the resolution date has passed AND the last observed price is ≥ Sell-At Price. Useful when a market trades past resolution time and you want to capture intrinsic value rather than wait. Only shown when Hold until resolution is OFF. | OFF |
Scale-up
| Setting | What it does | Default |
|---|---|---|
| Scale-up enabled | When ON, every buy from any followed trader adds to an existing position: same trader uses proportional sizing, different trader uses fresh sizing, both clamped by Max Exposure. When OFF, the position freezes after the first buy and subsequent buys (from any trader) are skipped. | OFF |
Position Limits
Controls how the system handles multiple signals and conflicting trades.
| Setting | What it does | Default |
|---|---|---|
| Single entry per event | Skip entries into other markets within the same event if you already hold a position. Does not affect scale-ups on existing positions. | ON |
| Follow same trader hedges | Some traders buy both Yes and No on the same market (often when they expect the price to flip both ways or to lock in arbitrage). When ON, you mirror those opposing-side trades from the same trader. When OFF, opposing-side trades from the same trader are blocked. | ON |
| Follow other trader hedges | When ON, allow entries on the opposing side of a market even when you already hold a position from a different trader. Useful when you trust both traders to be right on each side (a natural hedge across views). When OFF, those opposite-side trades are blocked: contradicting signals cancel out and cost spread on both sides. | OFF |
| Max one market per trader | When ON, a trader who already contributes to a position on one market in this automation is skipped on new markets. Same-market hedges (Yes + No on the same market from the same trader) count as one market and are governed by the hedge flags above. | OFF |
| Max markets per trader | Numeric cap on the distinct markets a single trader can contribute to in this automation. 0 = no cap. Mutually exclusive with Max one market per trader, the input is hidden when that toggle is on. Same-market hedges count as one market. | 0 (no cap) |
Key rule: Opposing positions from different traders are blocked unless Follow other trader hedges is ON. By default, if Trader A buys Yes and Trader B then buys No on the same market, B’s trade is skipped: contradicting signals cost spread on both sides with no edge.
Behavior Preview
The form shows a live preview based on your current scale-up + hedge settings:
Follow : Trader A buys Yes → you open a Yes position
Scale up/Skip : Trader A buys Yes again (depends on Scale-up enabled)
Scale up/Skip : Trader B also buys Yes (depends on Scale-up enabled)
Follow/Skip : Trader D buys Yes on another market in the same event (depends on Single entry per event)
Follow/Skip : Trader A buys No (depends on Follow same trader hedges)
Follow/Skip : Trader C buys No (depends on Follow other trader hedges)Real Copy Trade
Executes actual on-chain trades on Polymarket using your own wallet and real capital. Same core configuration as Paper Copy Trade (capital, exits, entry rules), with a few additional settings specific to on-chain execution.
Requirements:
- A Polygon EOA wallet with its private key, funded with USDC (trading capital) and POL (gas).
For the full setup walkthrough, see Real Copy Trading Setup.
Wallet credentials
| Field | Description |
|---|---|
| Private Key | The private key of your signing EOA. 64 hex chars with or without 0x prefix. Masked on entry, encrypted at rest (AES-256-GCM). Locked after creation. |
| Funder Address | Optional. Your Polymarket proxy wallet address if you use MetaMask on Polymarket. Leave blank for standalone EOAs. Locked after creation. |
Additional settings
| Field | Description | Default | Range |
|---|---|---|---|
| Max Slippage (%) | Max price slippage vs the copied trader’s entry. Your order’s limit price is set to whale price ± slippage. If the market moved past this, the order won’t fill. Set to 0 to disable slippage protection (orders become pure market orders with no limit). | 5 | 0 to 5 |
| Unique across automations | Block entry if any other Real Copy Trade automation already has an open position on the same market or event. Prevents overlapping exposure across strategies. | OFF | N/A |
All trades execute as Fill-And-Kill market orders. Your order fills immediately at available prices; any unfilled portion is canceled.
Tracking
The Real Copy Trade automation detail page records transaction hashes linked to Polygonscan, on-chain confirmation status, actual fill prices (may differ from the copied trader’s entry due to slippage), and reconciliation events from the position-manager.
Discretionary Trading
Execute individual trades on Polymarket markets directly through Airavat, rather than auto-copying from a filter. Discretionary Trading is a standalone automation type: it is not attached to a filter, and only one Discretionary Trading automation can exist per user.
Requirements:
- A Polygon EOA wallet with its private key, funded with USDC (trading capital) and POL (gas).
Setup
- Go to the Automations tab and click the + button
- Select Discretionary Trading
- Enter an automation name (defaults to “Discretionary Trading”)
- Enter wallet credentials:
- Private Key: 64 hex chars with or without
0xprefix. Encrypted at rest (AES-256-GCM). Locked after creation. - Funder Address: optional Polymarket proxy wallet address for MetaMask users. Locked after creation.
- Private Key: 64 hex chars with or without
- Click Create
The wallet must be the same one you use on Polymarket, and it must be dedicated exclusively to Airavat discretionary trading. Do not trade directly on Polymarket with the same wallet while a Discretionary Trading automation is active.
If the signer wallet has low POL, a gas balance warning appears during setup.
Placing trades
Once configured, navigate to any market detail page. The trading interface shows:
- Current outcome prices (YES/NO)
- Your open positions for that market (if any)
- BUY and SELL controls with amount input (in dollars or shares)
All trades execute as Fill-And-Kill market orders: your order fills immediately at available prices; any unfilled portion is canceled.
After placing a trade, the position appears in your Discretionary Trading automation’s detail page. Sells on open positions submit a FAK sell order; the position shows as Pending until on-chain settlement (typically within seconds).
Tracking
The Discretionary Trading automation detail page tracks all positions and realized PnL, similar to a Real Copy Trade automation but without filter-driven automation.
Automation Detail Page
Click any automation row to see the full detail view. The tabs differ by automation type.
Discretionary Trading Automations
The Discretionary Trading detail page shows the same structure as Copy Trade automations (Performance, Open Positions, Closed Positions, Trade Activity, Analytics, Audit Log, Settings), but without filter-related configuration since Discretionary Trading is not attached to a filter.
Email Automations
Tabs: Email Activity, Audit Log, Settings.
- Email Activity: Send history with timestamp, recipient, status (sent / throttled / failed), and current throttle usage.
- Audit Log: Configuration change history with timestamp, operation, and before / after diffs.
- Settings: Edit the automation’s configuration (the filter stays locked).
Copy Trade Automations (Paper and Real)
Seven tabs, with Performance as the default landing tab:
Performance, Open Positions, Closed Positions, Trade Activity, Analytics, Audit Log, Settings.
- Performance: Default tab. Five summary cards on top, equity curve below. See Performance tab.
- Open Positions: Live positions with the followed trader(s), market, outcome, entry price, current price, $ size, unrealized PnL, opened-at and resolves-at timestamps, and any anomaly or pending-state badge on the row. Sortable, paginated at 20 per page. Each open position row has a Close button to manually exit. A Close All button at the top of the tab closes every open position sequentially (confirmation required). For Paper, closes are immediate at current price. For Real Copy Trade and Discretionary Trading, closing submits a Fill-And-Kill sell order per position; each position shows a Pending badge until on-chain settlement (typically within seconds). See Troubleshooting: Manual position close for edge cases. Real Copy Trade positions can also show a Pending badge while a buy or scale-up order settles on-chain (see Pending positions).
- Closed Positions: Fully exited positions with the followed trader(s), market, outcome, status, size, exit price, realized PnL, and closed-at timestamp. Each row also surfaces the exit type as an inline label:
Sell,Sell Auto,Manual,Resolution, orReconciliation. Sortable, paginated. - Trade Activity: Every event the automation has executed. See Trade Activity tab.
- Analytics: Aggregated performance metrics. See Analytics tab.
- Audit Log: Configuration change history with before / after diffs. Includes toggle events (enable / disable), config edits, and creation.
- Settings: Edit the automation’s configuration. The filter and (for Real Copy Trade) wallet credentials stay locked. For Real Copy Trade automations, this tab also surfaces the signer wallet’s POL balance with a Low Gas Balance warning when the balance is below the threshold needed for the next trade.
Performance tab
The default tab on every Paper and Real Copy Trade automation. Two sections: a row of summary cards and an equity curve below.
Summary cards (5):
| Card | Shows | Tooltip |
|---|---|---|
| Effective Capital | Starting capital + realized PnL + unrealized PnL on open positions, with breakdown lines for Starting / Realized / Unrealized / Available | Marked-to-market value that moves with live prices |
| Total PnL | Realized + unrealized PnL combined; breakdown lines for Unrealized, Realized, and Peak (all-time peak total PnL, updated every 5 minutes and on page view) | Marked-to-market |
| Total Return | Total PnL as a percentage of starting capital | Marked-to-market |
| Win Rate | Count-based win rate plus raw W/L count | Closed positions only; open positions don’t count until they resolve |
| Positions | Total positions count, broken down as open / closed / resolved, with Peak Open showing the all-time max simultaneously-open position count |
Equity curve: A three-pane chart titled “Equity w/ Realized PnL, Realized Drawdown, Open positions”. The panes share an x-axis (the automation’s lifetime).
| Pane | Color | What it shows |
|---|---|---|
| Top | Green line | Starting capital plus cumulative realized PnL. Excludes unrealized PnL on open positions. Capital adjustments (manual edits to the automation’s capital) appear as colored dots on the line: green for additions, red for removals. |
| Middle | Red line | Peak-relative drawdown of realized PnL only. Capital edits do not reset the drawdown. The line tracks how far below your best-ever realized PnL you are. $0 at the bottom; the line spikes up as drawdown grows. |
| Bottom | Blue line | Number of positions open at each point. Stepped: an entry adds 1, a full close subtracts 1, partial sells are no-ops. |
The chart is downsampled for smooth rendering on long-running automations. The downsample count is shown in the top-right of the card.
Pending positions (Real Copy Trade)
When a Real Copy Trade buy or scale-up is in flight on-chain, the position appears in the Open Positions table with:
- The row dimmed (muted background and foreground)
- A blue Pending badge in the PnL column. For scale-ups with a known size, the badge shows
Pending +$NNNindicating the additional size in flight. - The close button replaced with a disabled Pending button. Hover tooltip: “The buy is still settling on-chain. You can close it once it lands (usually within seconds).”
If the on-chain order cancels with zero fill (typically because the market price moved past your slippage limit before the order arrived), the row silently disappears (for fresh buys) or reverts to the pre-scale-up size (for scale-ups). No manual intervention is needed.
A separate Awaiting Redemption badge (amber) surfaces resolved positions that need POL gas to be redeemed on-chain. Fund the signer with POL and they redeem automatically.
Trade Activity tab
Every event the automation has produced: buys, scale-ups, partial sells, full closes, auto-sells, resolutions, reconciliations, redemption failures, and CLOB-level failed attempts. Columns: timestamp, event type, trader, side, price, shares, amount, status, and (for Real Copy Trade) transaction hash linked to Polygonscan. Failed entries include the error message inline.
Filter dropdown at the top of the tab. Options:
| Filter | What it shows |
|---|---|
| Important | All meaningful events. The default. |
| Wins & Losses | Settled rows (closes and resolutions) with a final Won / Lost outcome |
| All types | Every recorded event |
| Buy | Fresh entries |
| Scale Up | Follow-on buys that grew an existing position |
| Partial Sell | Partial exits |
| Full Sell | Full closes |
| Auto Sell | Sell-At Price or Sell post-resolution triggers |
| Manual Sell | Sells you triggered from the dashboard Close button |
| Resolution | Market-resolved events |
| Redemption Failed | On-chain redemption failed after retry; needs manual intervention (see below) |
| Recon Closed | Reconciliation: position discovered closed on-chain when expected open |
| Recon Adjusted | Reconciliation: position size adjusted to match on-chain reality |
Won / Lost badges appear next to the event type for settled rows where the outcome is known. They are intentionally not shown on Redemption Failed rows: the trade was settled but the funds have not yet been redeemed, so showing “Won” alongside a red “Redemption Failed” badge would be misleading.
Skipped events (filter-skip and zero-fill cancellations) are not written as individual rows in the activity log. They are aggregated server-side to keep the activity feed scannable. CLOB-level failures on buy / scale-up / sell events still appear as Skipped {event} rows with the failure reason in a tooltip.
Edited rows carry an orange “Edited” badge and a left border, indicating the configuration was changed after the event ran (e.g., follow-up edits to the automation’s settings).
Redemption failures specifically mean: the market resolved, the position was eligible to redeem on-chain for its full payout, and the on-chain redemption transaction failed after the retry budget. The most common cause is insufficient POL gas on the signer wallet. Resolution: top up POL on the signer, then redeem manually from the position’s row.
Analytics tab
Available on Paper and Real Copy Trade automations with at least one closed position. Computed by a batch job that refreshes every 30 minutes; the Processed timestamp at the top of the tab shows the last computation time.
Summary metrics (12 cards):
| Metric | Meaning |
|---|---|
| Realized PnL | Total realized profit or loss across closed positions |
| Return | Realized PnL as a percentage of starting capital |
| Win Rate | Percent of closed positions that were profitable, with raw W/L count |
| $W-Win % | Dollar-weighted win rate. Weights each position by its size. |
| Sharpe Ratio | Risk-adjusted return. Above 1 is good, above 2 is excellent. |
| Sortino Ratio | Like Sharpe but penalizes only downside volatility |
| Profit Factor | Total winning PnL divided by total losing PnL. Above 1 means net profitable. |
| Max Drawdown | Largest peak-to-trough equity decline, shown as both dollars and percent |
| Kelly Fraction | Optimal bet size based on historical edge. Negative values indicate no edge. |
| Avg Hold Time | Mean time a position is held from entry to exit |
| Avg Win | Mean realized PnL across winning positions |
| Avg Loss | Mean realized PnL across losing positions |
Performance Breakdown: a table that slices the same metrics by a dimension you pick from the dropdown.
| Dimension | What it groups by |
|---|---|
| By Trader | Each copied trader’s address. Paged, 20 per page. Shows additional risk columns (Sortino, Max DD %, Profit Factor) pulled from the trader’s global stats. Hover over a trader row to see quick-action icons: add to filter whitelist, add to filter blacklist, run AI analysis, and open the trader’s profile in a new tab. Clicking the trader name itself navigates to their profile in the current tab. |
| By Trader Score | Buckets of Trader Score |
| By Trader Sharpe | Buckets of the trader’s global Sharpe |
| By Trader Sortino | Buckets of the trader’s global Sortino |
| By Trader Max Drawdown | Buckets of the trader’s global max drawdown |
| By Trader Profit Factor | Buckets of the trader’s global profit factor |
| By Trader Kelly | Buckets of the trader’s global Kelly fraction |
| By Trader Win Rate | Buckets of the trader’s global win rate |
| By Trader Trade Size | Buckets of the copied trader’s original trade size |
| By Market Tag | Polymarket tag (Politics, Sports, etc.). Paged, 20 per page. |
| By Market Volume | Buckets of total market volume at entry time |
| By Hour of Day | Entry hour in UTC (0 to 23) |
| By Entry Price | Buckets of the outcome price at entry |
| By Exit Price | Buckets of the outcome price at exit |
All tables include Trades count, Total PnL, Avg PnL, Win Rate, and Avg Return. Every column is sortable. Switching the dimension resets paging and sort to defaults.
Edge cases:
- If the automation has no closed positions, the tab shows an empty state.
- If the batch job has not yet computed analytics for this automation (first run pending), the tab shows “Analytics not yet computed” and retries on each visit.
- Metrics with insufficient data (e.g. Kelly on 3 trades) display as a placeholder.
Managing Automations
- Enable/Disable: toggle on each automation row
- Edit: modify configuration. Filter cannot be changed.
- Delete: confirmation required
Tips
- Start with email alerts to validate your filter catches what you expect before risking capital
- Then add paper copy trade to the same filter to track simulated performance alongside the alerts
- One filter, multiple automations: a single filter can power any number of automations
- Throttle conservatively at first: high-volume filters can generate many matches