skills$openclaw/odos
0xterrybit7.9k

by 0xterrybit

odos – OpenClaw Skill

odos is an OpenClaw Skills integration for coding workflows. Odos smart order routing DEX aggregator. Best swap rates with patented SOR algorithm across 500+ liquidity sources.

7.9k stars5.1k forksSecurity L1
Updated Feb 7, 2026Created Feb 7, 2026coding

Skill Snapshot

nameodos
descriptionOdos smart order routing DEX aggregator. Best swap rates with patented SOR algorithm across 500+ liquidity sources. OpenClaw Skills integration.
owner0xterrybit
repository0xterrybit/odos
languageMarkdown
licenseMIT
topics
securityL1
installopenclaw add @0xterrybit/odos
last updatedFeb 7, 2026

Maintainer

0xterrybit

0xterrybit

Maintains odos in the OpenClaw Skills directory.

View GitHub profile
File Explorer
3 files
.
_meta.json
264 B
README.md
601 B
SKILL.md
5.6 KB
SKILL.md

name: odos description: Odos smart order routing DEX aggregator. Best swap rates with patented SOR algorithm across 500+ liquidity sources. metadata: {"clawdbot":{"emoji":"🔮","always":true,"requires":{"bins":["curl","jq"]}}}

Odos 🔮

Smart Order Routing DEX aggregator. Patented algorithm for best execution across 500+ liquidity sources.

💎 Referral Fee Configuration

This skill includes a referral fee (1%) to support development.

VariableValueDescription
REFERRAL_CODE0Referral code (0 = default)
FEE_RECIPIENT0x890CACd9dEC1E1409C6598Da18DC3d634e600b45EVM wallet to receive fees
COMPACTtrueUse compact calldata for gas savings

Fee Breakdown:

  • User pays: ~1% of swap output (configurable)
  • Referrer receives: 100% of fee
  • Fees are collected on-chain directly to your wallet

Features

  • 🔄 500+ Liquidity Sources - Uniswap, SushiSwap, Curve, Balancer, etc.
  • ⛓️ Multi-Chain - Ethereum, Arbitrum, Optimism, Polygon, Base, Avalanche
  • 🧠 Smart Order Routing - Patented SOR algorithm
  • 📊 Multi-Input Swaps - Swap multiple tokens at once
  • 💰 Referral Program - Earn on every swap
  • Gas Optimized - Compact calldata for lower gas

API Base URL

https://api.odos.xyz

Get Swap Quote

CHAIN_ID="1"  # Ethereum

# Token addresses
INPUT_TOKEN="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"   # ETH
OUTPUT_TOKEN="0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"  # USDC
INPUT_AMOUNT="1000000000000000000"  # 1 ETH in wei
USER_ADDRESS="<YOUR_WALLET>"

# Referral configuration
REFERRAL_CODE="0"

curl -s -X POST "https://api.odos.xyz/sor/quote/v2" \
  -H "Content-Type: application/json" \
  -d "{
    \"chainId\": ${CHAIN_ID},
    \"inputTokens\": [{
      \"tokenAddress\": \"${INPUT_TOKEN}\",
      \"amount\": \"${INPUT_AMOUNT}\"
    }],
    \"outputTokens\": [{
      \"tokenAddress\": \"${OUTPUT_TOKEN}\",
      \"proportion\": 1
    }],
    \"userAddr\": \"${USER_ADDRESS}\",
    \"slippageLimitPercent\": 1,
    \"referralCode\": ${REFERRAL_CODE},
    \"compact\": true
  }" | jq '{
    inAmounts: .inAmounts,
    outAmounts: .outAmounts,
    gasEstimate: .gasEstimate,
    pathId: .pathId
  }'

Assemble Transaction

PATH_ID="<PATH_ID_FROM_QUOTE>"

curl -s -X POST "https://api.odos.xyz/sor/assemble" \
  -H "Content-Type: application/json" \
  -d "{
    \"userAddr\": \"${USER_ADDRESS}\",
    \"pathId\": \"${PATH_ID}\",
    \"simulate\": false
  }" | jq '{
    to: .transaction.to,
    data: .transaction.data,
    value: .transaction.value,
    gasLimit: .transaction.gas
  }'

Multi-Input Swap (Swap Multiple Tokens)

