{"id":"6d7e3157-52c5-4b98-9bb5-19dad91ce17f","entityType":"agent","slug":"clawhub-skills-aaronllee-dex-quote","name":"okx-dex-quote","canonicalUrl":"https://www.xpersona.co/agent/clawhub-skills-aaronllee-dex-quote","canonicalPath":"/agent/clawhub-skills-aaronllee-dex-quote","generatedAt":"2026-10-10T01:43:11.631Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"description":"Fetch optimal swap quotes from OKX DEX Aggregator API (v6). Use this skill when a user wants to: 1. Get the best price for swapping tokens on any supported EVM/Solana chain 2. Compare DEX routing paths and price impact for token swaps 3. Build applications or scripts that query real-time DEX aggregator pricing Core value: Generates correct, authenticated API calls with proper token decimals, amount formatting, HMAC-SHA256 signing, and comprehensive error handling. --- name: okx-dex-quote description: > Fetch optimal swap quotes from OKX DEX Aggregator API (v6). Use this skill when a user wants to: 1. Get the best price for swapping tokens on any supported EVM/Solana chain 2. Compare DEX routing paths and price impact for token swaps 3. Build applications or scripts that query real-time DEX aggregator pricing Core value: Generates correct, authenticated API calls with proper to","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. Last updated 4/15/2026.","installCommand":"clawhub skill install skills:aaronllee:dex-quote","sourceUrl":"https://github.com/openclaw/skills/tree/main/skills/aaronllee/dex-quote","homepage":null,"primaryLinks":[{"label":"View on ClawHub","url":"https://github.com/openclaw/skills/tree/main/skills/aaronllee/dex-quote","kind":"source"}],"safetyScore":84,"overallRank":62,"popularityScore":50,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Fetch optimal swap quotes from OKX DEX Aggregator API (v6). Use this skill when a user wants to: 1. Get the best price for swapping tokens on any supported EVM/"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[{"label":"for","status":"self-declared"}],"verifiedCount":0,"selfDeclaredCount":2,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"},{"key":"for","type":"capability","support":"supported","confidenceSource":"profile","notes":"Declared in agent profile metadata"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile capability:for|supported|profile"}},"adoption":{"evidence":{"source":"no-adoption-signals","verified":false,"confidence":"low","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":"No source adoption metrics were available."},"stars":null,"forks":null,"downloads":null,"packageName":null,"latestVersion":null,"tractionLabel":null},"release":{"evidence":{"source":"agent-index","verified":false,"confidence":"medium","updatedAt":"2026-02-25T05:54:48.028Z","emptyReason":null},"lastUpdatedAt":"2026-04-15T00:45:39.800Z","lastCrawledAt":"2026-02-25T05:54:48.028Z","lastIndexedAt":null,"nextCrawlAt":"2026-02-26T05:54:48.028Z","lastVerifiedAt":null,"highlights":[]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install skills:aaronllee:dex-quote","setupComplexity":"low","setupSteps":["Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-aaronllee-dex-quote/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-aaronllee-dex-quote/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-aaronllee-dex-quote/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-skills-aaronllee-dex-quote/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-skills-aaronllee-dex-quote/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-skills-aaronllee-dex-quote/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-10T01:43:11.631Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-aaronllee-dex-quote/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-aaronllee-dex-quote/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-aaronllee-dex-quote/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-skills-aaronllee-dex-quote/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"readme":"---\nname: okx-dex-quote\ndescription: >\n  Fetch optimal swap quotes from OKX DEX Aggregator API (v6). Use this skill when a user wants to:\n  1. Get the best price for swapping tokens on any supported EVM/Solana chain\n  2. Compare DEX routing paths and price impact for token swaps\n  3. Build applications or scripts that query real-time DEX aggregator pricing\n  Core value: Generates correct, authenticated API calls with proper token decimals,\n  amount formatting, HMAC-SHA256 signing, and comprehensive error handling.\nversion: 1.0.0\nallowed_tools: [bash_tool, create_file, str_replace, view]\nrequired_context: [api_key, secret_key, passphrase]\nlicense: MIT\nauthor: Claude Assistant\ntags: [defi, dex, okx, swap, quote, web3, aggregator, evm, solana]\n---\n\n# OKX DEX Aggregator Quote Skill\n\n## Overview\n\nThis skill generates production-ready code for fetching optimal swap quotes from the **OKX DEX Aggregator API v6**. The API finds the best price across multiple DEX protocols (Uniswap, SushiSwap, Curve, etc.) and returns detailed routing information including price impact, gas estimates, and token safety flags.\n\n**Key capabilities:**\n- Authenticated API requests with HMAC-SHA256 signing\n- Correct handling of token decimals and amount formatting\n- Support for `exactIn` (fixed input) and `exactOut` (fixed output) swap modes\n- Multi-chain support (Ethereum, BSC, Arbitrum, Base, Solana, and 20+ chains)\n- Price impact protection and honeypot detection\n- Fee/commission splitting configuration\n\n## Prerequisites\n\n### Required Credentials\nUsers must have an OKX Web3 API key set. The skill needs three values:\n- `OKX_ACCESS_KEY` — API key\n- `OKX_SECRET_KEY` — Secret key for HMAC signing\n- `OKX_PASSPHRASE` — Account passphrase\n\n### Environment\n- **Python**: `requests`, `hmac`, `hashlib`, `base64`, `datetime` (all stdlib except `requests`)\n- **Node.js**: `axios` or `node-fetch`, built-in `crypto`\n- No additional blockchain dependencies required (this is a read-only quote endpoint)\n\n### API Endpoint\n```\nGET https://web3.okx.com/api/v6/dex/aggregator/quote\n```\n\n## Workflow\n\n### Step 1: Validate User Input\n\nBefore constructing the API call, validate:\n\n1. **Chain ID (`chainIndex`)** — Must be a supported chain. Common values:\n   - `1` = Ethereum\n   - `56` = BSC\n   - `137` = Polygon\n   - `42161` = Arbitrum\n   - `8453` = Base\n   - `130` = Unichain\n   - `501` = Solana\n\n2. **Token addresses** — Must be valid contract addresses or the native token placeholder:\n   - Native tokens (ETH, BNB, etc.): `0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee`\n   - Contract tokens: Full 42-character hex address (EVM) or base58 (Solana)\n\n3. **Amount** — MUST include token decimals. This is the #1 source of errors:\n   - 1 ETH (18 decimals) → `\"1000000000000000000\"`\n   - 1 USDT (6 decimals) → `\"1000000\"`\n   - 1 WBTC (8 decimals) → `\"100000000\"`\n   - Formula: `amount_raw = human_amount * (10 ** token_decimals)`\n\n4. **Swap mode** — `exactIn` (default) or `exactOut`\n   - `exactOut` only supported on: Ethereum, Base, BSC, Arbitrum\n   - `exactOut` only works with Uniswap V2/V3 pools\n\n### Step 2: Construct Authentication Headers\n\nOKX API requires HMAC-SHA256 signed requests with 4 headers:\n\n```\nOK-ACCESS-KEY: <api_key>\nOK-ACCESS-SIGN: <hmac_signature>\nOK-ACCESS-PASSPHRASE: <passphrase>\nOK-ACCESS-TIMESTAMP: <iso8601_timestamp>\n```\n\n**Signing algorithm:**\n```\ntimestamp = ISO 8601 UTC time (e.g., \"2025-01-15T12:00:00.000Z\")\nprehash = timestamp + \"GET\" + request_path_with_query\nsignature = Base64(HMAC-SHA256(secret_key, prehash))\n```\n\n**CRITICAL**: The `request_path_with_query` must include the full path starting from `/api/...` plus the query string. Example:\n```\n/api/v6/dex/aggregator/quote?chainIndex=1&amount=1000000000000000000&fromTokenAddress=0xeee...&toTokenAddress=0xa0b...\n```\n\n### Step 3: Send Request and Parse Response\n\n**Success response structure:**\n```json\n{\n  \"code\": \"0\",\n  \"data\": [{\n    \"chainIndex\": \"1\",\n    \"fromToken\": { \"tokenSymbol\": \"ETH\", \"decimal\": \"18\", ... },\n    \"toToken\": { \"tokenSymbol\": \"USDC\", \"decimal\": \"6\", ... },\n    \"fromTokenAmount\": \"1000000000000000000\",\n    \"toTokenAmount\": \"3521432100\",\n    \"dexRouterList\": [...],\n    \"tradeFee\": \"2.45\",\n    \"estimateGasFee\": \"150000\",\n    \"priceImpactPercent\": \"-0.12\"\n  }],\n  \"msg\": \"\"\n}\n```\n\n**Key fields to extract:**\n- `toTokenAmount` — The amount you'll receive (in raw units with decimals)\n- `tradeFee` — Estimated network fee in USD\n- `priceImpactPercent` — Negative = losing value; large negative = danger\n- `dexRouterList` — Routing path through various DEX protocols\n- `fromToken.isHoneyPot` / `toToken.isHoneyPot` — Scam token flag\n- `fromToken.taxRate` / `toToken.taxRate` — Token buy/sell tax\n\n### Step 4: Format Output for User\n\nConvert raw amounts back to human-readable:\n```\nhuman_amount = raw_amount / (10 ** decimal)\n```\n\nAlways display:\n1. Exchange rate (e.g., \"1 ETH = 3,521.43 USDC\")\n2. Price impact percentage with warning if > 3%\n3. Estimated gas fee in USD\n4. Routing summary (which DEXes are used)\n5. Honeypot warnings if detected\n6. Token tax rates if > 0\n\n## Best Practices\n\n### Security\n- **NEVER hardcode API credentials** in generated code. Always use environment variables or config files.\n- **NEVER log the secret key or signature** in debug output.\n- Validate all token addresses against expected format before sending.\n- Check `isHoneyPot` flag on both tokens and warn the user prominently.\n\n### Amount Handling\n- **Always use string type** for amounts to avoid floating-point precision loss.\n- Python: Use `int()` for amount calculations, never `float()`.\n- JavaScript: Use `BigInt` or string math for amounts > 2^53.\n- When user provides a human-readable amount like \"1.5 ETH\", convert: `str(int(1.5 * 10**18))`.\n\n### Error Handling\n- Check `response[\"code\"] == \"0\"` before accessing data.\n- Common error codes:\n  - Non-zero code with `msg` = API error (e.g., insufficient liquidity, invalid params)\n  - HTTP 401 = Authentication failure (check signature algorithm)\n  - HTTP 429 = Rate limited\n- If `priceImpactPercent` is `null`, warn that price impact couldn't be calculated.\n\n### Rate Limits\n- Respect OKX rate limits. For production use, implement exponential backoff.\n- Cache quotes if polling repeatedly (quotes are valid for ~15-30 seconds).\n\n### Optional Parameters Usage\n- `dexIds` — Use when you want to restrict to specific DEXes (e.g., only Uniswap).\n- `directRoute=true` — Only for Solana; forces single-pool routing.\n- `priceImpactProtectionPercent` — Set to a sensible default like `10` for safety. Set to `100` to disable.\n- `feePercent` — For integrators taking commission. Max 3% (EVM) or 10% (Solana). Up to 9 decimal places.\n\n## Examples\n\n### Example 1: Python — Get ETH to USDC Quote on Ethereum\n\n```python\nimport os, hmac, hashlib, base64, requests\nfrom datetime import datetime, timezone\nfrom urllib.parse import urlencode\n\nAPI_KEY = os.environ[\"OKX_ACCESS_KEY\"]\nSECRET_KEY = os.environ[\"OKX_SECRET_KEY\"]\nPASSPHRASE = os.environ[\"OKX_PASSPHRASE\"]\n\ndef get_okx_quote(chain_index, from_token, to_token, amount, swap_mode=\"exactIn\"):\n    base_url = \"https://web3.okx.com\"\n    path = \"/api/v6/dex/aggregator/quote\"\n\n    params = {\n        \"chainIndex\": chain_index,\n        \"fromTokenAddress\": from_token,\n        \"toTokenAddress\": to_token,\n        \"amount\": amount,\n        \"swapMode\": swap_mode,\n    }\n\n    query_string = urlencode(params)\n    request_path = f\"{path}?{query_string}\"\n\n    # Generate timestamp and signature\n    timestamp = datetime.now(timezone.utc).strftime(\"%Y-%m-%dT%H:%M:%S.%f\")[:-3] + \"Z\"\n    prehash = timestamp + \"GET\" + request_path\n    signature = base64.b64encode(\n        hmac.new(SECRET_KEY.encode(), prehash.encode(), hashlib.sha256).digest()\n    ).decode()\n\n    headers = {\n        \"OK-ACCESS-KEY\": API_KEY,\n        \"OK-ACCESS-SIGN\": signature,\n        \"OK-ACCESS-PASSPHRASE\": PASSPHRASE,\n        \"OK-ACCESS-TIMESTAMP\": timestamp,\n    }\n\n    resp = requests.get(base_url + request_path, headers=headers)\n    resp.raise_for_status()\n    data = resp.json()\n\n    if data[\"code\"] != \"0\":\n        raise Exception(f\"OKX API error: {data['msg']}\")\n\n    return data[\"data\"][0]\n\n\n# Swap 1 ETH -> USDC on Ethereum\nETH = \"0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\"\nUSDC = \"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48\"\namount = str(1 * 10**18)  # 1 ETH in wei\n\nquote = get_okx_quote(\"1\", ETH, USDC, amount)\n\nto_decimals = int(quote[\"toToken\"][\"decimal\"])\nreceived = int(quote[\"toTokenAmount\"]) / (10 ** to_decimals)\n\nprint(f\"You will receive: {received:,.2f} {quote['toToken']['tokenSymbol']}\")\nprint(f\"Price impact: {quote['priceImpactPercent']}%\")\nprint(f\"Gas fee (USD): ${quote['tradeFee']}\")\nprint(f\"Honeypot check: {'WARNING' if quote['toToken']['isHoneyPot'] else 'Safe'}\")\n```\n\n### Example 2: Node.js — Get Quote with Commission Fee\n\n```javascript\nconst crypto = require(\"crypto\");\nconst https = require(\"https\");\n\nconst API_KEY = process.env.OKX_ACCESS_KEY;\nconst SECRET_KEY = process.env.OKX_SECRET_KEY;\nconst PASSPHRASE = process.env.OKX_PASSPHRASE;\n\nfunction getQuote(chainIndex, fromToken, toToken, amount, options = {}) {\n  const params = new URLSearchParams({\n    chainIndex,\n    fromTokenAddress: fromToken,\n    toTokenAddress: toToken,\n    amount,\n    swapMode: options.swapMode || \"exactIn\",\n    ...(options.feePercent && { feePercent: options.feePercent }),\n    ...(options.priceImpactProtectionPercent && {\n      priceImpactProtectionPercent: options.priceImpactProtectionPercent,\n    }),\n  });\n\n  const path = `/api/v6/dex/aggregator/quote?${params}`;\n  const timestamp = new Date().toISOString();\n  const prehash = timestamp + \"GET\" + path;\n  const signature = crypto\n    .createHmac(\"sha256\", SECRET_KEY)\n    .update(prehash)\n    .digest(\"base64\");\n\n  return new Promise((resolve, reject) => {\n    const req = https.get(\n      `https://web3.okx.com${path}`,\n      {\n        headers: {\n          \"OK-ACCESS-KEY\": API_KEY,\n          \"OK-ACCESS-SIGN\": signature,\n          \"OK-ACCESS-PASSPHRASE\": PASSPHRASE,\n          \"OK-ACCESS-TIMESTAMP\": timestamp,\n        },\n      },\n      (res) => {\n        let body = \"\";\n        res.on(\"data\", (chunk) => (body += chunk));\n        res.on(\"end\", () => {\n          const data = JSON.parse(body);\n          if (data.code !== \"0\") reject(new Error(`OKX: ${data.msg}`));\n          else resolve(data.data[0]);\n        });\n      }\n    );\n    req.on(\"error\", reject);\n  });\n}\n```\n\n### Example 3: Understanding the Routing Path\n\n```\nRouter: ETH -> WBTC -> USDC\ndexRouterList shows:\n  - 55% ETH -> WBTC via Uniswap V4\n  - 30% ETH -> USDC via Uniswap V4 (direct)\n  - WBTC -> USDC via Euler (73%) + Uniswap V4 (27%)\n\nThis means the aggregator splits the trade across multiple paths\nto minimize price impact and maximize output.\n```\n\n## Troubleshooting\n\n| Problem | Cause | Solution |\n|---------|-------|----------|\n| `401 Unauthorized` | Signature mismatch | Verify prehash string is exactly `timestamp + \"GET\" + full_path_with_query`. Check secret key encoding. |\n| Amount too small | Missing decimal conversion | Multiply human amount by `10 ** token_decimals`. 1 USDT = `1000000`, not `1`. |\n| Invalid token address | Wrong chain/address combo | Verify the token exists on the specified chain. Use native token placeholder for ETH/BNB/etc. |\n| `priceImpactPercent` very negative (< -10%) | Low liquidity or large trade | Reduce trade size or split across multiple transactions. |\n| `isHoneyPot: true` | Scam token detected | **Do NOT proceed with the swap.** Warn the user immediately. |\n| `exactOut` not working | Unsupported chain/protocol | Only works on Ethereum, Base, BSC, Arbitrum with Uniswap V2/V3. |\n| `taxRate > 0` | Token has built-in tax | Factor tax into expected output. E.g., 5% tax means receiving 5% less. |\n| Empty `dexRouterList` | No liquidity path found | Try a different token pair, smaller amount, or different chain. |\n| `code` is non-zero | General API error | Read `msg` field for details. Common: rate limit, maintenance, invalid params. |\n\n## Reference: Common Chain IDs\n\n| Chain | chainIndex |\n|-------|-----------|\n| Ethereum | 1 |\n| BSC | 56 |\n| Polygon | 137 |\n| Arbitrum | 42161 |\n| Optimism | 10 |\n| Avalanche | 43114 |\n| Base | 8453 |\n| Solana | 501 |\n| Unichain | 130 |\n\n## Reference: Common Token Addresses (Ethereum)\n\n| Token | Address | Decimals |\n|-------|---------|----------|\n| ETH (native) | `0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee` | 18 |\n| USDT | `0xdac17f958d2ee523a2206206994597c13d831ec7` | 6 |\n| USDC | `0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48` | 6 |\n| WETH | `0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2` | 18 |\n| WBTC | `0x2260fac5e5542a773aa44fbcfedf7c193bc2c599` | 8 |\n| DAI | `0x6b175474e89094c44da98b954eedeac495271d0f` | 18 |\n\n## Reference: Request Parameters Summary\n\n| Parameter | Required | Description |\n|-----------|----------|-------------|\n| `chainIndex` | Yes | Chain ID (e.g., `1` for Ethereum) |\n| `amount` | Yes | Amount in raw units (with decimals) |\n| `swapMode` | Yes | `exactIn` or `exactOut` |\n| `fromTokenAddress` | Yes | Sell token contract address |\n| `toTokenAddress` | Yes | Buy token contract address |\n| `dexIds` | No | Comma-separated DEX IDs to restrict routing |\n| `directRoute` | No | `true` for single-pool only (Solana only) |\n| `priceImpactProtectionPercent` | No | Max allowed price impact 0-100 (default 90) |\n| `feePercent` | No | Commission fee percentage for integrators |\n","readmeExcerpt":"--- name: okx-dex-quote description: > Fetch optimal swap quotes from OKX DEX Aggregator API (v6). Use this skill when a user wants to: 1. Get the best price for swapping tokens on any supported EVM/Solana chain 2. Compare DEX routing paths and price impact for token swaps 3. Build applications or scripts that query real-time DEX aggregator pricing Core value: Generates correct, authenticated API calls with proper to","codeSnippets":[],"executableExamples":[{"language":"text","snippet":"GET https://web3.okx.com/api/v6/dex/aggregator/quote"},{"language":"text","snippet":"OK-ACCESS-KEY: <api_key>\nOK-ACCESS-SIGN: <hmac_signature>\nOK-ACCESS-PASSPHRASE: <passphrase>\nOK-ACCESS-TIMESTAMP: <iso8601_timestamp>"},{"language":"text","snippet":"timestamp = ISO 8601 UTC time (e.g., \"2025-01-15T12:00:00.000Z\")\nprehash = timestamp + \"GET\" + request_path_with_query\nsignature = Base64(HMAC-SHA256(secret_key, prehash))"},{"language":"text","snippet":"/api/v6/dex/aggregator/quote?chainIndex=1&amount=1000000000000000000&fromTokenAddress=0xeee...&toTokenAddress=0xa0b..."},{"language":"json","snippet":"{\n  \"code\": \"0\",\n  \"data\": [{\n    \"chainIndex\": \"1\",\n    \"fromToken\": { \"tokenSymbol\": \"ETH\", \"decimal\": \"18\", ... },\n    \"toToken\": { \"tokenSymbol\": \"USDC\", \"decimal\": \"6\", ... },\n    \"fromTokenAmount\": \"1000000000000000000\",\n    \"toTokenAmount\": \"3521432100\",\n    \"dexRouterList\": [...],\n    \"tradeFee\": \"2.45\",\n    \"estimateGasFee\": \"150000\",\n    \"priceImpactPercent\": \"-0.12\"\n  }],\n  \"msg\": \"\"\n}"},{"language":"text","snippet":"human_amount = raw_amount / (10 ** decimal)"}],"parameters":{},"dependencies":[],"permissions":[],"extractedFiles":[],"languages":["typescript"],"docsSourceLabel":"CLAWHUB","editorialOverview":"Fetch optimal swap quotes from OKX DEX Aggregator API (v6). Use this skill when a user wants to: 1. Get the best price for swapping tokens on any supported EVM/Solana chain 2. Compare DEX routing paths and price impact for token swaps 3. Build applications or scripts that query real-time DEX aggregator pricing Core value: Generates correct, authenticated API calls with proper token decimals, amount formatting, HMAC-SHA256 signing, and comprehensive error handling. --- name: okx-dex-quote description: > Fetch optimal swap quotes from OKX DEX Aggregator API (v6). Use this skill when a user wants to: 1. Get the best price for swapping tokens on any supported EVM/Solana chain 2. Compare DEX routing paths and price impact for token swaps 3. Build applications or scripts that query real-time DEX aggregator pricing Core value: Generates correct, authenticated API calls with proper to","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":447,"uniquenessScore":58,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-10T01:43:11.631Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}