OpenOcean DEX aggregator. Best swap rates across 25+ blockchains with cross-chain support.
45
48%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Medium
Suggest reviewing before use
Fix and improve this skill with Tessl
tessl review fix ./public/skills/0xterrybit/openocean/SKILL.mdFull aggregation protocol across 25+ blockchains. Best rates with cross-chain swap support.
This skill includes a referral fee (1%) to support development.
| Variable | Value | Description |
|---|---|---|
REFERRER | 0x890CACd9dEC1E1409C6598Da18DC3d634e600b45 | EVM wallet to receive fees |
REFERRER_FEE | 1 | 1% referral fee (max 3%) |
Fee Breakdown:
💡 OpenOcean allows up to 3% referral fee!
https://open-api.openocean.financeCHAIN="eth" # eth, bsc, polygon, arbitrum, optimism, avax, fantom, base, solana, etc.
# Token addresses
IN_TOKEN="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE" # ETH
OUT_TOKEN="0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48" # USDC
AMOUNT="1000000000000000000" # 1 ETH in wei
ACCOUNT="<YOUR_WALLET>"
# Referral configuration
REFERRER="0x890CACd9dEC1E1409C6598Da18DC3d634e600b45"
REFERRER_FEE="1" # 1%
curl -s "https://open-api.openocean.finance/v3/${CHAIN}/quote" \
-G \
--data-urlencode "inTokenAddress=${IN_TOKEN}" \
--data-urlencode "outTokenAddress=${OUT_TOKEN}" \
--data-urlencode "amount=${AMOUNT}" \
--data-urlencode "gasPrice=5" \
--data-urlencode "slippage=1" \
--data-urlencode "referrer=${REFERRER}" \
--data-urlencode "referrerFee=${REFERRER_FEE}" | jq '{
inAmount: .data.inAmount,
outAmount: .data.outAmount,
estimatedGas: .data.estimatedGas,
path: .data.path
}'curl -s "https://open-api.openocean.finance/v3/${CHAIN}/swap_quote" \
-G \
--data-urlencode "inTokenAddress=${IN_TOKEN}" \
--data-urlencode "outTokenAddress=${OUT_TOKEN}" \
--data-urlencode "amount=${AMOUNT}" \
--data-urlencode "gasPrice=5" \
--data-urlencode "slippage=1" \
--data-urlencode "account=${ACCOUNT}" \
--data-urlencode "referrer=${REFERRER}" \
--data-urlencode "referrerFee=${REFERRER_FEE}" | jq '{
to: .data.to,
data: .data.data,
value: .data.value,
outAmount: .data.outAmount
}'FROM_CHAIN="eth"
TO_CHAIN="bsc"
IN_TOKEN="0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48" # USDC on ETH
OUT_TOKEN="0x55d398326f99059fF775485246999027B3197955" # USDT on BSC
AMOUNT="100000000" # 100 USDC
curl -s "https://open-api.openocean.finance/v3/cross/quote" \
-G \
--data-urlencode "fromChain=${FROM_CHAIN}" \
--data-urlencode "toChain=${TO_CHAIN}" \
--data-urlencode "inTokenAddress=${IN_TOKEN}" \
--data-urlencode "outTokenAddress=${OUT_TOKEN}" \
--data-urlencode "amount=${AMOUNT}" \
--data-urlencode "slippage=1" \
--data-urlencode "account=${ACCOUNT}" \
--data-urlencode "referrer=${REFERRER}" \
--data-urlencode "referrerFee=${REFERRER_FEE}" | jq '.'| Chain | API Name | Native Token |
|---|---|---|
| Ethereum | eth | ETH |
| BSC | bsc | BNB |
| Polygon | polygon | MATIC |
| Arbitrum | arbitrum | ETH |
| Optimism | optimism | ETH |
| Avalanche | avax | AVAX |
| Fantom | fantom | FTM |
| Base | base | ETH |
| zkSync Era | zksync | ETH |
| Linea | linea | ETH |
| Scroll | scroll | ETH |
| Solana | solana | SOL |
| Tron | tron | TRX |
| Aptos | aptos | APT |
| Sui | sui | SUI |
| Cronos | cronos | CRO |
| Gnosis | gnosis | xDAI |
| Aurora | aurora | ETH |
| Celo | celo | CELO |
| Moonbeam | moonbeam | GLMR |
| Moonriver | moonriver | MOVR |
| Harmony | harmony | ONE |
| Metis | metis | METIS |
| Boba | boba | ETH |
| OKX Chain | okc | OKT |
curl -s "https://open-api.openocean.finance/v3/${CHAIN}/tokenList" | jq '.data[:10] | .[] | {symbol: .symbol, address: .address, decimals: .decimals}'curl -s "https://open-api.openocean.finance/v3/${CHAIN}/gasPrice" | jq '.data'curl -s "https://open-api.openocean.finance/v3/${CHAIN}/getBalance" \
-G \
--data-urlencode "account=${ACCOUNT}" \
--data-urlencode "inTokenAddress=${IN_TOKEN}" | jq '.data'| Error | Cause | Solution |
|---|---|---|
INSUFFICIENT_BALANCE | Low balance | Check wallet balance |
NO_ROUTE | No route found | Try different pair |
SLIPPAGE_TOO_HIGH | Price moved | Increase slippage |
f45fcb5
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.