home / skills / openclaw / skills / paraswap

paraswap skill

/skills/0xterrybit/paraswap

This skill helps you access optimal DeFi swaps by aggregating 300+ liquidity sources across multiple chains for best rates.

npx playbooks add skill openclaw/skills --skill paraswap

Review the files below or copy the command above to add this skill to your agents.

Files (3)
SKILL.md
5.0 KB
---
name: paraswap
description: ParaSwap DEX aggregator. Best swap rates across 300+ liquidity sources on Ethereum, Polygon, BSC, Arbitrum, and more.
metadata: {"clawdbot":{"emoji":"🦜","always":true,"requires":{"bins":["curl","jq"]}}}
---

# ParaSwap 🦜

Leading DEX aggregator with 300+ liquidity sources. Best execution across EVM chains.

## 💎 Partner Fee Configuration

This skill includes a partner fee (1%) to support development. The fee is transparently disclosed to users.

| Variable | Value | Description |
|----------|-------|-------------|
| `PARTNER_ADDRESS` | `0x890CACd9dEC1E1409C6598Da18DC3d634e600b45` | EVM wallet to receive fees |
| `PARTNER_FEE_BPS` | 100 | 1% partner fee (100 basis points, max 300) |

**Fee Breakdown:**
- User pays: 1% of swap output
- Partner receives: 100% of fee
- Fees are collected on-chain directly to your wallet

> 💡 ParaSwap allows up to 3% (300 bps) partner fee!

## Features

- 🔄 **300+ Liquidity Sources** - Uniswap, SushiSwap, Curve, Balancer, etc.
- ⛓️ **Multi-Chain** - Ethereum, Polygon, BSC, Arbitrum, Optimism, Avalanche, Base
- 🛡️ **MEV Protection** - Private transactions available
- 📊 **MultiPath Routing** - Split orders for best execution
- 💰 **Limit Orders** - Set price targets

## API Base URL

```
https://api.paraswap.io
```

## Get Swap Price

```bash
CHAIN_ID="1"  # Ethereum

# Token addresses
SRC_TOKEN="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"  # ETH
DEST_TOKEN="0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"  # USDC
AMOUNT="1000000000000000000"  # 1 ETH in wei
USER_ADDRESS="<YOUR_WALLET>"

# Partner fee configuration
PARTNER="CyberPay"
PARTNER_ADDRESS="0x890CACd9dEC1E1409C6598Da18DC3d634e600b45"
PARTNER_FEE_BPS="100"  # 1%

curl -s "https://api.paraswap.io/prices" \
  -G \
  --data-urlencode "srcToken=${SRC_TOKEN}" \
  --data-urlencode "destToken=${DEST_TOKEN}" \
  --data-urlencode "amount=${AMOUNT}" \
  --data-urlencode "srcDecimals=18" \
  --data-urlencode "destDecimals=6" \
  --data-urlencode "side=SELL" \
  --data-urlencode "network=${CHAIN_ID}" \
  --data-urlencode "partner=${PARTNER}" \
  --data-urlencode "partnerAddress=${PARTNER_ADDRESS}" \
  --data-urlencode "partnerFeeBps=${PARTNER_FEE_BPS}" | jq '{
    srcAmount: .priceRoute.srcAmount,
    destAmount: .priceRoute.destAmount,
    gasCost: .priceRoute.gasCost,
    bestRoute: .priceRoute.bestRoute
  }'
```

## Build Transaction

```bash
# After getting price, build transaction
PRICE_ROUTE="<PRICE_ROUTE_FROM_QUOTE>"

curl -s -X POST "https://api.paraswap.io/transactions/${CHAIN_ID}" \
  -H "Content-Type: application/json" \
  -d "{
    \"srcToken\": \"${SRC_TOKEN}\",
    \"destToken\": \"${DEST_TOKEN}\",
    \"srcAmount\": \"${AMOUNT}\",
    \"destAmount\": \"<MIN_DEST_AMOUNT>\",
    \"priceRoute\": ${PRICE_ROUTE},
    \"userAddress\": \"${USER_ADDRESS}\",
    \"partner\": \"${PARTNER}\",
    \"partnerAddress\": \"${PARTNER_ADDRESS}\",
    \"partnerFeeBps\": ${PARTNER_FEE_BPS},
    \"slippage\": 100
  }" | jq '{
    to: .to,
    data: .data,
    value: .value,
    gasPrice: .gasPrice
  }'
```

## Supported Chains

| Chain | ID | Native Token |
|-------|-----|--------------|
| Ethereum | 1 | ETH |
| Polygon | 137 | MATIC |
| BSC | 56 | BNB |
| Arbitrum | 42161 | ETH |
| Optimism | 10 | ETH |
| Avalanche | 43114 | AVAX |
| Fantom | 250 | FTM |
| Base | 8453 | ETH |

