Pods
Pods are what happens when a Filter matches a trade. The filter says “this trade is interesting”; the pod 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 pod 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.
| Pod type | When to reach for it | Risk |
|---|---|---|
| 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. Choose between email delivery or push to the Activity Tab. | 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 pod 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: alert + paper trade on the same filter. The alerts surface candidate trades for human review while the paper pod keeps an honest scoreboard.
The Pods tab
The Pods tab lists everything you have set up, grouped into three tables: Real Trade, Paper Trade, and Alerts. Each row has an on/off toggle, the attached filter, and (for trading pods) capital, PnL, and return columns.
When you have one or more trading pods, a row of aggregate performance cards sits above the tables, summing across all of them: Effective Capital, Total PnL, Total Return, Win Rate, and Positions (open / closed / resolved).
Pod limit: your plan caps how many pods can be active at once. The header shows your current count against the cap, and Create is disabled once you reach it. Disable or delete an pod to free up a slot.
Creating an Pod
- Go to the Pods tab
- Click the + button
- Step 1: Choose pod type
- Step 2: Fill in the form (see details below for each type)
- Click Create
Every pod (except Discretionary Trading) requires:
- Pod Name: a descriptive label (e.g., “Whale Trades Alert”)
- Filter: which trades trigger this pod. Cannot be changed after creation. Create a new pod to use a different filter.
- Active on creation: whether the pod starts processing immediately or stays inactive until you enable it
Alert
Notifies you when a matching event occurs. You choose the delivery method at creation time.
Delivery method
| Method | What it does |
|---|---|
| Sends an email to a specified address. Subject to throttle limits (see below). | |
| Activity Tab | Pushes the match directly to the Activity Tab in real time. No throttle; every match is delivered immediately. |
The delivery method is locked after creation. To switch from email to activity tab (or vice versa), create a new alert. You can have both an email alert and an activity-tab alert on the same filter.
Fields (Email delivery)
These fields only appear when email delivery is selected:
| Field | Description | Required | Default |
|---|---|---|---|
| Email Address | Where to send notifications | Yes | N/A |
| Max Emails per Hour | Cap on emails sent within a rolling one-hour window | Yes | 6 |
Throttle Limit (Email only)
Email alerts are capped at a maximum of 6 per hour. Once the cap is reached, additional matching trades are silently skipped until the rolling one-hour window moves forward. The pod list shows your current usage (e.g., “3/6 sent this hour”).
Activity-tab alerts have no throttle. Every match appears on the Activity Tab immediately.
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 Sizing (%) | Percentage of total capital to allocate per trade (and for fresh-sized scale-ups) | 5% | 0.1 to 100% |
| Max Exposure (%) | Cap on how large a single position can grow via scale-ups. Only applies when Scale-up is enabled; it has no effect otherwise, since a non-scaling position is bounded by Position Sizing alone. | 5% (when scale-up is on) | 0.1 to 100% |
Example: With $10,000 starting capital and 5% position sizing, each new trade allocates $500. With Scale-up enabled, the position can grow via follow-on buys up to the Max Exposure cap (set it to 25% and that ceiling is $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 pod 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 pod. 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.
Rate Limit
| Setting | What it does | Default | Range |
|---|---|---|---|
| Max Trades per Hour | Maximum number of trades executed per rolling one-hour window. Once the limit is reached, additional matching trades are skipped until the window rolls forward. | 50 | 1 to 50 |
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 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 funded Polygon wallet. You can let Airavat create and manage one for you (Custodial) or bring your own (BYOK). Either way the wallet needs USDC.e or pUSD for trading capital and POL for gas.
For the full setup walkthrough, see Real Copy Trading Setup; for funding, withdrawals, and transfers, see Wallets, Deposits & Withdrawals.
Wallet mode
At creation you choose how the trading wallet is provisioned:
| Mode | What it is |
|---|---|
| Custodial | Airavat generates a dedicated trading wallet for you. The key is created inside a hardware security module and is non-extractable. You fund it by depositing to the address shown after creation. The simplest path. |
| BYOK (Bring Your Own Key) | You supply the private key of a Polygon wallet you control. You keep the key; Airavat encrypts and isolates it for signing only. |
Wallet credentials
Custodial: no key to enter. Optionally set a Withdrawal Address (where funds are sent when you withdraw). The trading wallet address is shown after creation so you can fund it.
BYOK:
| Field | Description |
|---|---|
| Private Key | The private key of your signing wallet. 64 hex chars with or without 0x prefix. Masked on entry; encrypted and isolated in a hardware-backed signing service (see Security and credentials). Locked after creation. |
| Polymarket Address | Your Polymarket proxy (Safe) wallet address, where your Polymarket balance and positions live. Locked after creation. |
| Withdrawal Address | Required. The address funds are sent to when you withdraw. Pre-filled with your wallet address; you can change it (e.g. to an exchange deposit address). Locked after creation. |
Starting capital is not entered for real trading. It is read live from the wallet’s on-chain balance.
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 pods | Block entry if any other Real Copy Trade pod already has an open position on the same market or event. Prevents overlapping exposure across strategies. | OFF | N/A |
Rate Limit
| Setting | What it does | Default | Range |
|---|---|---|---|
| Max Trades per Hour | Maximum number of trades executed per rolling one-hour window. Once the limit is reached, additional matching trades are skipped until the window rolls forward. | 20 | 1 to 20 |
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 pod 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.
Discretionary Trading
Execute individual trades on Polymarket markets directly through Airavat, rather than auto-copying from a filter. Discretionary Trading is a standalone pod type: it is not attached to a filter, and only one Discretionary Trading pod 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 Pods tab and click the + button
- Select Discretionary Trading
- Enter an pod name (defaults to “Discretionary Trading”)
- Enter wallet credentials:
- Private Key: 64 hex chars with or without
0xprefix. Encrypted and isolated in a hardware-backed signing service. Locked after creation. - Polymarket Address: your Polymarket proxy (Safe) wallet address. Locked after creation.
- Withdrawal Address: required. Where funds are sent when you withdraw. Pre-filled with your wallet address; editable to another address. 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 pod 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 for buys, shares for sells)
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 pod’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 pod detail page tracks all positions and realized PnL, similar to a Real Copy Trade pod but without filter-driven pod.
Pod Detail Page
Click any pod row to see the full detail view. The tabs differ by pod type.
Discretionary Trading Pods
The Discretionary Trading detail page shows the same structure as Copy Trade pods (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.
Alert Pods
Tabs: Alert Activity, Audit Log, Settings.
- Alert Activity: Delivery history with timestamp, status (sent / throttled / failed / delivered), and (for email delivery) current throttle usage.
- Audit Log: Configuration change history with timestamp, operation, and before / after diffs.
- Settings: Edit the pod’s configuration. The filter and delivery method stay locked.
Copy Trade Pods (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:
Sold,Manual,Manual Sell,Resolved,Reconciled, orPre-existing. Sortable, paginated. - Trade Activity: Every event the pod 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 pod’s configuration. The filter and (for Real Copy Trade) wallet credentials stay locked. For Real Copy Trade pods, 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 pod. 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 pod’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 pod’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 pods. 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 pod 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 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 pod’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 pods with at least one closed position. Recomputed 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 pod has no closed positions, the tab shows an empty state.
- If analytics have not yet been computed for this pod (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 Pods
- Enable/Disable: toggle on each pod row
- Edit: modify configuration. Filter cannot be changed.
- Delete: confirmation required
Tips
- Start with 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 pods: a single filter can power any number of pods
- Throttle conservatively at first: high-volume filters can generate many matches