{
  "schemaVersion": "1.0",
  "item": {
    "slug": "crypto-trader",
    "name": "crypto-trader",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/nandichi/crypto-trader",
    "canonicalUrl": "https://clawhub.ai/nandichi/crypto-trader",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/crypto-trader",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=crypto-trader",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "requirements.txt",
      "config/strategies.yaml",
      "config/notifications.yaml",
      "config/risk_limits.yaml",
      "config/exchanges.yaml",
      "config/cron_examples.yaml"
    ],
    "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-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-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/crypto-trader"
    },
    "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/crypto-trader",
    "agentPageUrl": "https://openagent3.xyz/skills/crypto-trader/agent",
    "manifestUrl": "https://openagent3.xyz/skills/crypto-trader/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/crypto-trader/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": "Crypto Trader Skill",
        "body": "Automated cryptocurrency trading with 8 strategies, multi-exchange support, AI sentiment analysis, and comprehensive risk management.\n\nImportant: By default all operations run against testnet (paper trading). Set CRYPTO_DEMO=false only when you are absolutely certain the user wants to trade with real money."
      },
      {
        "title": "Prerequisites",
        "body": "Install dependencies once from the skill directory:\n\npip install -r {baseDir}/requirements.txt\n\nRequired environment variables (set in .env or via OpenClaw settings):\n\nBINANCE_API_KEY and BINANCE_API_SECRET (required for Binance)\nCRYPTO_DEMO=true (default: paper trading mode)\n\nOptional:\n\nBYBIT_API_KEY, BYBIT_API_SECRET (for Bybit)\nKRAKEN_API_KEY, KRAKEN_API_SECRET (for Kraken)\nCOINBASE_API_KEY, COINBASE_API_SECRET (for Coinbase)\nTELEGRAM_BOT_TOKEN, TELEGRAM_CHAT_ID (for Telegram alerts)\nDISCORD_WEBHOOK_URL (for Discord alerts)\nCRYPTOPANIC_API_KEY (for sentiment analysis)"
      },
      {
        "title": "1. status -- Portfolio and strategy overview",
        "body": "python3 {baseDir}/scripts/main.py --mode status\n\nReturns JSON with:\n\nPortfolio value per exchange\nActive strategies and their state\nRisk status (daily P&L, drawdown, kill switch)\nEnvironment (paper/live)\n\nUse when the user asks: \"How is my portfolio?\", \"What's running?\", \"Give me an overview.\""
      },
      {
        "title": "2. balance -- Check exchange balances",
        "body": "python3 {baseDir}/scripts/main.py --mode balance\npython3 {baseDir}/scripts/main.py --mode balance --exchange binance\n\nReturns balances for the specified exchange (or all exchanges). Shows total, free, and used amounts per asset.\n\nUse when the user asks: \"How much BTC do I have?\", \"What's my balance?\", \"Show my funds.\""
      },
      {
        "title": "3. start_strategy -- Start a trading strategy",
        "body": "python3 {baseDir}/scripts/main.py --mode start_strategy --strategy grid --params '{\"symbol\":\"BTC/USDT\",\"price_range\":[90000,110000],\"num_grids\":10,\"order_amount_usdt\":10}'\npython3 {baseDir}/scripts/main.py --mode start_strategy --strategy dca --params '{\"symbol\":\"ETH/USDT\",\"interval\":\"daily\",\"amount_per_buy_usdt\":5}'\npython3 {baseDir}/scripts/main.py --mode start_strategy --strategy trend --params '{\"symbol\":\"BTC/USDT\",\"timeframe\":\"4h\"}'\n\nSupported strategies:\n\nStrategyNameDescriptionGrid Tradinggrid_tradingBuy/sell at evenly spaced price levels within a rangeDCAdcaBuy fixed amounts at regular intervalsTrend Followingtrend_followingEMA crossover + RSI signalsScalpingscalpingFast small trades on spread/momentumArbitragearbitrageCross-exchange price difference exploitationSwing Tradingswing_tradingBollinger Bands + MACD, hold 2-14 daysCopy Tradingcopy_tradingReplicate trades from tracked wallets/tradersRebalancingrebalancingMaintain target portfolio allocation\n\nEach strategy uses defaults from config/strategies.yaml which can be overridden via --params.\n\nCRITICAL: Always confirm with the user before starting a strategy. Show the parameters clearly and ask for approval.\n\nUse when the user asks: \"Start grid trading on BTC\", \"I want to DCA into ETH\", \"Follow the trend on SOL.\""
      },
      {
        "title": "4. stop_strategy -- Stop a running strategy",
        "body": "python3 {baseDir}/scripts/main.py --mode stop_strategy --strategy-id <id>\n\nStops a specific strategy instance. The strategy ID is returned when starting and shown in the list."
      },
      {
        "title": "5. list_strategies -- List all strategies",
        "body": "python3 {baseDir}/scripts/main.py --mode list_strategies\n\nReturns all available and running strategies with their status, parameters, and performance stats."
      },
      {
        "title": "6. backtest -- Test a strategy on historical data",
        "body": "python3 {baseDir}/scripts/main.py --mode backtest --strategy grid_trading --params '{\"symbol\":\"BTC/USDT\",\"price_range\":[40000,50000],\"num_grids\":10}' --start 2025-01-01 --end 2025-12-31\npython3 {baseDir}/scripts/main.py --mode backtest --strategy dca --params '{\"symbol\":\"BTC/USDT\",\"interval\":\"daily\",\"amount_per_buy_usdt\":10}' --start 2025-06-01 --end 2025-12-31\npython3 {baseDir}/scripts/main.py --mode backtest --strategy trend_following --params '{\"symbol\":\"BTC/USDT\",\"timeframe\":\"4h\"}' --start 2025-01-01 --end 2025-12-31\n\nReturns performance metrics:\n\nTotal return % vs buy-and-hold\nWin rate, trade count\nMax drawdown, Sharpe ratio\nFee impact\nIndividual order history\n\nResults are saved to data/backtests/.\n\nUse when the user asks: \"Would grid trading have worked?\", \"Backtest DCA on ETH\", \"Test this strategy.\""
      },
      {
        "title": "7. history -- Trade history",
        "body": "python3 {baseDir}/scripts/main.py --mode history --days 7\npython3 {baseDir}/scripts/main.py --mode history --days 30\n\nReturns completed orders from all exchanges for the last N days."
      },
      {
        "title": "8. sentiment -- Market sentiment analysis",
        "body": "python3 {baseDir}/scripts/main.py --mode sentiment --symbol BTC\npython3 {baseDir}/scripts/main.py --mode sentiment --symbol ETH\n\nAnalyzes sentiment from:\n\nCrypto news RSS feeds (CoinTelegraph, CoinDesk)\nCryptoPanic (requires API key)\nReddit (r/cryptocurrency, r/bitcoin)\nTwitter (requires bearer token)\n\nReturns aggregate score (-1.0 to 1.0) with labels: very_bearish, bearish, neutral, bullish, very_bullish.\n\nUse when the user asks: \"What's the market sentiment?\", \"Is BTC bullish right now?\", \"Any news about ETH?\""
      },
      {
        "title": "9. monitor -- Real-time monitoring daemon",
        "body": "python3 {baseDir}/scripts/main.py --mode monitor --action start\npython3 {baseDir}/scripts/main.py --mode monitor --action status\npython3 {baseDir}/scripts/main.py --mode monitor --action stop\n\nThe monitoring daemon runs in the background and:\n\nChecks open orders every 10 seconds\nUpdates portfolio snapshot every 60 seconds\nChecks risk limits every 60 seconds\nEvaluates strategy signals every 5 minutes\nRuns sentiment analysis every 30 minutes\nSends alerts via Telegram/Discord/Email"
      },
      {
        "title": "10. emergency_stop -- Kill switch",
        "body": "python3 {baseDir}/scripts/main.py --mode emergency_stop\n\nImmediately:\n\nCancels ALL open orders on ALL exchanges\nStops ALL running strategies\nActivates the kill switch (blocks all future trades)\n\nThe kill switch must be manually deactivated before trading can resume.\n\nUse when the user says: \"Stop everything!\", \"Emergency!\", \"Kill all trades.\""
      },
      {
        "title": "config/exchanges.yaml",
        "body": "Exchange connectivity settings, sandbox mode, rate limits."
      },
      {
        "title": "config/strategies.yaml",
        "body": "Default parameters for each strategy. Users can override via --params."
      },
      {
        "title": "config/risk_limits.yaml",
        "body": "Risk management rules:\n\nmax_position_size_pct: Max portfolio % per position (default: 25%)\nmax_daily_loss_eur: Emergency stop on daily loss (default: 50 EUR)\nmax_drawdown_pct: Stop at drawdown from ATH (default: 15%)\nmax_order_size_eur: Max per order (default: 100 EUR)\nmax_open_orders: Max concurrent orders (default: 50)\nStop-loss (fixed 5%, trailing 3%)\nTake-profit (10%, partial at 5%)"
      },
      {
        "title": "config/notifications.yaml",
        "body": "Alert routing rules per event type and channel."
      },
      {
        "title": "Safety Rules",
        "body": "NEVER execute trades without explicit user confirmation in live mode.\nDefault mode is paper trading (CRYPTO_DEMO=true). Remind the user which mode is active.\nAPI keys must have TRADE permissions only. NEVER withdrawal permissions.\nRisk limits are enforced automatically. If a limit is hit, explain to the user what happened.\nEmergency stop is always available and overrides everything.\nAlways show estimated cost and risk before confirming a trade.\nIf CRYPTO_DEMO=false, warn the user clearly that this uses real money.\nLog all actions. The user can review history at any time.\nWhen starting a strategy, show the full parameter set and ask for confirmation.\nNever bypass risk limits, even if the user asks. Explain why the limit exists."
      },
      {
        "title": "Output Format",
        "body": "All modes return structured JSON to stdout. Parse it and present a human-readable summary to the user. Highlight important numbers (P&L, prices, risk metrics). Use clear formatting with tables where appropriate."
      },
      {
        "title": "Running Tests",
        "body": "cd {baseDir}\npip install pytest\npython -m pytest tests/ -v"
      },
      {
        "title": "\"Exchange not initialized\"",
        "body": "Check that the API key and secret are set in environment variables for the target exchange."
      },
      {
        "title": "\"Authentication failed\"",
        "body": "Verify your API keys are correct and not expired. For testnet, make sure you're using testnet keys."
      },
      {
        "title": "\"Rate limit reached\"",
        "body": "The skill automatically retries with backoff. If persistent, reduce strategy evaluation frequency."
      },
      {
        "title": "\"Kill switch is active\"",
        "body": "The emergency stop was triggered. Review what happened, then deactivate:\nThe kill switch state is stored in ~/.openclaw/.crypto-trader-risk-state.json. Set \"killed\": false to reset, or use a future CLI command to deactivate."
      }
    ],
    "body": "Crypto Trader Skill\n\nAutomated cryptocurrency trading with 8 strategies, multi-exchange support, AI sentiment analysis, and comprehensive risk management.\n\nImportant: By default all operations run against testnet (paper trading). Set CRYPTO_DEMO=false only when you are absolutely certain the user wants to trade with real money.\n\nPrerequisites\n\nInstall dependencies once from the skill directory:\n\npip install -r {baseDir}/requirements.txt\n\n\nRequired environment variables (set in .env or via OpenClaw settings):\n\nBINANCE_API_KEY and BINANCE_API_SECRET (required for Binance)\nCRYPTO_DEMO=true (default: paper trading mode)\n\nOptional:\n\nBYBIT_API_KEY, BYBIT_API_SECRET (for Bybit)\nKRAKEN_API_KEY, KRAKEN_API_SECRET (for Kraken)\nCOINBASE_API_KEY, COINBASE_API_SECRET (for Coinbase)\nTELEGRAM_BOT_TOKEN, TELEGRAM_CHAT_ID (for Telegram alerts)\nDISCORD_WEBHOOK_URL (for Discord alerts)\nCRYPTOPANIC_API_KEY (for sentiment analysis)\nAvailable Modes\n1. status -- Portfolio and strategy overview\npython3 {baseDir}/scripts/main.py --mode status\n\n\nReturns JSON with:\n\nPortfolio value per exchange\nActive strategies and their state\nRisk status (daily P&L, drawdown, kill switch)\nEnvironment (paper/live)\n\nUse when the user asks: \"How is my portfolio?\", \"What's running?\", \"Give me an overview.\"\n\n2. balance -- Check exchange balances\npython3 {baseDir}/scripts/main.py --mode balance\npython3 {baseDir}/scripts/main.py --mode balance --exchange binance\n\n\nReturns balances for the specified exchange (or all exchanges). Shows total, free, and used amounts per asset.\n\nUse when the user asks: \"How much BTC do I have?\", \"What's my balance?\", \"Show my funds.\"\n\n3. start_strategy -- Start a trading strategy\npython3 {baseDir}/scripts/main.py --mode start_strategy --strategy grid --params '{\"symbol\":\"BTC/USDT\",\"price_range\":[90000,110000],\"num_grids\":10,\"order_amount_usdt\":10}'\npython3 {baseDir}/scripts/main.py --mode start_strategy --strategy dca --params '{\"symbol\":\"ETH/USDT\",\"interval\":\"daily\",\"amount_per_buy_usdt\":5}'\npython3 {baseDir}/scripts/main.py --mode start_strategy --strategy trend --params '{\"symbol\":\"BTC/USDT\",\"timeframe\":\"4h\"}'\n\n\nSupported strategies:\n\nStrategy\tName\tDescription\nGrid Trading\tgrid_trading\tBuy/sell at evenly spaced price levels within a range\nDCA\tdca\tBuy fixed amounts at regular intervals\nTrend Following\ttrend_following\tEMA crossover + RSI signals\nScalping\tscalping\tFast small trades on spread/momentum\nArbitrage\tarbitrage\tCross-exchange price difference exploitation\nSwing Trading\tswing_trading\tBollinger Bands + MACD, hold 2-14 days\nCopy Trading\tcopy_trading\tReplicate trades from tracked wallets/traders\nRebalancing\trebalancing\tMaintain target portfolio allocation\n\nEach strategy uses defaults from config/strategies.yaml which can be overridden via --params.\n\nCRITICAL: Always confirm with the user before starting a strategy. Show the parameters clearly and ask for approval.\n\nUse when the user asks: \"Start grid trading on BTC\", \"I want to DCA into ETH\", \"Follow the trend on SOL.\"\n\n4. stop_strategy -- Stop a running strategy\npython3 {baseDir}/scripts/main.py --mode stop_strategy --strategy-id <id>\n\n\nStops a specific strategy instance. The strategy ID is returned when starting and shown in the list.\n\n5. list_strategies -- List all strategies\npython3 {baseDir}/scripts/main.py --mode list_strategies\n\n\nReturns all available and running strategies with their status, parameters, and performance stats.\n\n6. backtest -- Test a strategy on historical data\npython3 {baseDir}/scripts/main.py --mode backtest --strategy grid_trading --params '{\"symbol\":\"BTC/USDT\",\"price_range\":[40000,50000],\"num_grids\":10}' --start 2025-01-01 --end 2025-12-31\npython3 {baseDir}/scripts/main.py --mode backtest --strategy dca --params '{\"symbol\":\"BTC/USDT\",\"interval\":\"daily\",\"amount_per_buy_usdt\":10}' --start 2025-06-01 --end 2025-12-31\npython3 {baseDir}/scripts/main.py --mode backtest --strategy trend_following --params '{\"symbol\":\"BTC/USDT\",\"timeframe\":\"4h\"}' --start 2025-01-01 --end 2025-12-31\n\n\nReturns performance metrics:\n\nTotal return % vs buy-and-hold\nWin rate, trade count\nMax drawdown, Sharpe ratio\nFee impact\nIndividual order history\n\nResults are saved to data/backtests/.\n\nUse when the user asks: \"Would grid trading have worked?\", \"Backtest DCA on ETH\", \"Test this strategy.\"\n\n7. history -- Trade history\npython3 {baseDir}/scripts/main.py --mode history --days 7\npython3 {baseDir}/scripts/main.py --mode history --days 30\n\n\nReturns completed orders from all exchanges for the last N days.\n\n8. sentiment -- Market sentiment analysis\npython3 {baseDir}/scripts/main.py --mode sentiment --symbol BTC\npython3 {baseDir}/scripts/main.py --mode sentiment --symbol ETH\n\n\nAnalyzes sentiment from:\n\nCrypto news RSS feeds (CoinTelegraph, CoinDesk)\nCryptoPanic (requires API key)\nReddit (r/cryptocurrency, r/bitcoin)\nTwitter (requires bearer token)\n\nReturns aggregate score (-1.0 to 1.0) with labels: very_bearish, bearish, neutral, bullish, very_bullish.\n\nUse when the user asks: \"What's the market sentiment?\", \"Is BTC bullish right now?\", \"Any news about ETH?\"\n\n9. monitor -- Real-time monitoring daemon\npython3 {baseDir}/scripts/main.py --mode monitor --action start\npython3 {baseDir}/scripts/main.py --mode monitor --action status\npython3 {baseDir}/scripts/main.py --mode monitor --action stop\n\n\nThe monitoring daemon runs in the background and:\n\nChecks open orders every 10 seconds\nUpdates portfolio snapshot every 60 seconds\nChecks risk limits every 60 seconds\nEvaluates strategy signals every 5 minutes\nRuns sentiment analysis every 30 minutes\nSends alerts via Telegram/Discord/Email\n10. emergency_stop -- Kill switch\npython3 {baseDir}/scripts/main.py --mode emergency_stop\n\n\nImmediately:\n\nCancels ALL open orders on ALL exchanges\nStops ALL running strategies\nActivates the kill switch (blocks all future trades)\n\nThe kill switch must be manually deactivated before trading can resume.\n\nUse when the user says: \"Stop everything!\", \"Emergency!\", \"Kill all trades.\"\n\nConfiguration Files\nconfig/exchanges.yaml\n\nExchange connectivity settings, sandbox mode, rate limits.\n\nconfig/strategies.yaml\n\nDefault parameters for each strategy. Users can override via --params.\n\nconfig/risk_limits.yaml\n\nRisk management rules:\n\nmax_position_size_pct: Max portfolio % per position (default: 25%)\nmax_daily_loss_eur: Emergency stop on daily loss (default: 50 EUR)\nmax_drawdown_pct: Stop at drawdown from ATH (default: 15%)\nmax_order_size_eur: Max per order (default: 100 EUR)\nmax_open_orders: Max concurrent orders (default: 50)\nStop-loss (fixed 5%, trailing 3%)\nTake-profit (10%, partial at 5%)\nconfig/notifications.yaml\n\nAlert routing rules per event type and channel.\n\nSafety Rules\nNEVER execute trades without explicit user confirmation in live mode.\nDefault mode is paper trading (CRYPTO_DEMO=true). Remind the user which mode is active.\nAPI keys must have TRADE permissions only. NEVER withdrawal permissions.\nRisk limits are enforced automatically. If a limit is hit, explain to the user what happened.\nEmergency stop is always available and overrides everything.\nAlways show estimated cost and risk before confirming a trade.\nIf CRYPTO_DEMO=false, warn the user clearly that this uses real money.\nLog all actions. The user can review history at any time.\nWhen starting a strategy, show the full parameter set and ask for confirmation.\nNever bypass risk limits, even if the user asks. Explain why the limit exists.\nOutput Format\n\nAll modes return structured JSON to stdout. Parse it and present a human-readable summary to the user. Highlight important numbers (P&L, prices, risk metrics). Use clear formatting with tables where appropriate.\n\nRunning Tests\ncd {baseDir}\npip install pytest\npython -m pytest tests/ -v\n\nTroubleshooting\n\"Exchange not initialized\"\n\nCheck that the API key and secret are set in environment variables for the target exchange.\n\n\"Authentication failed\"\n\nVerify your API keys are correct and not expired. For testnet, make sure you're using testnet keys.\n\n\"Rate limit reached\"\n\nThe skill automatically retries with backoff. If persistent, reduce strategy evaluation frequency.\n\n\"Kill switch is active\"\n\nThe emergency stop was triggered. Review what happened, then deactivate: The kill switch state is stored in ~/.openclaw/.crypto-trader-risk-state.json. Set \"killed\": false to reset, or use a future CLI command to deactivate."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/nandichi/crypto-trader",
    "publisherUrl": "https://clawhub.ai/nandichi/crypto-trader",
    "owner": "nandichi",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/crypto-trader",
    "downloadUrl": "https://openagent3.xyz/downloads/crypto-trader",
    "agentUrl": "https://openagent3.xyz/skills/crypto-trader/agent",
    "manifestUrl": "https://openagent3.xyz/skills/crypto-trader/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/crypto-trader/agent.md"
  }
}