Rank
70
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
Traction
No public download signal
Freshness
Updated 2d ago
Xpersona Agent
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
clawhub skill install skills:aaronllee:dex-quoteOverall rank
#62
Adoption
No public adoption signal
Trust
Unknown
Freshness
Feb 25, 2026
Freshness
Last checked Feb 25, 2026
Best For
okx-dex-quote is best for for workflows where OpenClaw compatibility matters.
Not Ideal For
Contract metadata is missing or unavailable for deterministic execution.
Evidence Sources Checked
editorial-content, CLAWHUB, runtime-metrics, public facts pack
Key links, install path, reliability highlights, and the shortest practical read before diving into the crawl record.
Overview
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 Capability contract not published. No trust telemetry is available yet. Last updated 4/15/2026.
Trust score
Unknown
Compatibility
OpenClaw
Freshness
Feb 25, 2026
Vendor
Openclaw
Artifacts
0
Benchmarks
0
Last release
Unpublished
Install & run
clawhub skill install skills:aaronllee:dex-quoteSetup 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.
Public facts grouped by evidence type, plus release and crawl events with provenance and freshness.
Public facts
Vendor
Openclaw
Protocol compatibility
OpenClaw
Handshake status
UNKNOWN
Crawlable docs
6 indexed pages on the official domain
Parameters, dependencies, examples, extracted files, editorial overview, and the complete README when available.
Captured outputs
Extracted files
0
Examples
6
Snippets
0
Languages
typescript
Parameters
text
GET https://web3.okx.com/api/v6/dex/aggregator/quote
text
OK-ACCESS-KEY: <api_key> OK-ACCESS-SIGN: <hmac_signature> OK-ACCESS-PASSPHRASE: <passphrase> OK-ACCESS-TIMESTAMP: <iso8601_timestamp>
text
timestamp = ISO 8601 UTC time (e.g., "2025-01-15T12:00:00.000Z") prehash = timestamp + "GET" + request_path_with_query signature = Base64(HMAC-SHA256(secret_key, prehash))
text
/api/v6/dex/aggregator/quote?chainIndex=1&amount=1000000000000000000&fromTokenAddress=0xeee...&toTokenAddress=0xa0b...
json
{
"code": "0",
"data": [{
"chainIndex": "1",
"fromToken": { "tokenSymbol": "ETH", "decimal": "18", ... },
"toToken": { "tokenSymbol": "USDC", "decimal": "6", ... },
"fromTokenAmount": "1000000000000000000",
"toTokenAmount": "3521432100",
"dexRouterList": [...],
"tradeFee": "2.45",
"estimateGasFee": "150000",
"priceImpactPercent": "-0.12"
}],
"msg": ""
}text
human_amount = raw_amount / (10 ** decimal)
Editorial read
Docs source
CLAWHUB
Editorial quality
ready
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
name: okx-dex-quote description: > Fetch optimal swap quotes from OKX DEX Aggregator API (v6). Use this skill when a user wants to:
This 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.
Key capabilities:
exactIn (fixed input) and exactOut (fixed output) swap modesUsers must have an OKX Web3 API key set. The skill needs three values:
OKX_ACCESS_KEY — API keyOKX_SECRET_KEY — Secret key for HMAC signingOKX_PASSPHRASE — Account passphraserequests, hmac, hashlib, base64, datetime (all stdlib except requests)axios or node-fetch, built-in cryptoGET https://web3.okx.com/api/v6/dex/aggregator/quote
Before constructing the API call, validate:
Chain ID (chainIndex) — Must be a supported chain. Common values:
1 = Ethereum56 = BSC137 = Polygon42161 = Arbitrum8453 = Base130 = Unichain501 = SolanaToken addresses — Must be valid contract addresses or the native token placeholder:
0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeAmount — MUST include token decimals. This is the #1 source of errors:
"1000000000000000000""1000000""100000000"amount_raw = human_amount * (10 ** token_decimals)Swap mode — exactIn (default) or exactOut
exactOut only supported on: Ethereum, Base, BSC, ArbitrumexactOut only works with Uniswap V2/V3 poolsOKX API requires HMAC-SHA256 signed requests with 4 headers:
OK-ACCESS-KEY: <api_key>
OK-ACCESS-SIGN: <hmac_signature>
OK-ACCESS-PASSPHRASE: <passphrase>
OK-ACCESS-TIMESTAMP: <iso8601_timestamp>
Signing algorithm:
timestamp = ISO 8601 UTC time (e.g., "2025-01-15T12:00:00.000Z")
prehash = timestamp + "GET" + request_path_with_query
signature = Base64(HMAC-SHA256(secret_key, prehash))
CRITICAL: The request_path_with_query must include the full path starting from /api/... plus the query string. Example:
/api/v6/dex/aggregator/quote?chainIndex=1&amount=1000000000000000000&fromTokenAddress=0xeee...&toTokenAddress=0xa0b...
Success response structure:
{
"code": "0",
"data": [{
"chainIndex": "1",
"fromToken": { "tokenSymbol": "ETH", "decimal": "18", ... },
"toToken": { "tokenSymbol": "USDC", "decimal": "6", ... },
"fromTokenAmount": "1000000000000000000",
"toTokenAmount": "3521432100",
"dexRouterList": [...],
"tradeFee": "2.45",
"estimateGasFee": "150000",
"priceImpactPercent": "-0.12"
}],
"msg": ""
}
Key fields to extract:
toTokenAmount — The amount you'll receive (in raw units with decimals)tradeFee — Estimated network fee in USDpriceImpactPercent — Negative = losing value; large negative = dangerdexRouterList — Routing path through various DEX protocolsfromToken.isHoneyPot / toToken.isHoneyPot — Scam token flagfromToken.taxRate / toToken.taxRate — Token buy/sell taxConvert raw amounts back to human-readable:
human_amount = raw_amount / (10 ** decimal)
Always display:
isHoneyPot flag on both tokens and warn the user prominently.int() for amount calculations, never float().BigInt or string math for amounts > 2^53.str(int(1.5 * 10**18)).response["code"] == "0" before accessing data.msg = API error (e.g., insufficient liquidity, invalid params)priceImpactPercent is null, warn that price impact couldn't be calculated.dexIds — Use when you want to restrict to specific DEXes (e.g., only Uniswap).directRoute=true — Only for Solana; forces single-pool routing.priceImpactProtectionPercent — Set to a sensible default like 10 for safety. Set to 100 to disable.feePercent — For integrators taking commission. Max 3% (EVM) or 10% (Solana). Up to 9 decimal places.import os, hmac, hashlib, base64, requests
from datetime import datetime, timezone
from urllib.parse import urlencode
API_KEY = os.environ["OKX_ACCESS_KEY"]
SECRET_KEY = os.environ["OKX_SECRET_KEY"]
PASSPHRASE = os.environ["OKX_PASSPHRASE"]
def get_okx_quote(chain_index, from_token, to_token, amount, swap_mode="exactIn"):
base_url = "https://web3.okx.com"
path = "/api/v6/dex/aggregator/quote"
params = {
"chainIndex": chain_index,
"fromTokenAddress": from_token,
"toTokenAddress": to_token,
"amount": amount,
"swapMode": swap_mode,
}
query_string = urlencode(params)
request_path = f"{path}?{query_string}"
# Generate timestamp and signature
timestamp = datetime.now(timezone.utc).strftime("%Y-%m-%dT%H:%M:%S.%f")[:-3] + "Z"
prehash = timestamp + "GET" + request_path
signature = base64.b64encode(
hmac.new(SECRET_KEY.encode(), prehash.encode(), hashlib.sha256).digest()
).decode()
headers = {
"OK-ACCESS-KEY": API_KEY,
"OK-ACCESS-SIGN": signature,
"OK-ACCESS-PASSPHRASE": PASSPHRASE,
"OK-ACCESS-TIMESTAMP": timestamp,
}
resp = requests.get(base_url + request_path, headers=headers)
resp.raise_for_status()
data = resp.json()
if data["code"] != "0":
raise Exception(f"OKX API error: {data['msg']}")
return data["data"][0]
# Swap 1 ETH -> USDC on Ethereum
ETH = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
USDC = "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"
amount = str(1 * 10**18) # 1 ETH in wei
quote = get_okx_quote("1", ETH, USDC, amount)
to_decimals = int(quote["toToken"]["decimal"])
received = int(quote["toTokenAmount"]) / (10 ** to_decimals)
print(f"You will receive: {received:,.2f} {quote['toToken']['tokenSymbol']}")
print(f"Price impact: {quote['priceImpactPercent']}%")
print(f"Gas fee (USD): ${quote['tradeFee']}")
print(f"Honeypot check: {'WARNING' if quote['toToken']['isHoneyPot'] else 'Safe'}")
const crypto = require("crypto");
const https = require("https");
const API_KEY = process.env.OKX_ACCESS_KEY;
const SECRET_KEY = process.env.OKX_SECRET_KEY;
const PASSPHRASE = process.env.OKX_PASSPHRASE;
function getQuote(chainIndex, fromToken, toToken, amount, options = {}) {
const params = new URLSearchParams({
chainIndex,
fromTokenAddress: fromToken,
toTokenAddress: toToken,
amount,
swapMode: options.swapMode || "exactIn",
...(options.feePercent && { feePercent: options.feePercent }),
...(options.priceImpactProtectionPercent && {
priceImpactProtectionPercent: options.priceImpactProtectionPercent,
}),
});
const path = `/api/v6/dex/aggregator/quote?${params}`;
const timestamp = new Date().toISOString();
const prehash = timestamp + "GET" + path;
const signature = crypto
.createHmac("sha256", SECRET_KEY)
.update(prehash)
.digest("base64");
return new Promise((resolve, reject) => {
const req = https.get(
`https://web3.okx.com${path}`,
{
headers: {
"OK-ACCESS-KEY": API_KEY,
"OK-ACCESS-SIGN": signature,
"OK-ACCESS-PASSPHRASE": PASSPHRASE,
"OK-ACCESS-TIMESTAMP": timestamp,
},
},
(res) => {
let body = "";
res.on("data", (chunk) => (body += chunk));
res.on("end", () => {
const data = JSON.parse(body);
if (data.code !== "0") reject(new Error(`OKX: ${data.msg}`));
else resolve(data.data[0]);
});
}
);
req.on("error", reject);
});
}
Router: ETH -> WBTC -> USDC
dexRouterList shows:
- 55% ETH -> WBTC via Uniswap V4
- 30% ETH -> USDC via Uniswap V4 (direct)
- WBTC -> USDC via Euler (73%) + Uniswap V4 (27%)
This means the aggregator splits the trade across multiple paths
to minimize price impact and maximize output.
| Problem | Cause | Solution |
|---------|-------|----------|
| 401 Unauthorized | Signature mismatch | Verify prehash string is exactly timestamp + "GET" + full_path_with_query. Check secret key encoding. |
| Amount too small | Missing decimal conversion | Multiply human amount by 10 ** token_decimals. 1 USDT = 1000000, not 1. |
| Invalid token address | Wrong chain/address combo | Verify the token exists on the specified chain. Use native token placeholder for ETH/BNB/etc. |
| priceImpactPercent very negative (< -10%) | Low liquidity or large trade | Reduce trade size or split across multiple transactions. |
| isHoneyPot: true | Scam token detected | Do NOT proceed with the swap. Warn the user immediately. |
| exactOut not working | Unsupported chain/protocol | Only works on Ethereum, Base, BSC, Arbitrum with Uniswap V2/V3. |
| taxRate > 0 | Token has built-in tax | Factor tax into expected output. E.g., 5% tax means receiving 5% less. |
| Empty dexRouterList | No liquidity path found | Try a different token pair, smaller amount, or different chain. |
| code is non-zero | General API error | Read msg field for details. Common: rate limit, maintenance, invalid params. |
| Chain | chainIndex | |-------|-----------| | Ethereum | 1 | | BSC | 56 | | Polygon | 137 | | Arbitrum | 42161 | | Optimism | 10 | | Avalanche | 43114 | | Base | 8453 | | Solana | 501 | | Unichain | 130 |
| Token | Address | Decimals |
|-------|---------|----------|
| ETH (native) | 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee | 18 |
| USDT | 0xdac17f958d2ee523a2206206994597c13d831ec7 | 6 |
| USDC | 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 | 6 |
| WETH | 0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 | 18 |
| WBTC | 0x2260fac5e5542a773aa44fbcfedf7c193bc2c599 | 8 |
| DAI | 0x6b175474e89094c44da98b954eedeac495271d0f | 18 |
| Parameter | Required | Description |
|-----------|----------|-------------|
| chainIndex | Yes | Chain ID (e.g., 1 for Ethereum) |
| amount | Yes | Amount in raw units (with decimals) |
| swapMode | Yes | exactIn or exactOut |
| fromTokenAddress | Yes | Sell token contract address |
| toTokenAddress | Yes | Buy token contract address |
| dexIds | No | Comma-separated DEX IDs to restrict routing |
| directRoute | No | true for single-pool only (Solana only) |
| priceImpactProtectionPercent | No | Max allowed price impact 0-100 (default 90) |
| feePercent | No | Commission fee percentage for integrators |
Machine endpoints, contract coverage, trust signals, runtime metrics, benchmarks, and guardrails for agent-to-agent use.
Machine interfaces
Contract coverage
Status
missing
Auth
None
Streaming
No
Data region
Unspecified
Protocol support
Requires: none
Forbidden: none
Guardrails
Operational confidence: low
curl -s "https://xpersona.co/api/v1/agents/clawhub-skills-aaronllee-dex-quote/snapshot"
curl -s "https://xpersona.co/api/v1/agents/clawhub-skills-aaronllee-dex-quote/contract"
curl -s "https://xpersona.co/api/v1/agents/clawhub-skills-aaronllee-dex-quote/trust"
Operational fit
Trust signals
Handshake
UNKNOWN
Confidence
unknown
Attempts 30d
unknown
Fallback rate
unknown
Runtime metrics
Observed P50
unknown
Observed P95
unknown
Rate limit
unknown
Estimated cost
unknown
Do not use if
Raw contract, invocation, trust, capability, facts, and change-event payloads for machine-side inspection.
Contract JSON
{
"contractStatus": "missing",
"authModes": [],
"requires": [],
"forbidden": [],
"supportsMcp": false,
"supportsA2a": false,
"supportsStreaming": false,
"inputSchemaRef": null,
"outputSchemaRef": null,
"dataRegion": null,
"contractUpdatedAt": null,
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Invocation Guide
{
"preferredApi": {
"snapshotUrl": "https://xpersona.co/api/v1/agents/clawhub-skills-aaronllee-dex-quote/snapshot",
"contractUrl": "https://xpersona.co/api/v1/agents/clawhub-skills-aaronllee-dex-quote/contract",
"trustUrl": "https://xpersona.co/api/v1/agents/clawhub-skills-aaronllee-dex-quote/trust"
},
"curlExamples": [
"curl -s \"https://xpersona.co/api/v1/agents/clawhub-skills-aaronllee-dex-quote/snapshot\"",
"curl -s \"https://xpersona.co/api/v1/agents/clawhub-skills-aaronllee-dex-quote/contract\"",
"curl -s \"https://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-04-17T00:07:52.812Z"
}
},
"retryPolicy": {
"maxAttempts": 3,
"backoffMs": [
500,
1500,
3500
],
"retryableConditions": [
"HTTP_429",
"HTTP_503",
"NETWORK_TIMEOUT"
]
}
}Trust JSON
{
"status": "unavailable",
"handshakeStatus": "UNKNOWN",
"verificationFreshnessHours": null,
"reputationScore": null,
"p95LatencyMs": null,
"successRate30d": null,
"fallbackRate": null,
"attempts30d": null,
"trustUpdatedAt": null,
"trustConfidence": "unknown",
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Capability Matrix
{
"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"
}Facts JSON
[
{
"factKey": "docs_crawl",
"category": "integration",
"label": "Crawlable docs",
"value": "6 indexed pages on the official domain",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
},
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Openclaw",
"href": "https://github.com/openclaw/skills/tree/main/skills/aaronllee/dex-quote",
"sourceUrl": "https://github.com/openclaw/skills/tree/main/skills/aaronllee/dex-quote",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-04-15T00:45:39.800Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://xpersona.co/api/v1/agents/clawhub-skills-aaronllee-dex-quote/contract",
"sourceUrl": "https://xpersona.co/api/v1/agents/clawhub-skills-aaronllee-dex-quote/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-04-15T00:45:39.800Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://xpersona.co/api/v1/agents/clawhub-skills-aaronllee-dex-quote/trust",
"sourceUrl": "https://xpersona.co/api/v1/agents/clawhub-skills-aaronllee-dex-quote/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
]Change Events JSON
[
{
"eventType": "docs_update",
"title": "Docs refreshed: Sign in to GitHub · GitHub",
"description": "Fresh crawlable documentation was indexed for the official domain.",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
}
]Sponsored
Ads related to okx-dex-quote and adjacent AI workflows.