copyclaw
CopyClaw: Set up a Polymarket MCP server, create a wallet, fund it, discover top traders, and auto-mirror their trades in under 2 seconds
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
CopyClaw: Set up a Polymarket MCP server, create a wallet, fund it, discover top traders, and auto-mirror their trades in under 2 seconds
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Set up complete Quantish prediction market trading system (Discovery + Polymarket + Kalshi + Limitless MCP servers)
Trade prediction markets on Kalshi via Quantish MCP (Solana/DFlow)
Trade prediction markets on Polymarket via Quantish MCP
| name | copyclaw |
| version | 1.0.0 |
| description | CopyClaw: Set up a Polymarket MCP server, create a wallet, fund it, discover top traders, and auto-mirror their trades in under 2 seconds |
| author | Quantish |
| tags | ["trading","polymarket","copy-trading","prediction-markets","automation"] |
| tools | ["mcp__quantish__request_api_key","mcp__quantish__setup_wallet","mcp__quantish__set_approvals","mcp__quantish__get_wallet_status","mcp__quantish__get_balances","mcp__quantish__get_top_traders","mcp__quantish__get_trader_profile","mcp__quantish__copy_trade_follow","mcp__quantish__copy_trade_unfollow","mcp__quantish__copy_trade_list","mcp__quantish__copy_trade_update","mcp__quantish__copy_trade_history","mcp__quantish__copy_trade_status","mcp__quantish__place_order","mcp__quantish__get_positions"] |
Mirror any Polymarket trader's buys and sells automatically. Detection via real-time WebSocket, execution in under 2 seconds.
Before anything works, you need the Polymarket MCP server connected in your Claude Code config.
Add this to your ~/.claude.json (or the project's .claude.json) under "mcpServers":
{
"mcpServers": {
"quantish": {
"type": "sse",
"url": "https://quantish-sdk-production.up.railway.app/mcp",
"headers": {
"x-api-key": "YOUR_API_KEY_HERE"
}
}
}
}
If you don't have an API key yet, proceed to Step 1 first using a temporary key, or ask the user for one.
Call request_api_key to create an account and get your key:
request_api_key(externalId: "user@example.com")
externalId is required — use an email, user ID, or any unique identifier{ apiKey: "pk_live_...", userId: "...", isNew: true/false }After getting the key, update the x-api-key header in the MCP server config and reconnect.
Run these two commands in order:
setup_wallet()
This deploys a Gnosis Safe wallet on Polygon, generates API credentials for the Polymarket CLOB, and configures everything. It takes ~10-30 seconds. Wait for it to complete.
Then set trading approvals:
set_approvals()
This approves the USDC, CTF (conditional token), and Neg Risk contracts so your wallet can trade. Gasless via relayer.
Verify everything worked:
get_wallet_status()
You should see:
safeDeployed: truehasApiCredentials: trueapprovals: { usdc: true, ctf: true, negRisk: true }Your wallet needs USDC on the Polygon network to trade.
Get your deposit address:
get_wallet_status()
Look for the safeAddress field — that's your Polygon deposit address (starts with 0x).
Send USDC to that address on the Polygon network. Both USDC.e (bridged) and native USDC work. Even $5-10 is enough to start copy trading.
Verify the deposit landed:
get_balances()
Check the safe.usdc field shows your balance.
Important: This is a Polygon address. Do NOT send tokens on Ethereum, Base, Solana, or any other chain. USDC on Polygon only.
Browse the Polymarket leaderboard:
get_top_traders(category: "OVERALL", timePeriod: "WEEK", orderBy: "PNL", limit: 10)
Parameters:
category: OVERALL, POLITICS, SPORTS, CRYPTO, CULTURE, WEATHER, ECONOMICS, TECH, FINANCEtimePeriod: DAY, WEEK, MONTH, ALLorderBy: PNL (profit and loss) or VOL (volume)limit: 1-50 (default 20)Returns a ranked list with wallet addresses, PNL, volume, and number of markets traded.
Inspect a specific trader:
get_trader_profile(address: "0x...")
Returns: display name, bio, X/Twitter handle, profile image, verification status. Useful for deciding who to follow.
Follow a trader:
copy_trade_follow(
targetWallet: "0x1234...abcd",
allocationMode: "FIXED_AMOUNT",
allocationValue: 2,
maxTradeSize: 10,
minTradeSize: 1,
copyBuys: true,
copySells: true
)
Parameters explained:
targetWallet (required): The Polygon wallet address of the trader to copyallocationMode (optional, default PERCENTAGE): How to size your copy tradesallocationValue (optional, default 10): Value for the mode (see table below)maxTradeSize (optional): Safety cap in USDC per trademinTradeSize (optional, default $1): Ignore target trades below this USDC valuecopyBuys (optional, default true): Mirror BUY tradescopySells (optional, default true): Mirror SELL trades| Mode | allocationValue meaning | Example |
|---|---|---|
FIXED_AMOUNT | Dollars to spend per copy trade | 2 = spend $2 per trade, regardless of target size |
PERCENTAGE | Percentage of target trade value | 50 = if target buys $100, you buy $50 |
MIRROR_SIZE | (ignored) Exact share count match | Target buys 10 shares, you buy 10 shares |
Recommended for beginners: FIXED_AMOUNT with allocationValue: 2 and maxTradeSize: 10.
copy_trade_status()
Shows: active monitors, RTDS WebSocket connection status, detection stats, concurrent capacity.
copy_trade_list()
Shows all followed traders with: allocation settings, copy count, success/fail counts, active status.
copy_trade_history(limit: 20)
Every copied trade with: status (SUCCESS/FAILED/SKIPPED), target trade details, copy size, latency in ms, error message if failed.
Filter by trader:
copy_trade_history(targetWallet: "0x...", limit: 50)
copy_trade_update(
targetWallet: "0x...",
allocationValue: 5,
maxTradeSize: 20
)
Change any parameter on an active subscription. To pause without unfollowing:
copy_trade_update(targetWallet: "0x...", isActive: false)
Resume:
copy_trade_update(targetWallet: "0x...", isActive: true)
copy_trade_unfollow(targetWallet: "0x...")
Stops monitoring immediately. Existing positions are NOT closed — only new trades stop being copied.
get_balances()."not enough balance / allowance"
→ Your Safe wallet needs more USDC. Run get_balances() to check. Fund the safeAddress on Polygon.
"Order too small"
→ The calculated copy trade is below $1. Increase allocationValue or lower minTradeSize.
"No copied position to sell" → The target sold but you never bought (joined after they entered the position). Normal, engine skips it.
copy_trade_status shows rtds.connected: false
→ WebSocket disconnected. It auto-reconnects. Polling still works as backup. Check again in 30 seconds.
Trades detected but failing
→ Check copy_trade_history() for error messages. Most common: insufficient USDC, stale approval.
→ Fix: fund wallet, then set_approvals(force: true).
# 1. Get API key
request_api_key(externalId: "myemail@example.com")
# → Save the apiKey, configure MCP server with it
# 2. Set up wallet
setup_wallet()
set_approvals()
# 3. Get deposit address
get_wallet_status()
# → Send USDC to the safeAddress on Polygon
# 4. Verify funds arrived
get_balances()
# 5. Find a profitable trader
get_top_traders(category: "CRYPTO", timePeriod: "WEEK", orderBy: "PNL", limit: 5)
get_trader_profile(address: "0x...")
# 6. Start copying with $2 per trade
copy_trade_follow(targetWallet: "0x...", allocationMode: "FIXED_AMOUNT", allocationValue: 2, maxTradeSize: 10)
# 7. Check it's running
copy_trade_status()
copy_trade_list()
# 8. Later — check how it's going
copy_trade_history(limit: 10)
get_positions()
get_balances()