public/skills/0xterrybit/0x-swap/SKILL.md
0x Protocol DEX aggregator. Swap tokens at the best rates across 9+ liquidity sources on Ethereum, Polygon, BSC, and more.
npx skillsauth add demerzels-lab/elsamultiskillagent 0x-swapInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Professional-grade DEX aggregation. Best execution across 9+ liquidity sources with MEV protection.
| Variable | Description | Required |
|----------|-------------|----------|
| ZEROX_API_KEY | 0x API Key (get free at 0x.org) | Yes |
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:
| 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 |
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
}
}'
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
}'
# 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)
# 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 '.'
| 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 |
| Token | Address | |-------|---------| | WETH | 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 | | USDC | 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 | | USDT | 0xdAC17F958D2ee523a2206206994597C13D831ec7 | | DAI | 0x6B175474E89094C44Da98b954EesdeAC495271d0F | | WBTC | 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 |
| 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 |
testing
Query real-time and historical financial data across equities and crypto—prices, market moves, metrics, and trends for analysis, alerts, and reporting.
data-ai
YouTube SERP Scout for agents. Search top-ranking videos, channels, and trends for content research and competitor tracking.
development
Search X (Twitter) in real time, extract relevant posts, and publish tweets/replies instantly—perfect for social listening, engagement, and rapid content ops.
development
Intelligent search for agents. Multi-source retrieval with confidence scoring - web, academic, and Tavily in one unified API.