DeFi 🏦
여러 체인에서 분산형 금융(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 사용 (이더리움, 폴리곤, 아비트럼 등)
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 사용 (솔라나)
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"}'
솔라나
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 | 솔라나 스왑 | 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% 리퍼럴 수수료 포함)
→ 표시: 금액, 가격 영향도, 가스 추정치
→ 확인 요청
→ 서명용 트랜잭션 데이터 반환
사용자: "100 USDC를 ETH에서 아비트럼으로 브릿지"
→ LI.FI 견적 요청 (0.3% 인티그레이터 수수료 포함)
→ 표시: 브릿지, 출력 금액, 예상 시간
→ 확인 요청
→ 서명용 트랜잭션 데이터 반환
링크