9.6k★by 0xterrybit
0x-swap – OpenClaw Skill
0x-swap is an OpenClaw Skills integration for coding workflows. 0x Protocol DEX aggregator. Swap tokens at the best rates across 9+ liquidity sources on Ethereum, Polygon, BSC, and more.
Skill Snapshot
| name | 0x-swap |
| description | 0x Protocol DEX aggregator. Swap tokens at the best rates across 9+ liquidity sources on Ethereum, Polygon, BSC, and more. OpenClaw Skills integration. |
| owner | 0xterrybit |
| repository | 0xterrybit/0x-swap |
| language | Markdown |
| license | MIT |
| topics | |
| security | L1 |
| install | openclaw add @0xterrybit/0x-swap |
| last updated | Feb 7, 2026 |
Maintainer

name: 0x-swap description: 0x Protocol DEX aggregator. Swap tokens at the best rates across 9+ liquidity sources on Ethereum, Polygon, BSC, and more. metadata: {"clawdbot":{"emoji":"🔷","always":true,"requires":{"bins":["curl","jq"]}}}
0x Swap API 🔷
Professional-grade DEX aggregation. Best execution across 9+ liquidity sources with MEV protection.
Environment Variables
| Variable | Description | Required |
|---|---|---|
ZEROX_API_KEY | 0x API Key (get free at 0x.org) | Yes |
💎 Swap Fee Configuration
This skill includes a small swap fee (0.3%) to support development. The fee is transparently disclosed to users before each swap.
| Variable | Value | Description |
|---|---|---|
SWAP_FEE_BPS | 30 | 0.3% swap fee (30 basis points) |
SWAP_FEE_RECIPIENT | 0x890CACd9dEC1E1409C6598Da18DC3d634e600b45 | EVM wallet to receive fees |
SWAP_FEE_TOKEN | outputToken | Collect fee in output token |
Fee Breakdown:
- User pays: 0.3% of swap output
- Developer receives: 100% of fee
- Fees are collected on-chain directly to your wallet
Features
- 🔄 DEX Aggregation - Best rates across Uniswap, SushiSwap, Curve, etc.
- 🛡️ MEV Protection - Gasless swaps with MEV protection
- ⛓️ Multi-Chain - Ethereum, Polygon, BSC, Arbitrum, Optimism, Base
- 📊 Real-time Analytics - Trade insights and execution quality
- 💰 Native Monetization - Built-in swap fee support
API Base URLs
| Chain | URL |
|---|---|
| Ethereum | https://api.0x.org |
| Polygon | https://polygon.api.0x.org |
| BSC | https://bsc.api.0x.org |
| Arbitrum | https://arbitrum.api.0x.org |
| Optimism | https://optimism.api.0x.org |
| Base | https://base.api.0x.org |
Get Swap Quote
API_KEY="${ZEROX_API_KEY}"
CHAIN_ID="1" # Ethereum
# Token addresses
SELL_TOKEN="0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" # WETH
BUY_TOKEN="0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48" # USDC
SELL_AMOUNT="1000000000000000000" # 1 ETH in wei
TAKER="<YOUR_WALLET>"
# Swap fee configuration
SWAP_FEE_BPS="30" # 0.3%
SWAP_FEE_RECIPIENT="0x890CACd9dEC1E1409C6598Da18DC3d634e600b45"
SWAP_FEE_TOKEN="${BUY_TOKEN}" # Collect fee in output token
curl -s "https://api.0x.org/swap/permit2/quote" \
-H "0x-api-key: ${API_KEY}" \
-H "0x-version: v2" \
-G \
--data-urlencode "chainId=${CHAIN_ID}" \
--data-urlencode "sellToken=${SELL_TOKEN}" \
--data-urlencode "buyToken=${BUY_TOKEN}" \
--data-urlencode "sellAmount=${SELL_AMOUNT}" \
--data-urlencode "taker=${TAKER}" \
--data-urlencode "swapFeeBps=${SWAP_FEE_BPS}" \
--data-urlencode "swapFeeRecipient=${SWAP_FEE_RECIPIENT}" \
--data-urlencode "swapFeeToken=${SWAP_FEE_TOKEN}" | jq '{
buyAmount: .buyAmount,
sellAmount: .sellAmount,
price: .price,
estimatedGas: .gas,
route: .route,
swapFee: {
bps: .swapFeeBps,
recipient: .swapFeeRecipient,
amount: .swapFeeAmount
}
}'
Get Price (No Transaction)
curl -s "https://api.0x.org/swap/permit2/price" \
-H "0x-api-key: ${API_KEY}" \
-H "0x-version: v2" \
-G \
--data-urlencode "chainId=1" \
--data-urlencode "sellToken=0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" \
--data-urlencode "buyToken=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48" \
--data-urlencode "sellAmount=1000000000000000000" | jq '{
price: .price,
buyAmount: .buyAmount,
sources: .sources
}'
Execute Swap (with Permit2)
# 1. Get quote with transaction data
QUOTE=$(curl -s "https://api.0x.org/swap/permit2/quote" \
-H "0x-api-key: ${API_KEY}" \
-H "0x-version: v2" \
-G \
--data-urlencode "chainId=1" \
--data-urlencode "sellToken=${SELL_TOKEN}" \
--data-urlencode "buyToken=${BUY_TOKEN}" \
--data-urlencode "sellAmount=${SELL_AMOUNT}" \
--data-urlencode "taker=${TAKER}" \
--data-urlencode "swapFeeBps=${SWAP_FEE_BPS}" \
--data-urlencode "swapFeeRecipient=${SWAP_FEE_RECIPIENT}" \
--data-urlencode "swapFeeToken=${SWAP_FEE_TOKEN}")
# 2. Extract transaction data
TX_TO=$(echo "$QUOTE" | jq -r '.transaction.to')
TX_DATA=$(echo "$QUOTE" | jq -r '.transaction.data')
TX_VALUE=$(echo "$QUOTE" | jq -r '.transaction.value')
TX_GAS=$(echo "$QUOTE" | jq -r '.transaction.gas')
# 3. Sign and send transaction using your wallet
# (requires web3 library or wallet integration)
Gasless Swap (MEV Protected)
# Request gasless quote
curl -s "https://api.0x.org/swap/permit2/quote" \
-H "0x-api-key: ${API_KEY}" \
-H "0x-version: v2" \
-G \
--data-urlencode "chainId=1" \
--data-urlencode "sellToken=${SELL_TOKEN}" \
--data-urlencode "buyToken=${BUY_TOKEN}" \
--data-urlencode "sellAmount=${SELL_AMOUNT}" \
--data-urlencode "taker=${TAKER}" \
--data-urlencode "swapFeeBps=${SWAP_FEE_BPS}" \
--data-urlencode "swapFeeRecipient=${SWAP_FEE_RECIPIENT}" \
--data-urlencode "swapFeeToken=${SWAP_FEE_TOKEN}" \
--data-urlencode "gasless=true" | jq '.'
Supported Chains
| Chain | ID | Native Token |
|---|---|---|
| Ethereum | 1 | ETH |
| Polygon | 137 | MATIC |
| BSC | 56 | BNB |
| Arbitrum | 42161 | ETH |
| Optimism | 10 | ETH |
| Base | 8453 | ETH |
| Avalanche | 43114 | AVAX |
| Fantom | 250 | FTM |
| Celo | 42220 | CELO |
Common Token Addresses (Ethereum)
| Token | Address |
|---|---|
| WETH | 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 |
| USDC | 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 |
| USDT | 0xdAC17F958D2ee523a2206206994597C13D831ec7 |
| DAI | 0x6B175474E89094C44Da98b954EesdeAC495271d0F |
| WBTC | 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 |
Safety Rules
- ALWAYS display swap details before execution
- WARN if price impact > 1%
- CHECK token allowance before swap
- VERIFY output amount matches quote
- NEVER execute without user confirmation
Error Handling
| Error | Cause | Solution |
|---|---|---|
INSUFFICIENT_ASSET_LIQUIDITY | Low liquidity | Reduce amount |
VALIDATION_FAILED | Invalid parameters | Check token addresses |
RATE_LIMIT_EXCEEDED | Too many requests | Wait and retry |
Links
0x Swap API 🔷
Professional DEX aggregator skill for Clawdbot.
Features
- 🔄 DEX Aggregation - Best rates across 9+ liquidity sources
- 🛡️ MEV Protection - Gasless swaps with MEV protection
- ⛓️ Multi-Chain - Ethereum, Polygon, BSC, Arbitrum, Optimism, Base
- 📊 Real-time Analytics - Trade insights
- 💰 Native Monetization - Built-in swap fee support
Installation
clawdhub install 0x-swap
Configuration
export ZEROX_API_KEY="your-api-key" # Get free at 0x.org
Usage Examples
"Swap 1 ETH for USDC on Ethereum"
"Get best price for 1000 USDC to ETH"
"Execute gasless swap with MEV protection"
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 small swap fee (0.3%) to support development. The fee is transparently disclosed to users before each swap. | Variable | Value | Description | |----------|-------|-------------| | `SWAP_FEE_BPS` | 30 | 0.3% swap fee (30 basis points) | | `SWAP_FEE_RECIPIENT` | `0x890CACd9dEC1E1409C6598Da18DC3d634e600b45` | EVM wallet to receive fees | | `SWAP_FEE_TOKEN` | `outputToken` | Collect fee in output token | **Fee Breakdown:** - User pays: 0.3% of swap output - Developer receives: 100% of fee - Fees are collected on-chain directly to your wallet
FAQ
How do I install 0x-swap?
Run openclaw add @0xterrybit/0x-swap in your terminal. This installs 0x-swap 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/0x-swap. Review commits and README documentation before installing.
