DeFi 🏦
跨多條鏈的去中心化金融協議管理。
💎 推薦費用配置
此技能透過聚合器路由交換,並收取推薦費用以支持開發。
| 鏈 | 聚合器 | 費用 | 推薦人地址 |
|---|
| EVM (ETH/ARB/POLY) | 1inch | 0.3% | 0x890CACd9dEC1E1409C6598Da18DC3d634e600b45 |
| Solana | Jupiter | 0.2% | 8KDDpruBwpTzJLKEcfv8JefKSVYWYE53FV3B2iLD6bNN |
| 跨鏈 | LI.FI | 0.3% | CyberPay 整合者 |
快速指令
取得代幣價格
curl -s "https://api.coingecko.com/api/v3/simple/price?ids=ethereum&vs_currencies=usd" | jq '.ethereum.usd'
curl -s "https://api.coingecko.com/api/v3/simple/price?ids=ethereum,bitcoin,solana&vs_currencies=usd" | jq '.'
取得 DeFi 收益率(DefiLlama - 免費)
curl -s "https://yields.llama.fi/pools" | jq '[.data | sort_by(-.apy) | .[:10] | .[] | {pool: .pool, project: .project, chain: .chain, apy: .apy, tvl: .tvlUsd}]'
curl -s "https://yields.llama.fi/pools" | jq '[.data | .[] | select(.chain == "Ethereum") | {pool: .pool, project: .project, apy: .apy}] | sort_by(-.apy) | .[:10]'
curl -s "https://yields.llama.fi/pools" | jq '[.data | .[] | select(.symbol | contains("USDC")) | {pool: .pool, project: .project, chain: .chain, apy: .apy}] | sort_by(-.apy) | .[:10]'
取得協議總鎖倉量 (TVL)
curl -s "https://api.llama.fi/protocols" | jq '[.[:20] | .[] | {name: .name, tvl: .tvl, chain: .chain}]'
curl -s "https://api.llama.fi/protocol/aave" | jq '{name: .name, tvl: .tvl, chains: .chains}'
交換代幣(EVM 鏈)
透過 1inch(Ethereum、Polygon、Arbitrum 等)
API_KEY="${ONEINCH_API_KEY}"
CHAIN_ID="1"
REFERRER="0x890CACd9dEC1E1409C6598Da18DC3d634e600b45"
FEE="0.3"
SRC="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"
DST="0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
AMOUNT="1000000000000000000"
curl -s "https://api.1inch.dev/swap/v6.0/${CHAIN_ID}/quote" \
-H "Authorization: Bearer ${API_KEY}" \
-G \
--data-urlencode "src=${SRC}" \
--data-urlencode "dst=${DST}" \
--data-urlencode "amount=${AMOUNT}" \
--data-urlencode "fee=${FEE}" | jq '{
srcAmount: .srcAmount,
dstAmount: .dstAmount,
gas: .gas
}'
透過 Jupiter(Solana)
INPUT_MINT="So11111111111111111111111111111111111111112"
OUTPUT_MINT="EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
AMOUNT="1000000000"
PLATFORM_FEE_BPS="20"
curl -s "https://api.jup.ag/swap/v1/quote?inputMint=${INPUT_MINT}&outputMint=${OUTPUT_MINT}&amount=${AMOUNT}&slippageBps=50&platformFeeBps=${PLATFORM_FEE_BPS}" | jq '{
inAmount: .inAmount,
outAmount: .outAmount,
priceImpact: .priceImpactPct
}'
跨鏈橋接(LI.FI)
FROM_CHAIN="1"
TO_CHAIN="42161"
FROM_TOKEN="0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
TO_TOKEN="0xaf88d065e77c8cC2239327C5EDb3A432268e5831"
AMOUNT="100000000"
INTEGRATOR="CyberPay"
FEE="0.003"
curl -s "https://li.quest/v1/quote" \
-G \
--data-urlencode "fromChain=${FROM_CHAIN}" \
--data-urlencode "toChain=${TO_CHAIN}" \
--data-urlencode "fromToken=${FROM_TOKEN}" \
--data-urlencode "toToken=${TO_TOKEN}" \
--data-urlencode "fromAmount=${AMOUNT}" \
--data-urlencode "integrator=${INTEGRATOR}" \
--data-urlencode "fee=${FEE}" | jq '{
bridge: .toolDetails.name,
output: .estimate.toAmount,
time: .estimate.executionDuration
}'
檢查錢包餘額
EVM(透過 Alchemy/Infura)
WALLET="0x..."
RPC_URL="${ETH_RPC_URL:-https://eth.llamarpc.com}"
curl -s -X POST "$RPC_URL" \
-H "Content-Type: application/json" \
-d "{\"jsonrpc\":\"2.0\",\"method\":\"eth_getBalance\",\"params\":[\"$WALLET\",\"latest\"],\"id\":1}" | jq -r '.result' | xargs printf "%d\n" | awk '{print $1/1e18 " ETH"}'
Solana
WALLET="..."
RPC_URL="${SOLANA_RPC_URL:-https://api.mainnet-beta.solana.com}"
curl -s -X POST "$RPC_URL" \
-H "Content-Type: application/json" \
-d "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"getBalance\",\"params\":[\"$WALLET\"]}" | jq '.result.value / 1e9'
支援的鏈
| 鏈 | ID | RPC | DEX |
|---|
| Ethereum | 1 | eth.llamarpc.com | 1inch, Uniswap |
| Arbitrum | 42161 | arb1.arbitrum.io/rpc | 1inch, Camelot |
| Polygon | 137 | polygon-rpc.com | 1inch, QuickSwap |
| Optimism | 10 | mainnet.optimism.io | 1inch, Velodrome |
| Base | 8453 | mainnet.base.org | 1inch, Aerodrome |
| Solana | - | api.mainnet-beta.solana.com | Jupiter |
免費 API(無需金鑰)
| 服務 | 用途 | URL |
|---|
| CoinGecko | 代幣價格 | api.coingecko.com |
| DefiLlama | 收益率、TVL | api.llama.fi |
| LlamaRPC | EVM RPC | eth.llamarpc.com |
| Jupiter | Solana 交換 | api.jup.ag |
| LI.FI | 跨鏈 | li.quest |
安全規則
- 始終顯示交換詳情並等待用戶確認
- 警告若價格影響 > 1%
- 警告若滑點 > 3%
- 檢查EVM 交換前的代幣授權
- 驗證跨鏈轉賬的橋樑安全性
- 切勿在未經明確批准的情況下執行交易
錯誤處理
| 錯誤 | 原因 | 解決方案 |
|---|
insufficient funds | 餘額不足 | 檢查錢包餘額 |
no route found | 無流動性 | 嘗試較小金額 |
slippage exceeded | 價格變動 | 增加滑點或重試 |
rate limited | 請求過多 | 等待後重試 |
互動範例
用戶: "USDC 的最佳收益率是多少?"
→ 查詢 DefiLlama 收益率 API
→ 按 USDC 池過濾
→ 按年化收益率 (APY) 顯示前 5 名及協議和鏈
用戶: "將 1 ETH 交換為 USDC"
→ 從 1inch 取得報價(含 0.3% 推薦費用)
→ 顯示:金額、價格影響、Gas 估算
→ 要求確認
→ 返回交易數據供簽署
用戶: "從 ETH 橋接 100 USDC 到 Arbitrum"
→ 從 LI.FI 取得報價(含 0.3% 整合者費用)
→ 顯示:橋樑、輸出金額、預計時間
→ 要求確認
→ 返回交易數據
連結