{
  "schemaVersion": "1.0",
  "item": {
    "slug": "trade",
    "name": "Trade",
    "source": "tencent",
    "type": "skill",
    "category": "金融交易",
    "sourceUrl": "https://clawhub.ai/0xRAG/trade",
    "canonicalUrl": "https://clawhub.ai/0xRAG/trade",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/trade",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=trade",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "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-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.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/trade"
    },
    "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/trade",
    "agentPageUrl": "https://openagent3.xyz/skills/trade/agent",
    "manifestUrl": "https://openagent3.xyz/skills/trade/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/trade/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": "Trading Tokens",
        "body": "Use the npx awal@latest trade command to swap tokens on Base network via the CDP Swap API. You must be authenticated to trade."
      },
      {
        "title": "Confirm wallet is initialized and authed",
        "body": "npx awal@latest status\n\nIf the wallet is not authenticated, refer to the authenticate-wallet skill."
      },
      {
        "title": "Command Syntax",
        "body": "npx awal@latest trade <amount> <from> <to> [options]"
      },
      {
        "title": "Arguments",
        "body": "ArgumentDescriptionamountAmount to swap (see Amount Formats below)fromSource token: alias (usdc, eth, weth) or contract address (0x...)toDestination token: alias (usdc, eth, weth) or contract address (0x...)"
      },
      {
        "title": "Amount Formats",
        "body": "The amount can be specified in multiple formats:\n\nFormatExampleDescriptionDollar prefix'$1.00', '$0.50'USD notation (decimals based on token)Decimal1.0, 0.50, 0.001Human-readable with decimal pointWhole number5, 100Interpreted as whole tokensAtomic units500000Large integers treated as atomic units\n\nAuto-detection: Large integers without a decimal point are treated as atomic units. For example, 500000 for USDC (6 decimals) = $0.50.\n\nDecimals: For known tokens (usdc=6, eth=18, weth=18), decimals are automatic. For arbitrary contract addresses, decimals are read from the token contract."
      },
      {
        "title": "Options",
        "body": "OptionDescription-c, --chain <name>Blockchain network (default: base)-s, --slippage <n>Slippage tolerance in basis points (100 = 1%)--jsonOutput result as JSON"
      },
      {
        "title": "Token Aliases",
        "body": "AliasTokenDecimalsAddressusdcUSDC60x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913ethETH180xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeEwethWETH180x4200000000000000000000000000000000000006\n\nIMPORTANT: Always single-quote amounts that use $ to prevent bash variable expansion (e.g. '$1.00' not $1.00)."
      },
      {
        "title": "Examples",
        "body": "# Swap $1 USDC for ETH (dollar prefix — note the single quotes)\nnpx awal@latest trade '$1' usdc eth\n\n# Swap 0.50 USDC for ETH (decimal format)\nnpx awal@latest trade 0.50 usdc eth\n\n# Swap 500000 atomic units of USDC for ETH\nnpx awal@latest trade 500000 usdc eth\n\n# Swap 0.01 ETH for USDC\nnpx awal@latest trade 0.01 eth usdc\n\n# Swap with custom slippage (2%)\nnpx awal@latest trade '$5' usdc eth --slippage 200\n\n# Swap using contract addresses (decimals read from chain)\nnpx awal@latest trade 100 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 0x4200000000000000000000000000000000000006\n\n# Get JSON output\nnpx awal@latest trade '$1' usdc eth --json"
      },
      {
        "title": "Prerequisites",
        "body": "Must be authenticated (awal status to check)\nWallet must have sufficient balance of the source token"
      },
      {
        "title": "Error Handling",
        "body": "Common errors:\n\n\"Not authenticated\" - Run awal auth login <email> first\n\"Invalid token\" - Use a valid alias (usdc, eth, weth) or 0x address\n\"Cannot swap a token to itself\" - From and to must be different\n\"Swap failed: TRANSFER_FROM_FAILED\" - Insufficient balance or approval issue\n\"No liquidity\" - Try a smaller amount or different token pair\n\"Amount has X decimals but token only supports Y\" - Too many decimal places"
      }
    ],
    "body": "Trading Tokens\n\nUse the npx awal@latest trade command to swap tokens on Base network via the CDP Swap API. You must be authenticated to trade.\n\nConfirm wallet is initialized and authed\nnpx awal@latest status\n\n\nIf the wallet is not authenticated, refer to the authenticate-wallet skill.\n\nCommand Syntax\nnpx awal@latest trade <amount> <from> <to> [options]\n\nArguments\nArgument\tDescription\namount\tAmount to swap (see Amount Formats below)\nfrom\tSource token: alias (usdc, eth, weth) or contract address (0x...)\nto\tDestination token: alias (usdc, eth, weth) or contract address (0x...)\nAmount Formats\n\nThe amount can be specified in multiple formats:\n\nFormat\tExample\tDescription\nDollar prefix\t'$1.00', '$0.50'\tUSD notation (decimals based on token)\nDecimal\t1.0, 0.50, 0.001\tHuman-readable with decimal point\nWhole number\t5, 100\tInterpreted as whole tokens\nAtomic units\t500000\tLarge integers treated as atomic units\n\nAuto-detection: Large integers without a decimal point are treated as atomic units. For example, 500000 for USDC (6 decimals) = $0.50.\n\nDecimals: For known tokens (usdc=6, eth=18, weth=18), decimals are automatic. For arbitrary contract addresses, decimals are read from the token contract.\n\nOptions\nOption\tDescription\n-c, --chain <name>\tBlockchain network (default: base)\n-s, --slippage <n>\tSlippage tolerance in basis points (100 = 1%)\n--json\tOutput result as JSON\nToken Aliases\nAlias\tToken\tDecimals\tAddress\nusdc\tUSDC\t6\t0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\neth\tETH\t18\t0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE\nweth\tWETH\t18\t0x4200000000000000000000000000000000000006\n\nIMPORTANT: Always single-quote amounts that use $ to prevent bash variable expansion (e.g. '$1.00' not $1.00).\n\nExamples\n# Swap $1 USDC for ETH (dollar prefix — note the single quotes)\nnpx awal@latest trade '$1' usdc eth\n\n# Swap 0.50 USDC for ETH (decimal format)\nnpx awal@latest trade 0.50 usdc eth\n\n# Swap 500000 atomic units of USDC for ETH\nnpx awal@latest trade 500000 usdc eth\n\n# Swap 0.01 ETH for USDC\nnpx awal@latest trade 0.01 eth usdc\n\n# Swap with custom slippage (2%)\nnpx awal@latest trade '$5' usdc eth --slippage 200\n\n# Swap using contract addresses (decimals read from chain)\nnpx awal@latest trade 100 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 0x4200000000000000000000000000000000000006\n\n# Get JSON output\nnpx awal@latest trade '$1' usdc eth --json\n\nPrerequisites\nMust be authenticated (awal status to check)\nWallet must have sufficient balance of the source token\nError Handling\n\nCommon errors:\n\n\"Not authenticated\" - Run awal auth login <email> first\n\"Invalid token\" - Use a valid alias (usdc, eth, weth) or 0x address\n\"Cannot swap a token to itself\" - From and to must be different\n\"Swap failed: TRANSFER_FROM_FAILED\" - Insufficient balance or approval issue\n\"No liquidity\" - Try a smaller amount or different token pair\n\"Amount has X decimals but token only supports Y\" - Too many decimal places"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/0xRAG/trade",
    "publisherUrl": "https://clawhub.ai/0xRAG/trade",
    "owner": "0xRAG",
    "version": "0.1.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/trade",
    "downloadUrl": "https://openagent3.xyz/downloads/trade",
    "agentUrl": "https://openagent3.xyz/skills/trade/agent",
    "manifestUrl": "https://openagent3.xyz/skills/trade/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/trade/agent.md"
  }
}