# Swap ETH + USDC to DAI
curl -s -X POST "https://api.odos.xyz/sor/quote/v2" \
  -H "Content-Type: application/json" \
  -d "{
    \"chainId\": ${CHAIN_ID},
    \"inputTokens\": [
      {
        \"tokenAddress\": \"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE\",
        \"amount\": \"500000000000000000\"
      },
      {
        \"tokenAddress\": \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",
        \"amount\": \"500000000\"
      }
    ],
    \"outputTokens\": [{
      \"tokenAddress\": \"0x6B175474E89094C44Da98b954EesdeAC495271d0F\",
      \"proportion\": 1
    }],
    \"userAddr\": \"${USER_ADDRESS}\",
    \"slippageLimitPercent\": 1,
    \"referralCode\": ${REFERRAL_CODE},
    \"compact\": true
  }" | jq '.'

Multi-Output Swap (Split to Multiple Tokens)

# Swap ETH to 50% USDC + 50% DAI
curl -s -X POST "https://api.odos.xyz/sor/quote/v2" \
  -H "Content-Type: application/json" \
  -d "{
    \"chainId\": ${CHAIN_ID},
    \"inputTokens\": [{
      \"tokenAddress\": \"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE\",
      \"amount\": \"${INPUT_AMOUNT}\"
    }],
    \"outputTokens\": [
      {
        \"tokenAddress\": \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",
        \"proportion\": 0.5
      },
      {
        \"tokenAddress\": \"0x6B175474E89094C44Da98b954EedeAC495271d0F\",
        \"proportion\": 0.5
      }
    ],
    \"userAddr\": \"${USER_ADDRESS}\",
    \"slippageLimitPercent\": 1,
    \"referralCode\": ${REFERRAL_CODE},
    \"compact\": true
  }" | jq '.'

Supported Chains

ChainIDNative Token
Ethereum1ETH
Arbitrum42161ETH
Optimism10ETH
Polygon137MATIC
Base8453ETH
Avalanche43114AVAX
BSC56BNB
Fantom250FTM
zkSync Era324ETH
Linea59144ETH
Mantle5000MNT
Mode34443ETH

Get Token List

curl -s "https://api.odos.xyz/info/tokens/${CHAIN_ID}" | jq '.tokenMap | to_entries[:10] | .[] | {symbol: .value.symbol, address: .key, decimals: .value.decimals}'

Get Liquidity Sources

curl -s "https://api.odos.xyz/info/liquidity-sources/${CHAIN_ID}" | jq '.[] | {id: .id, name: .name}'

Check Contract Info

curl -s "https://api.odos.xyz/info/contract-info/v2/${CHAIN_ID}" | jq '{
  routerAddress: .routerAddress,
  executorAddress: .executorAddress
}'

Safety Rules

  1. ALWAYS display swap details before execution
  2. WARN if price impact > 1%
  3. CHECK token allowance before swap
  4. VERIFY output amounts
  5. NEVER execute without user confirmation
ErrorCauseSolution
NO_PATH_FOUNDNo route availableTry different pair
INSUFFICIENT_LIQUIDITYLow liquidityReduce amount
SLIPPAGE_EXCEEDEDPrice movedIncrease slippage
README.md

Odos 🔮

Smart order routing DEX aggregator skill for Clawdbot.

Features

  • 🔄 500+ Liquidity Sources - Best rates across DEXs
  • ⛓️ Multi-Chain - Ethereum, Arbitrum, Optimism, Polygon, Base
  • 🧠 Smart Order Routing - Patented SOR algorithm
  • 📊 Multi-Input Swaps - Swap multiple tokens at once
  • 💰 Referral Program - Earn on every swap

Installation

clawdhub install odos

Usage Examples

"Swap 1 ETH for USDC on Ethereum"
"Get best price for 1000 USDC to ETH"
"Swap multiple tokens to USDC"

License

MIT

Permissions & Security

Security level L1: Low-risk skills with minimal permissions. Review inputs and outputs before running in production.

Requirements

  • OpenClaw CLI installed and configured.
  • Language: Markdown
  • License: MIT
  • Topics:

Configuration

This skill includes a referral fee (1%) to support development. | Variable | Value | Description | |----------|-------|-------------| | `REFERRAL_CODE` | `0` | Referral code (0 = default) | | `FEE_RECIPIENT` | `0x890CACd9dEC1E1409C6598Da18DC3d634e600b45` | EVM wallet to receive fees | | `COMPACT` | true | Use compact calldata for gas savings | **Fee Breakdown:** - User pays: ~1% of swap output (configurable) - Referrer receives: 100% of fee - Fees are collected on-chain directly to your wallet

FAQ

How do I install odos?

Run openclaw add @0xterrybit/odos in your terminal. This installs odos into your OpenClaw Skills catalog.

Does this skill run locally or in the cloud?

OpenClaw Skills execute locally by default. Review the SKILL.md and permissions before running any skill.

Where can I verify the source code?

The source repository is available at https://github.com/openclaw/skills/tree/main/skills/0xterrybit/odos. Review commits and README documentation before installing.