프로젝트 소개
FlashLoanArbitrage는 이더리움에서 플래시론 중개 거래를 수행하는 Node.js 기반 자동화 DeFi 트레이딩 봇입니다. 이 프로젝트는 JavaScript 드라이버 스크립트(`goflash.js`)와 관련 스마트 컨트랙트로 구성됩니다.
작동 방식
봇은 Chainlink(오라클 기준), Uniswap V2, SushiSwap, Curve Finance, Balancer 등 다섯 개 플랫폼의 ETH/USDC 가격을 모니터링합니다. 어느 두 플랫폼 간 가격 차이가 0.9% 이상일 때, 스크립트는 네 개의 지원 프로토콜 중 하나(Aave, dYdX, Uniswap V3, Balancer)를 통해 플래시론을 실행합니다. 스마트 컨트랙트는 USDC를 대출받아 교차 플랫폼 거래를 실행(저가에 ETH 구매 후 고가에 매도)하고, 대출금과 수수료를 상환한 뒤 남은 순이익을 사용자 지갑으로 반환합니다.
지원 플래시론 프로토콜
- Aave: 최대 10,000,000 USDC, 수수료 0.05%
- dYdX: 최대 500,000 USDC, 수수료 0.05%
- Uniswap V3: 최대 5,000,000 USDC, 수수료 0.01%
- Balancer: 최대 1,000,000 USDC, 수수료 0.02%
설정 및 사용법
봇을 실행하려면 리포지토리를 클론하고 `npm install`로 의존성을 설치합니다. 첫 실행 시 스크립트는 이더리움 지갑을 생성하거나 가져와 개인 키를 `wallet.json`에 저장합니다. 대화형 CLI 메뉴를 통해 플래시론 프로토콜, 대출 금액, 모니터링 시작/중지를 선택할 수 있습니다. 10 ETH 초과 대출 시 가스비 충당을 위해 최소 0.1 ETH 이상의 지갑 잔고가 필요합니다.
주요 동작
- 가격 데이터는 약 60초마다 갱신됩니다.
- 거래 트리거 최소 임계값은 0.9% 가격 스프레드입니다.
- 거래 수수료(0.1%), 슬리피지(0.05%), 가스비가 이익 계산에 반영됩니다.
- 사용자의 ETH는 컨트랙트로 이전되지 않으며 지갑에 남아 가스비로만 사용됩니다.
- RPC 오류, 잘못된 개인 키, 미설정 거래 쌍에 대한 기본 오류 처리를 포함합니다.
의존성
- ethers ^6.11.1
- inquirer ^8.2.6
- chalk ^4.1.2
보안 참고사항
이 프로젝트는 `wallet.json`에 개인 키를 저장하므로, `.gitignore`에 추가하고 오프라인으로 백업을 보관할 것을 권장합니다. README는 교육 목적으로 제공되는 대로 배포되며 사용자는 자비로 진행해야 한다고 명시합니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.