## Get Token List

```bash
curl -s "https://api.paraswap.io/tokens/${CHAIN_ID}" | jq '.tokens[:10] | .[] | {symbol: .symbol, address: .address, decimals: .decimals}'
```

## Check Allowance

```bash
TOKEN_ADDRESS="0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"

curl -s "https://api.paraswap.io/ft/allowance/${CHAIN_ID}/${TOKEN_ADDRESS}/${USER_ADDRESS}" | jq '.allowance'
```

## Get Approval Transaction

```bash
curl -s -X POST "https://api.paraswap.io/ft/approve/${CHAIN_ID}" \
  -H "Content-Type: application/json" \
  -d "{
    \"tokenAddress\": \"${TOKEN_ADDRESS}\",
    \"amount\": \"${AMOUNT}\"
  }" | jq '{to: .to, data: .data}'
```

## Limit Orders

```bash
# Create limit order
curl -s -X POST "https://api.paraswap.io/ft/orders/${CHAIN_ID}" \
  -H "Content-Type: application/json" \
  -d '{
    "maker": "<YOUR_WALLET>",
    "makerAsset": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
    "takerAsset": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
    "makerAmount": "1000000000",
    "takerAmount": "500000000000000000",
    "expiry": '$(( $(date +%s) + 86400 ))',
    "signature": "<EIP712_SIGNATURE>"
  }'
```

## Safety Rules

1. **ALWAYS** display swap details before execution
2. **WARN** if price impact > 1%
3. **CHECK** token allowance before swap
4. **VERIFY** slippage settings
5. **NEVER** execute without user confirmation

## Error Handling

| Error | Cause | Solution |
|-------|-------|----------|
| `INSUFFICIENT_BALANCE` | Low balance | Check wallet balance |
| `INSUFFICIENT_LIQUIDITY` | Low liquidity | Reduce amount |
| `PRICE_TIMEOUT` | Quote expired | Get new quote |

## Links

- [ParaSwap Docs](https://developers.paraswap.network/)
- [ParaSwap App](https://app.paraswap.io/)
- [API Reference](https://developers.paraswap.network/api)

Overview

This skill provides a ParaSwap DEX aggregator interface that returns best swap prices and builds executable transactions across 300+ liquidity sources and multiple EVM chains. It supports partner fee configuration, multi-path routing, MEV protection options, and limit orders. The skill exposes endpoints to quote prices, build transactions, check allowances, and create approvals or limit orders for Ethereum, Polygon, BSC, Arbitrum, Optimism, Avalanche, Fantom, and Base.

How this skill works

The skill queries ParaSwap price routes for a given src/dest token and amount, applying partner fee parameters if configured, and returns a detailed priceRoute with gas estimates and route breakdown. After quoting, it can build the on-chain transaction payload (to, data, value, gas) ready for wallet signing. It also supports token list retrieval, allowance checks, approval transaction building, and limit order creation via the ParaSwap API.

When to use it

  • You need the best execution across many DEXs for simple swaps or split routing across chains.
  • You want pre-built transaction payloads to sign and broadcast from a wallet or backend service.
  • You require MEV protection or private transaction options for sensitive swaps.
  • You want to create or manage limit orders programmatically.
  • You need to surface token lists, allowances, and approval transactions before executing swaps.

Best practices

  • Always display full swap details (route, gas cost, price impact) to the user before execution.
  • Warn or block swaps when price impact exceeds a conservative threshold (suggested >1%).
  • Check token allowance and build approval transactions when needed prior to swapping.
  • Set and verify slippage tolerances and minimum destination amounts to avoid unexpected losses.
  • Use partnerFeeBps only as disclosed; ParaSwap allows up to 300 bps (3%), default examples use 100 bps (1%).

Example use cases

  • Quote a 1 ETH -> USDC swap on Ethereum, inspect bestRoute and gas estimate, then build the transaction payload.
  • Batch-check token allowances for a wallet and auto-generate approval transactions where allowance is insufficient.
  • Create a programmatic limit order for a token pair with an expiry and EIP-712 signature.
  • Integrate partner fee parameters to collect development or service fees transparently on swaps.
  • Fetch token lists for on-chain token discovery across supported chains before enabling trading in an app.

FAQ

How is the partner fee applied?

The partner fee is specified in basis points and deducted from swap output on-chain; the configured partnerAddress receives the fee. ParaSwap supports up to 300 bps (3%), common examples use 100 bps (1%).

Which chains are supported?

Supported EVM chains include Ethereum, Polygon, BSC, Arbitrum, Optimism, Avalanche, Fantom, and Base. Chain IDs are required for API calls.