Shadower — User Guide
Everything you need to know about setting up and using Shadower to copy trade on Polymarket.
What is Shadower? #
Shadower is a web app that automatically copies the trades of top Polymarket traders to your account. You pick the wallets you want to follow — Shadower monitors them in real time via blockchain WebSocket and places the same bets on your behalf. The bot runs 24/7 in the cloud, so it keeps copying even when your computer is off.
🎯 How it works
- You add a trader's wallet address
- Bot monitors it via Polygon blockchain
- Trader places a bet → Shadower copies it
- Your position updates in real time
🔧 What you need
- Polymarket account with USDC
- Your Polymarket CLOB key
- Any modern web browser
- No install · no Alchemy · no RPC key
Two modes
DRY-RUN Simulation
Bot runs without spending USDC. All actions are logged so you can test your strategy risk-free.
LIVE Real Trading
Bot executes real transactions on Polymarket. Requires your Polymarket CLOB key.
Getting Started #
Because Shadower runs in the cloud, the bot keeps copying trades even when your computer is off or your browser tab is closed.
Account & Login #
Shadower is a cloud service. Your account manages your subscription, your connected wallet, and your bot settings. Your private key is stored encrypted on our servers (see Security) so the bot can keep trading 24/7 even while you are offline.
Sign in options
Returning users
Your session stays signed in for ~30 days. Just open shadower.trade/app and you're back in. If the session expires, simply sign in again. Because the bot runs in the cloud, it keeps trading on your account whether or not you are signed in.
One account per user. Your subscription is personal — don't share your account. The bot runs server-side, so there is one active bot per account regardless of which browser or device you sign in from.
First-time Setup #
After login, the onboarding screen appears. Connect your wallet to enable LIVE trading.
DRY-RUN (simulation) works without any setup. You only need the key below to enable real trading.
1. Private Key
Your Polymarket CLOB key — the key for the wallet you want to trade from. Used to sign orders on Polymarket on your behalf.
- Format: 64 hex characters, optionally prefixed with
0x - Storage: Encrypted with AES-256-GCM via AWS KMS, never stored in plain text. Decryption is bound to your account, and the bot only places trades — never withdrawals. See Security.
Never share your private key with anyone. Use a dedicated wallet with only the funds you want to trade.
🌐 Signed up via Google / Email
Most Polymarket users. Your wallet is managed by Polymarket.
- Go to polymarket.com/settings
- Open the Export Private Key tab
- Confirm with your login → copy the key
🦊 Connected MetaMask / Rabby
If you connected an existing Web3 wallet.
- Open MetaMask → click account avatar
- Account details → Export private key
- Enter MetaMask password → copy the key
Option A — Polymarket Settings (Google / Email login)
Option B — MetaMask
2. Wallet Address
Your public wallet address (the one matching your private key).
- Format:
0x+ 40 hex characters - Example:
0xAbC1234...7890dEf - This must match the private key above
3. Language
Choose your preferred interface language. Available: English, Русский, Українська, Español, Português, Türkçe, 한국어, 中文.
Saving settings
Click Save. The app validates the data and starts the bot in DRY-RUN mode. You can change any setting later via the Settings button in the toolbar.
App Overview #
The main window is divided into 5 zones:
| Zone | Description |
|---|---|
| Toolbar | Mode toggle, all settings buttons, subscription status |
| Left panel | Statistics block + trader list + Add Trader button |
| Center | Tabs with trade history and bot log for each trader |
| Right panel | Currently open positions with live P&L + error log |
| Status bar | App version, active traders, mode, blockchain ping |
Toolbar #
| Button | What it does |
|---|---|
| DRY-RUN / LIVE | Current mode indicator (read-only label) |
| Live Trading | Toggle between DRY-RUN and LIVE mode. Bot restarts on toggle. |
| Ratio | Set copy coefficient (0.01%–100%). Opens a number input dialog. |
| Min Bet | Skip trader bets below this amount ($1–$100,000). |
| Limit/h | Max % of your balance to spend per hour. |
| Sell Mode | How to exit positions + Auto-Sell settings. |
| Settings | Change your connected wallet key, wallet address, language. |
| Active until… | Subscription status badge. Click to manage or upgrade. |
Traders Panel #
The left sidebar shows all wallets you're copying. Up to 5 traders can be active at once.
Adding a trader
0x + 40 hex characters.Find a trader's address on their Polymarket profile page (it's in the URL or shown on their page).
Not sure who to follow? Browse our curated leaderboard: View Top Polymarket Traders →
Managing a trader
Right-click any trader in the list (or hover and click ···) to open the context menu:
| Action | Description |
|---|---|
| Enable / Disable | Pause copying without removing the trader. Disabled traders show ○ instead of ●. |
| Rename | Change the display label. |
| Remove | Delete this trader. Their tab and history are removed. |
Trades Table #
The central area shows a tab for All traders combined, plus an individual tab for each trader you've added. Each tab contains a trades table and a log below it.
Table columns
| Column | Description | Example |
|---|---|---|
| Time | When the event occurred | 15:42:07 |
| Action | What the bot did (see below) | BUY |
| Side | Direction of the bet | Up / Down |
| Market | Polymarket event name | Bitcoin Up or Down - Mar 29 |
| Price | Token price in cents | 72¢ |
| Amount | Bet size in USDC | $5.40 |
Action types
| Action | Color | Meaning |
|---|---|---|
| BUY | Green | Trade was copied and submitted |
| SELL | Red | Position sold when trader sold |
| AUTO-SELL | Orange | Position sold automatically at target price |
| REDEEM | Orange | Winning token redeemed for USDC |
| SKIP | Gray | Trade ignored — see skip reasons |
Statistics Block #
The left panel shows 8 real-time metrics, updated every second while the bot is running:
| Metric | Description |
|---|---|
| Ratio | Current copy coefficient (e.g. 0.5%) |
| Copied | Number of trades copied this session. During trial: shows 3 / 10 |
| Min Orig Bet | Current minimum trader bet filter (e.g. $205) |
| Hourly | Hourly spend used vs. total allowed (e.g. $43 / $200) |
| Portfolio | Total account value: available USDC + value of all open positions |
| Cash | Available USDC not currently invested in positions |
| Uptime | How long the bot has been running this session |
| Src BC | Total blockchain events received from Polygon since bot started |
Open Positions #
The top-right panel shows all positions currently held by the bot, with live unrealized P&L.
| Column | Description |
|---|---|
| Market | Event name + outcome (Up/Down) |
| Price | Current market price of the token (in cents) |
| P&L | Unrealized profit/loss. Green = profit, red = loss |
At the bottom of the table: Total unrealized P&L for all open positions combined.
Positions are updated every second. P&L is calculated based on the current market price, not your entry price. It becomes realized when you SELL or REDEEM.
Log & Errors #
Bot Log (center-bottom)
Full history of everything the bot does, with timestamps:
| Color | Meaning | Example |
|---|---|---|
| Gray | Skipped trades, status messages | SKIP ($45 < $205) |
| White/colored | BUY / SELL actions | BUY Up 72¢ Bitcoin... |
| Orange | Auto-sell events | AUTO-SELL Up 99¢... |
| Red | Errors and failures | FAIL: order rejected |
The log is cleared when the bot restarts. To save a session's log, copy the text manually.
Errors Block (right-bottom)
Shows only error messages filtered from the main log. Use this panel to quickly spot issues without scrolling through all activity.
Status Bar #
| Field | Description |
|---|---|
| Shadower 1.1 | Current app version |
| Copying: ... | Names of traders being actively copied. Shows "—" if none. |
| Mode | DRY-RUN (gray) or LIVE (green) |
| Ping | Latency to the Polygon blockchain in milliseconds. Normal: 50–200ms |
Ratio (Coefficient) #
The ratio determines the size of your bet relative to the trader you're copying.
Your bet = Trader's bet × Ratio
Example: Trader bets $1,000 · Ratio = 5% → Your bet = $50
| Range | 0.01% to 100% |
| Default | 1% |
| Saved | With your account — applies the next time the bot evaluates a trade |
| Tip | Start at 1–5% while testing in DRY-RUN mode |
Min Bet #
Bets from traders that are smaller than this value are ignored (logged as SKIP). Useful for filtering out small/experimental trades.
If trader's bet < Min Bet → SKIP
Example: Min Bet = $200, trader bets $150 → SKIP
| Range | $1 to $100,000 |
| Default | $100 |
| Tip | Set higher ($200–$500) to only copy serious positions |
Hourly Limit #
Sets the maximum amount of USDC the bot can spend in any rolling 60-minute window, expressed as a percentage of your balance.
Max spend per hour = Balance × Hourly Limit %
Example: Balance = $1,000 · Limit = 20% → Max $200/hour
Once the limit is reached, all new trades are skipped until the oldest bets fall outside the 60-minute window.
Use this as a risk control to prevent the bot from over-betting during a highly active market period.
Sell Mode #
Controls what happens to your position when the copied trader sells their position.
| Mode | What happens | Best for |
|---|---|---|
| Ignore | Your position stays open. Bot never sells based on trader actions. | Manual traders who want full control over exits |
| Full | Bot sells 100% of your position when the trader exits. | Most users — mirrors the trader's full exit |
| Percentage | Bot sells only X% of your position (e.g. 50%). | Partially locking in gains while keeping exposure |
Recommended: Start with Full — it most faithfully mirrors your trader's behavior.
Auto-Sell #
An independent feature that automatically sells a position when its market price reaches your target threshold, regardless of what the trader does.
Auto-Sell: ON · Threshold: 99¢
Bought token at 72¢ → price rises to 99¢ → bot sells automatically
Profit: (99 - 72) / 72 ≈ 37.5%
| Default threshold | 99¢ |
| Range | 50¢ to 100¢ |
| Check interval | Every 1 second |
| Works in DRY-RUN | Yes (simulated) |
Auto-Sell is independent of Sell Mode. You can have Sell Mode = Ignore but still use Auto-Sell to take profit when a token approaches resolution.
DRY-RUN vs LIVE #
| DRY-RUN | LIVE | |
|---|---|---|
| Real transactions | ❌ No | ✅ Yes |
| USDC spent | ❌ No | ✅ Yes |
| Logged in app | ✅ Yes | ✅ Yes |
| Requires connected wallet (CLOB key) | ❌ No | ✅ Yes |
| Use for | Testing strategies risk-free | Real copy trading |
How to switch to LIVE
In LIVE mode, the bot spends real USDC. Start with a small Ratio (1–2%) and monitor the log closely for the first few hours.
How Copying Works #
When the bot is running, it monitors your traders' wallets via the Polygon blockchain WebSocket in real time. Here's the full flow for each copied trade:
trader's bet × Ratio, minimum $1LIVE: order submitted to Polymarket CLOB
Why Trades Are Skipped #
When a trade shows as SKIP in the log, one of these filters blocked it:
| Log message | Reason | Fix |
|---|---|---|
SKIP ($45 < $205) |
Trader's bet is below your Min Bet setting | Lower the Min Bet threshold |
SKIP (price 0.98 out of range) |
Token price is above 97¢ or below 3¢ | These are near-resolved markets — this is intentional |
SKIP (hourly $200/$200) |
Hourly spending limit reached | Wait for the hour to roll over, or increase the limit |
SKIP (stale event) |
Blockchain event is older than 120 seconds | Normal during startup warmup — not an error |
SKIP (trial limit) |
10 trial copies used up | Subscribe to continue |
Subscription & Trial #
Free Trial
- Duration: 3 days from account creation
- Copy limit: 20 trades
- Ends when either the time runs out OR 20 copies are used — whichever comes first
- Trial status shown in top-right badge: Trial: 2d 6h · 3/20
Paid Plans
| Monthly | Yearly | |
|---|---|---|
| Price | $27/month | $319/year |
| Per month | $27 | $26.58 |
| Savings | — | 2 months free |
| Copy trades | Unlimited | Unlimited |
| Support | Standard | Priority |
How to subscribe
Plans are prepaid for a fixed period and do not auto-renew. Crypto payments are irreversible — double-check the amount, network, and address before sending.
Subscription statuses
| Badge | Meaning |
|---|---|
| Trial: 2d 6h · 3/20 | Trial active — time and copies remaining |
| Active until 28.04.2026 | Paid subscription active |
| Expires 28.04.2026 | Active until the date shown; renew to continue after |
App Updates #
Because Shadower runs in the cloud, you are always on the latest version — there is nothing to download, install, or update. New features and fixes go live automatically.
If you have the app open during an update, just refresh the page to load the newest version. Your running bot is unaffected — it keeps trading server-side.
Security #
Shadower is a custodial service: to trade on your behalf, your private key is stored on our servers. Here is exactly how it is protected — and what the system can and cannot do.
| What | How it's protected |
|---|---|
| Private Key | Encrypted with AES-256-GCM using envelope encryption managed by AWS Key Management Service (KMS). The master key never leaves AWS KMS, the key is never stored in plain text, and every decryption is access-controlled and audit-logged. |
| Per-account binding | Decryption is cryptographically bound to your account (KMS encryption context). One user's key cannot be decrypted in the context of another — even in our own systems. |
| Trading only | The system uses your key solely to place orders on Polymarket according to your settings. It does not initiate withdrawals or transfers of your funds to any external address. |
| Cloud data | Your email and subscription status are stored in Supabase. Your encrypted key and bot settings are stored in our database — the key only ever as KMS-encrypted ciphertext. |
| Network | All connections use HTTPS/WSS (TLS encrypted). We run the blockchain infrastructure server-side — you don't need your own Alchemy or RPC key. |
Your primary protection — use a dedicated wallet. Create a separate Polymarket wallet for the bot and fund it only with the USDC you intend to trade. Never connect your main wallet or a wallet holding assets you are not actively trading.
Log Reference #
Every line in the log follows a pattern. Here's how to read it:
[15:42:07] +1240ms Trader 1 Up 72¢ Bitcoin Up or Down - Mar 29 $5.40 (x3)
[15:42:09] SKIP ($45 < $205)
[15:42:11] BUY placed: orderID=0x3f9a...
Line parts explained
| Part | Meaning | Example |
|---|---|---|
[15:42:07] | Local time the event was processed | HH:MM:SS |
+1240ms | Blockchain delay — how many milliseconds after the block was confirmed that Shadower received the event. Normal: 1000–2500ms. Only shown when delay > 1 second. | +1420ms |
Trader 1 | Label of the trader who placed the bet | Whale #1 |
Up / Down | Direction of the bet on the market | Up = betting the outcome happens |
72¢ | Price of the token in cents at the time of the trade (100¢ = $1 = certain outcome) | 72¢ = 72% implied probability |
$5.40 | Size of YOUR copied bet in USDC | Trader bet $750 × 0.72% Ratio = $5.40 |
(x3) | The trader placed this same bet 3 times in quick succession — grouped into one line | (x3) |
Common log messages
| Message | Meaning |
|---|---|
SKIP ($45 < $205) | Trader bet $45 but your Min Orig Bet is $205 — ignored |
SKIP (price 0.98 out of range) | Token is priced above 97¢ — market is near resolution, skipped by design |
SKIP (hourly $200/$200) | Hourly spending cap reached |
BUY placed: orderID=0x… | Order submitted to Polymarket successfully (LIVE mode) |
AUTO-SELL Up 99¢ … | Auto-sell triggered — position sold at target price |
REDEEM Win … | A winning outcome token was redeemed for USDC |
CLOB: initializing… | Bot is connecting to Polymarket's order system on startup |
CLOB: ready | Connection established, bot is ready to trade |
── Starting Shadower (LIVE) ── | Bot started in LIVE mode |
── Starting Shadower (DRY-RUN) ── | Bot started in simulation mode |
Loading… $11.72 (x3) | Startup warmup — bot is loading last 100 trades per trader to get context. Normal at launch. |
BC error: … | Blockchain WebSocket connection issue — bot will auto-reconnect |
Glossary
| Term | Meaning |
|---|---|
| USDC | USD Coin — a stablecoin pegged 1:1 to the US dollar. Used as currency on Polymarket. |
| CLOB | Central Limit Order Book — Polymarket's order matching system. All buy/sell orders go through it. |
| Outcome token | A token representing one possible result of a Polymarket event (e.g. "Yes" or "Up"). Resolves to $1 if the outcome is correct, $0 if not. |
| 72¢ | The current price of an outcome token. Roughly equals the market's implied probability of that outcome occurring (72% chance). |
| 99¢ | A token near $1.00 — means the market has almost fully resolved in that direction. Auto-Sell target is usually set here. |
| Up / Down | The two sides on price-based Polymarket events (e.g. "Will Bitcoin be Up or Down today?"). |
| P&L | Profit & Loss — the difference between what you paid and what the position is currently worth. |
| Unrealized P&L | P&L on a position you still hold. Becomes realized when you sell or redeem. |
| DRY-RUN | Simulation mode — bot runs all logic but submits no real orders. |
| Allowance | A permission you give Polymarket's smart contract to spend your USDC. Required once before first trade in LIVE mode. |
| Src BC | Source Blockchain — number of raw events received from the Polygon network since bot started. |
| Warmup | The startup phase where the bot loads the last 100 trades per trader to build context before live monitoring begins. |
Error Reference #
Red messages in the log or the Errors panel mean something went wrong. Here's what each one means and how to fix it:
| Error message | Cause | Fix |
|---|---|---|
BUY error (insufficient_balance) |
Not enough USDC in your wallet, or Polymarket's spending allowance hasn't been approved | Add USDC to your wallet. The bot will auto-retry and approve allowances. If it persists, restart the app. |
BUY error (size_too_small) |
Your calculated bet is below Polymarket's minimum order size (~$1) | Increase your Ratio setting, or lower Min Orig Bet so you copy larger trades. |
BUY error (duplicate) |
Polymarket rejected the order because an identical order already exists | Not a real error — happens occasionally with fast traders. Bot ignores it automatically. |
BUY error (market_closed) |
The market has closed or trading is paused | Normal — bot skips it automatically. No action needed. |
BUY error (other): … |
Unexpected error from Polymarket's API | Check the full error text. If it mentions "signature" or "key", verify your Private Key in Settings. |
SELL FAIL … |
Sell order was rejected by Polymarket | Usually a temporary API issue. Position remains open — you can sell manually on Polymarket.com. |
CLOB init error: … |
Bot couldn't connect to Polymarket's order system at startup | Check your Private Key and Wallet Address in Settings. Ensure they match. |
BC error: … |
Blockchain WebSocket connection dropped | The bot reconnects automatically — this is handled server-side. If it persists, contact support. |
| Red connection status (Disconnected) | Temporary loss of connection to the Polygon blockchain | The bot reconnects automatically when the connection is restored. Our servers handle the blockchain link — nothing to configure on your side. |
Order too small (0.0012 sh). Increase Ratio or Min Bet. |
The number of tokens to buy is too tiny to be valid | Raise your Ratio (e.g. from 0.5% to 2%) or lower Min Orig Bet to only copy larger trader positions. |
Most errors are temporary and resolve automatically. The bot is designed to skip failed orders gracefully and continue monitoring. If you see the same error repeatedly, that usually points to a configuration issue (wrong key, insufficient funds).
FAQ #
Why are my trades showing as SKIP?
Most common reasons: the trader's bet is below your Min Bet setting, the token price is outside the 3¢–97¢ range, or you've hit the hourly spend limit. Check the log message — it always says the exact reason.
What is DRY-RUN?
A simulation mode. The bot runs exactly as in LIVE — it monitors traders, evaluates bets, logs everything — but no real transactions are submitted. USDC is never spent. Use it to test your settings before going live.
The connection status shows red. What do I do?
This means the bot temporarily lost its connection to the blockchain. Shadower runs the blockchain infrastructure server-side and reconnects automatically — there is no Alchemy or RPC key for you to configure. If it stays red for a long time, refresh the page or contact support.
Do I need to keep my computer on?
No. The bot runs 24/7 in the cloud. Once you press Start, it keeps copying trades even when your computer is off or your browser tab is closed. You can sign in from any browser or device to check on it.
How do I find a trader's wallet address?
Go to Polymarket.com → open the trader's profile → the wallet address is in the URL or displayed on their page. It starts with 0x. You can also browse our leaderboard and top traders.
How do I cancel my subscription?
Open the subscription section in the app. Subscriptions are paid in cryptocurrency for a fixed period (monthly or yearly) and are not auto-renewing — you simply don't renew when the period ends. Your access stays active until the end of the period you paid for.
How many traders can I follow at once?
Up to 5 wallets simultaneously.
What happens when the trader wins and the token goes to $1.00?
Polymarket resolves the market and winning tokens become redeemable for $1 USDC each. If Auto-Sell is enabled at 99¢, the bot sells just before resolution. Otherwise, the bot performs a REDEEM action to claim the USDC.
What You Need #
| Component | Requirement |
|---|---|
| Device | Any computer, tablet, or phone with a modern web browser (Chrome, Firefox, Safari, Edge) |
| Install | None — Shadower runs entirely in the browser and in the cloud |
| Polymarket wallet | A Polymarket account with USDC, and its CLOB key |
| USDC balance | Recommended $100+ for LIVE mode (depends on your Ratio × trader bets) |
| Alchemy / RPC | Not needed — we run all blockchain infrastructure server-side |
You do not need to keep your computer on. The bot runs 24/7 on our servers, so it keeps copying trades even when you are offline. Sign in from any device to check on it.