{
  "schemaVersion": "1.0",
  "item": {
    "slug": "polymarket-copytrading",
    "name": "Polymarket Copytrading",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/adlai88/polymarket-copytrading",
    "canonicalUrl": "https://clawhub.ai/adlai88/polymarket-copytrading",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/polymarket-copytrading",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=polymarket-copytrading",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "clawhub.json",
      "copytrading_trader.py",
      "scripts/status.py"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/polymarket-copytrading"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/polymarket-copytrading",
    "agentPageUrl": "https://openagent3.xyz/skills/polymarket-copytrading/agent",
    "manifestUrl": "https://openagent3.xyz/skills/polymarket-copytrading/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/polymarket-copytrading/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Polymarket Copytrading",
        "body": "Mirror positions from successful Polymarket traders using the Simmer SDK.\n\nThis is a template. The default logic mirrors whale wallets by size-weighted allocation — remix it with your own wallet selection criteria, position filters, or rebalancing rules. The skill handles all the plumbing (wallet fetching, conflict detection, trade execution). Your agent provides the alpha."
      },
      {
        "title": "When to Use This Skill",
        "body": "Use this skill when the user wants to:\n\nCopytrade whale wallets on Polymarket\nPaper trade (copytrade with $SIM) to test strategies without real money\nCheck what positions a wallet holds\nFollow specific trader addresses\nCheck their copytrading positions"
      },
      {
        "title": "Quick Commands",
        "body": "# Check account balance and positions\npython scripts/status.py\n\n# Detailed position list\npython scripts/status.py --positions\n\nAPI Reference:\n\nBase URL: https://api.simmer.markets\nAuth: Authorization: Bearer $SIMMER_API_KEY\nPortfolio: GET /api/sdk/portfolio\nPositions: GET /api/sdk/positions"
      },
      {
        "title": "Finding Whale Wallets",
        "body": "predicting.top — Leaderboard of top Polymarket traders with wallet addresses\nalphawhale.trade — Tools for copying and tracking top performers\nPolymarket Leaderboard — Official rankings (requires account)"
      },
      {
        "title": "Quick Start (Ad-Hoc Usage)",
        "body": "User provides wallet(s) directly in chat:\n\nUser: \"Copytrade this wallet: 0x1234...abcd\"\nUser: \"What positions does 0x5678...efgh have?\"\nUser: \"Follow these whales: 0xaaa..., 0xbbb...\"\n\n→ Run with --wallets flag:\n\npython copytrading_trader.py --wallets 0x1234...abcd\npython copytrading_trader.py --wallets 0xaaa...,0xbbb... --dry-run\n\nThis is the simplest way - no setup needed, just pass wallets directly."
      },
      {
        "title": "Persistent Setup (Optional)",
        "body": "For automated recurring scans, wallets can be saved in environment:\n\nSettingEnvironment VariableDefaultTarget walletsSIMMER_COPYTRADING_WALLETS(none)Top N positionsSIMMER_COPYTRADING_TOP_NautoMax per positionSIMMER_COPYTRADING_MAX_USD50Max trades/runSIMMER_COPYTRADING_MAX_TRADES10\n\nTop N auto-calculation (when not specified):\n\nBalance < $50: Top 5 positions\nBalance $50-200: Top 10 positions\nBalance $200-500: Top 25 positions\nBalance $500+: Top 50 positions\n\nPolymarket Constraints:\n\nMinimum 5 shares per order\nSDK enforces $1.00 minimum position value (filters dust positions)\n\n⚠️ Start Conservative: Begin with small amounts (--max-usd 5-10) and --dry-run to understand how the skill behaves before scaling up."
      },
      {
        "title": "How It Works",
        "body": "By default, only buys execute. Pass --rebalance to also sell positions the whales have exited, or --whale-exits to sell only on whale exits.\n\nEach cycle the script:\n\nFetches positions from all target wallets via Simmer API\nCombines using size-weighted aggregation (larger wallets = more influence)\nDetects conflicts (one wallet long YES, another long NO) and skips those markets\nScores by conviction: positions held by 2+ wallets get full sizing, single-wallet positions get 50% sizing\nFilters out drifted (>30% from entry) and stale (>90% or <10% price) positions\nApplies Top-N filtering to concentrate on highest-conviction positions\nAuto-imports missing markets from Polymarket\nCalculates rebalance trades to match target allocations\nExecutes trades via Simmer SDK (respects spending limits)\nReports results back to user"
      },
      {
        "title": "$SIM Paper Trading",
        "body": "Copytrading supports $SIM mode — mirror whale positions using simulated money on Simmer's LMSR markets. No wallet or USDC required.\n\n# Paper trade with $SIM (explicit)\npython copytrading_trader.py --venue sim --wallets 0x123... --live\n\n# Auto-detect: if your account has no linked wallet, $SIM is used automatically\npython copytrading_trader.py --wallets 0x123... --live\n\nIn $SIM mode:\n\nTrades execute on Simmer's LMSR at real Polymarket prices\nEach market gets an independent $10K $SIM balance\nPositions tracked in your Simmer portfolio (source: sdk:copytrading)\nWhale signals still come from real Polymarket data"
      },
      {
        "title": "Running the Skill",
        "body": "Run a scan (dry run by default — no trades):\n\npython copytrading_trader.py\n\nExecute real trades:\n\npython copytrading_trader.py --live\n\nCheck positions only:\n\npython copytrading_trader.py --positions\n\nView current config:\n\npython copytrading_trader.py --config\n\nOverride wallets for one run:\n\npython copytrading_trader.py --wallets 0x123...,0x456...\n\nFull rebalance mode (includes sells):\n\npython copytrading_trader.py --rebalance\n\nSell when whales exit positions:\n\npython copytrading_trader.py --whale-exits"
      },
      {
        "title": "Reporting Results",
        "body": "After each run, message the user with:\n\nCurrent configuration (wallets, Top N, max position)\nNumber of wallets fetched and total positions found\nMarkets skipped due to conflicts\nTrades executed (or skipped with reason)\nCurrent portfolio positions\n\nExample output to share:\n\n🐋 Copytrading Scan Complete\n\nConfiguration:\n• Following 2 wallets\n• Top 10 positions, max $50 each\n• Balance: $250.00 USDC\n\nFetched positions:\n• 0x1234...abcd: 15 positions\n• 0x5678...efgh: 22 positions\n• Combined: 28 unique markets\n• Conflicts skipped: 2\n\nTop 10 by allocation:\n1. \"Will BTC hit $100k?\" - 18.5% → BUY YES\n2. \"Trump pardons X?\" - 12.3% → BUY NO\n3. \"Fed rate cut Jan?\" - 9.8% → Already held\n...\n\nTrades executed: 4 buys ($180 total)\n• Bought 45 YES shares on \"Will BTC hit $100k?\" @ $0.82\n• Bought 120 NO shares on \"Trump pardons X?\" @ $0.15\n...\n\nNext scan in 4 hours."
      },
      {
        "title": "Example Conversations",
        "body": "User: \"Copytrade 0x1234...abcd\"\n→ Run: python copytrading_trader.py --wallets 0x1234...abcd\n→ Report what positions that wallet has and what trades would execute\n\nUser: \"What is 0x5678...efgh holding?\"\n→ Run: python copytrading_trader.py --wallets 0x5678...efgh --dry-run\n→ Show their positions without trading\n\nUser: \"Follow these wallets: 0xaaa..., 0xbbb..., 0xccc...\"\n→ Run: python copytrading_trader.py --wallets 0xaaa...,0xbbb...,0xccc...\n→ Aggregate positions across all wallets, report results\n\nUser: \"Copytrade this whale but only top 5 positions\"\n→ Run: python copytrading_trader.py --wallets 0x... --top-n 5\n\nUser: \"How are my positions doing?\"\n→ Run: python copytrading_trader.py --positions\n→ Show current Polymarket positions with P&L\n\nUser: \"Show copytrading config\"\n→ Run: python copytrading_trader.py --config\n→ Display current settings\n\nUser: \"Sell positions that whales have exited\"\n→ Run: python copytrading_trader.py --whale-exits\n→ Compares your positions to whales, sells any they've closed\n\nUser: \"Do a full rebalance to match the whales\"\n→ Run: python copytrading_trader.py --rebalance\n→ Includes both buys AND sells to match whale allocations"
      },
      {
        "title": "Finding Good Wallets to Follow",
        "body": "Common approaches:\n\nLeaderboard tracking: Check Polymarket leaderboards for consistent performers\nWhale watchers: Follow known profitable traders on social media\nSpecific strategies: Follow wallets known for weather, politics, or crypto trades\n\nThe skill works best when:\n\nFollowing 2-5 wallets with overlapping strategies (e.g. all politics-focused, or all crypto-focused)\nWallets have similar conviction — mixing very different traders means most positions only appear in one wallet and get reduced sizing (50%)\nWallets trade markets available on Polymarket"
      },
      {
        "title": "Conviction Tiers",
        "body": "When following multiple wallets, positions are scored by conviction:\n\nHigh conviction (held by 2+ wallets): full position sizing (max_usd)\nLow conviction (held by 1 wallet): 50% position sizing\n\nHigh-conviction positions are prioritized in Top N selection. Single-wallet positions still trade, but with reduced size. Using just 1 wallet disables conviction scoring (all positions get full sizing)."
      },
      {
        "title": "Troubleshooting",
        "body": "\"Order too small\" / \"below minimum (5)\"\n\nPolymarket requires minimum 5 shares per order\nIncrease --max-usd or reduce --top-n to concentrate into fewer positions\n\n\"No wallets specified\"\n\nProvide wallet addresses in your message, e.g., \"copytrade 0x1234...\"\nOr set SIMMER_COPYTRADING_WALLETS environment variable for recurring scans\n\n\"Agent has no USDC balance\"\n\nNeed USDC in your Polymarket wallet, or use --venue sim for $SIM paper trading\nCheck wallet is linked at simmer.markets/dashboard\n\n\"Conflict skipped\"\n\nWallets disagree on this market (one long YES, other long NO)\nMarkets with net position < 10% are skipped\n\n\"All N positions filtered (X conflicts, Y drifted, Z stale)\"\n\nAll whale positions were removed by safety filters\nTry different target wallets, or reduce to 1 wallet to disable conviction scoring\nDrift filter skips positions where price moved >30% from whale's entry\nStale filter skips near-resolved markets (price >90% or <10%)\n\n\"Insufficient balance\"\n\nNot enough USDC for all trades\nReduce SIMMER_COPYTRADING_TOP_N or SIMMER_COPYTRADING_MAX_USD\n\n\"Market could not be imported\"\n\nSome markets may not be importable (resolved, private, etc.)\nThese are skipped automatically\n\n\"External wallet requires a pre-signed order\"\n\nWALLET_PRIVATE_KEY is not set in the environment\nThe SDK signs orders automatically when this env var is present — no manual signing code needed\nFix: export WALLET_PRIVATE_KEY=0x<your-polymarket-wallet-private-key>\nDo NOT attempt to sign orders manually or modify the skill code — the SDK handles it\n\n\"Balance shows $0 but I have USDC on Polygon\"\n\nPolymarket uses USDC.e (bridged USDC, contract 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174) — not native USDC\nIf you bridged USDC to Polygon recently, you likely received native USDC\nSwap native USDC to USDC.e, then retry"
      }
    ],
    "body": "Polymarket Copytrading\n\nMirror positions from successful Polymarket traders using the Simmer SDK.\n\nThis is a template. The default logic mirrors whale wallets by size-weighted allocation — remix it with your own wallet selection criteria, position filters, or rebalancing rules. The skill handles all the plumbing (wallet fetching, conflict detection, trade execution). Your agent provides the alpha.\n\nWhen to Use This Skill\n\nUse this skill when the user wants to:\n\nCopytrade whale wallets on Polymarket\nPaper trade (copytrade with $SIM) to test strategies without real money\nCheck what positions a wallet holds\nFollow specific trader addresses\nCheck their copytrading positions\nQuick Commands\n# Check account balance and positions\npython scripts/status.py\n\n# Detailed position list\npython scripts/status.py --positions\n\n\nAPI Reference:\n\nBase URL: https://api.simmer.markets\nAuth: Authorization: Bearer $SIMMER_API_KEY\nPortfolio: GET /api/sdk/portfolio\nPositions: GET /api/sdk/positions\nFinding Whale Wallets\npredicting.top — Leaderboard of top Polymarket traders with wallet addresses\nalphawhale.trade — Tools for copying and tracking top performers\nPolymarket Leaderboard — Official rankings (requires account)\nQuick Start (Ad-Hoc Usage)\n\nUser provides wallet(s) directly in chat:\n\nUser: \"Copytrade this wallet: 0x1234...abcd\"\nUser: \"What positions does 0x5678...efgh have?\"\nUser: \"Follow these whales: 0xaaa..., 0xbbb...\"\n\n\n→ Run with --wallets flag:\n\npython copytrading_trader.py --wallets 0x1234...abcd\npython copytrading_trader.py --wallets 0xaaa...,0xbbb... --dry-run\n\n\nThis is the simplest way - no setup needed, just pass wallets directly.\n\nPersistent Setup (Optional)\n\nFor automated recurring scans, wallets can be saved in environment:\n\nSetting\tEnvironment Variable\tDefault\nTarget wallets\tSIMMER_COPYTRADING_WALLETS\t(none)\nTop N positions\tSIMMER_COPYTRADING_TOP_N\tauto\nMax per position\tSIMMER_COPYTRADING_MAX_USD\t50\nMax trades/run\tSIMMER_COPYTRADING_MAX_TRADES\t10\n\nTop N auto-calculation (when not specified):\n\nBalance < $50: Top 5 positions\nBalance $50-200: Top 10 positions\nBalance $200-500: Top 25 positions\nBalance $500+: Top 50 positions\n\nPolymarket Constraints:\n\nMinimum 5 shares per order\nSDK enforces $1.00 minimum position value (filters dust positions)\n\n⚠️ Start Conservative: Begin with small amounts (--max-usd 5-10) and --dry-run to understand how the skill behaves before scaling up.\n\nHow It Works\n\nBy default, only buys execute. Pass --rebalance to also sell positions the whales have exited, or --whale-exits to sell only on whale exits.\n\nEach cycle the script:\n\nFetches positions from all target wallets via Simmer API\nCombines using size-weighted aggregation (larger wallets = more influence)\nDetects conflicts (one wallet long YES, another long NO) and skips those markets\nScores by conviction: positions held by 2+ wallets get full sizing, single-wallet positions get 50% sizing\nFilters out drifted (>30% from entry) and stale (>90% or <10% price) positions\nApplies Top-N filtering to concentrate on highest-conviction positions\nAuto-imports missing markets from Polymarket\nCalculates rebalance trades to match target allocations\nExecutes trades via Simmer SDK (respects spending limits)\nReports results back to user\n$SIM Paper Trading\n\nCopytrading supports $SIM mode — mirror whale positions using simulated money on Simmer's LMSR markets. No wallet or USDC required.\n\n# Paper trade with $SIM (explicit)\npython copytrading_trader.py --venue sim --wallets 0x123... --live\n\n# Auto-detect: if your account has no linked wallet, $SIM is used automatically\npython copytrading_trader.py --wallets 0x123... --live\n\n\nIn $SIM mode:\n\nTrades execute on Simmer's LMSR at real Polymarket prices\nEach market gets an independent $10K $SIM balance\nPositions tracked in your Simmer portfolio (source: sdk:copytrading)\nWhale signals still come from real Polymarket data\nRunning the Skill\n\nRun a scan (dry run by default — no trades):\n\npython copytrading_trader.py\n\n\nExecute real trades:\n\npython copytrading_trader.py --live\n\n\nCheck positions only:\n\npython copytrading_trader.py --positions\n\n\nView current config:\n\npython copytrading_trader.py --config\n\n\nOverride wallets for one run:\n\npython copytrading_trader.py --wallets 0x123...,0x456...\n\n\nFull rebalance mode (includes sells):\n\npython copytrading_trader.py --rebalance\n\n\nSell when whales exit positions:\n\npython copytrading_trader.py --whale-exits\n\nReporting Results\n\nAfter each run, message the user with:\n\nCurrent configuration (wallets, Top N, max position)\nNumber of wallets fetched and total positions found\nMarkets skipped due to conflicts\nTrades executed (or skipped with reason)\nCurrent portfolio positions\n\nExample output to share:\n\n🐋 Copytrading Scan Complete\n\nConfiguration:\n• Following 2 wallets\n• Top 10 positions, max $50 each\n• Balance: $250.00 USDC\n\nFetched positions:\n• 0x1234...abcd: 15 positions\n• 0x5678...efgh: 22 positions\n• Combined: 28 unique markets\n• Conflicts skipped: 2\n\nTop 10 by allocation:\n1. \"Will BTC hit $100k?\" - 18.5% → BUY YES\n2. \"Trump pardons X?\" - 12.3% → BUY NO\n3. \"Fed rate cut Jan?\" - 9.8% → Already held\n...\n\nTrades executed: 4 buys ($180 total)\n• Bought 45 YES shares on \"Will BTC hit $100k?\" @ $0.82\n• Bought 120 NO shares on \"Trump pardons X?\" @ $0.15\n...\n\nNext scan in 4 hours.\n\nExample Conversations\n\nUser: \"Copytrade 0x1234...abcd\" → Run: python copytrading_trader.py --wallets 0x1234...abcd → Report what positions that wallet has and what trades would execute\n\nUser: \"What is 0x5678...efgh holding?\" → Run: python copytrading_trader.py --wallets 0x5678...efgh --dry-run → Show their positions without trading\n\nUser: \"Follow these wallets: 0xaaa..., 0xbbb..., 0xccc...\" → Run: python copytrading_trader.py --wallets 0xaaa...,0xbbb...,0xccc... → Aggregate positions across all wallets, report results\n\nUser: \"Copytrade this whale but only top 5 positions\" → Run: python copytrading_trader.py --wallets 0x... --top-n 5\n\nUser: \"How are my positions doing?\" → Run: python copytrading_trader.py --positions → Show current Polymarket positions with P&L\n\nUser: \"Show copytrading config\" → Run: python copytrading_trader.py --config → Display current settings\n\nUser: \"Sell positions that whales have exited\" → Run: python copytrading_trader.py --whale-exits → Compares your positions to whales, sells any they've closed\n\nUser: \"Do a full rebalance to match the whales\" → Run: python copytrading_trader.py --rebalance → Includes both buys AND sells to match whale allocations\n\nFinding Good Wallets to Follow\n\nCommon approaches:\n\nLeaderboard tracking: Check Polymarket leaderboards for consistent performers\nWhale watchers: Follow known profitable traders on social media\nSpecific strategies: Follow wallets known for weather, politics, or crypto trades\n\nThe skill works best when:\n\nFollowing 2-5 wallets with overlapping strategies (e.g. all politics-focused, or all crypto-focused)\nWallets have similar conviction — mixing very different traders means most positions only appear in one wallet and get reduced sizing (50%)\nWallets trade markets available on Polymarket\nConviction Tiers\n\nWhen following multiple wallets, positions are scored by conviction:\n\nHigh conviction (held by 2+ wallets): full position sizing (max_usd)\nLow conviction (held by 1 wallet): 50% position sizing\n\nHigh-conviction positions are prioritized in Top N selection. Single-wallet positions still trade, but with reduced size. Using just 1 wallet disables conviction scoring (all positions get full sizing).\n\nTroubleshooting\n\n\"Order too small\" / \"below minimum (5)\"\n\nPolymarket requires minimum 5 shares per order\nIncrease --max-usd or reduce --top-n to concentrate into fewer positions\n\n\"No wallets specified\"\n\nProvide wallet addresses in your message, e.g., \"copytrade 0x1234...\"\nOr set SIMMER_COPYTRADING_WALLETS environment variable for recurring scans\n\n\"Agent has no USDC balance\"\n\nNeed USDC in your Polymarket wallet, or use --venue sim for $SIM paper trading\nCheck wallet is linked at simmer.markets/dashboard\n\n\"Conflict skipped\"\n\nWallets disagree on this market (one long YES, other long NO)\nMarkets with net position < 10% are skipped\n\n\"All N positions filtered (X conflicts, Y drifted, Z stale)\"\n\nAll whale positions were removed by safety filters\nTry different target wallets, or reduce to 1 wallet to disable conviction scoring\nDrift filter skips positions where price moved >30% from whale's entry\nStale filter skips near-resolved markets (price >90% or <10%)\n\n\"Insufficient balance\"\n\nNot enough USDC for all trades\nReduce SIMMER_COPYTRADING_TOP_N or SIMMER_COPYTRADING_MAX_USD\n\n\"Market could not be imported\"\n\nSome markets may not be importable (resolved, private, etc.)\nThese are skipped automatically\n\n\"External wallet requires a pre-signed order\"\n\nWALLET_PRIVATE_KEY is not set in the environment\nThe SDK signs orders automatically when this env var is present — no manual signing code needed\nFix: export WALLET_PRIVATE_KEY=0x<your-polymarket-wallet-private-key>\nDo NOT attempt to sign orders manually or modify the skill code — the SDK handles it\n\n\"Balance shows $0 but I have USDC on Polygon\"\n\nPolymarket uses USDC.e (bridged USDC, contract 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174) — not native USDC\nIf you bridged USDC to Polygon recently, you likely received native USDC\nSwap native USDC to USDC.e, then retry"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/adlai88/polymarket-copytrading",
    "publisherUrl": "https://clawhub.ai/adlai88/polymarket-copytrading",
    "owner": "adlai88",
    "version": "1.7.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/polymarket-copytrading",
    "downloadUrl": "https://openagent3.xyz/downloads/polymarket-copytrading",
    "agentUrl": "https://openagent3.xyz/skills/polymarket-copytrading/agent",
    "manifestUrl": "https://openagent3.xyz/skills/polymarket-copytrading/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/polymarket-copytrading/agent.md"
  }
}