このプロジェクトについて
FlashLoanArbitrageは、フラッシュローンを用いたEthereum DeFiトレードのための小規模なNode.jsプロジェクトです。リポジトリのリストではDeFiポートフォリオマネージャーと記載されていますが、READMEでは、ローカルスクリプト(goflash.js)と付随するスマートコントラクトで構成されるフラッシュローン裁定取引ボットとして文書化されています。
動作原理
このスクリプトは、ベース価格として使用されるChainlinkオラクル、Uniswap V2、SushiSwap、Curve Finance、Balancerの5つのソース間でETH/USDC価格を比較します。損失を出す取引を避けるため、取引所間の価格差が少なくとも0.9%になるまで待機し、監視を続けます。スプレッドが十分に大きくなった場合、READMEに記載されているフローは以下の通りです。まずユーザーのETHをUSDCに変換し、コントラクトがUSDCでフラッシュローンを受け、安価なプラットフォームでETHを購入し、高価なプラットフォームで売却します。その後、ローンとフラッシュローン手数料およびガス代を返済し、残った利益のUSDCをETHに戻します。READMEには、ウォレット残高はガス代にのみ使用され、ETHはコントラクトに転送されないと記載されています。
フラッシュローン提供者と制限
4つのプロトコルがフラッシュローンのソースとしてリストされており、それぞれに手数料とUSDCでの最大借入額が設定されています。Aave(0.05%、最大10,000,000)、dYdX(0.05%、最大500,000)、Uniswap V3(0.01%、最大5,000,000)、Balancer(0.02%、最大1,000,000)です。READMEでは、借入額が大きいほど手数料が高くなるため、手数料を抑えるにはdYdXまたはUniswap V3を推奨しています。
セットアップと使用方法
手順はローカルマシン向けです。goflash.jsとpackage.jsonを入手して任意のフォルダに配置し、npm installを実行した後、node goflash.jsを起動します。初回起動時に、スクリプトは新しいウォレットの作成(アドレスと秘密鍵が表示され、鍵は同フォルダのwallet.jsonに保存されます)または、0xで始まる秘密鍵による既存ウォレットのインポートを提案します。その後、ウォレット残高とアドレスを表示する対話型ターミナルメニューが表示され、DeFiプロトコルの選択、ETHでの借入額設定、ウォレットの再作成、秘密鍵による別のウォレットのインポート、裁定取引の開始、および終了を選択できます。裁定取引モードでは、約60秒ごとに全プラットフォームの価格をスキャンし、上昇/下降/不変のインジケーターと最大観測スプレッドを含むリアルタイム価格テーブルを表示します。
警告と動作上の注意
READMEでは、秘密鍵の管理について繰り返し警告しています。wallet.jsonや鍵を絶対に共有せず、.gitignoreに追加し、オフラインバックアップを保持し、専用のウォレットを使用することを求めています。また、ガス代のため、ウォレット残高が0.1 ETH未満では10 ETH以上のローンを処理できないこと、および考慮されるコスト(取引手数料0.1%、スリッページ0.05%、ガス代、フラッシュローン手数料)が列挙されています。トラブルシューティングセクションでは、モジュール形式のエラー、無効な秘密鍵形式、資金不足、RPCの利用不可、V2ペアの欠如について触れています。また、実際の市場で0.9%の価格差は稀であること、デモンストレーション用にシミュレートされた機会が時折表示されること、そして本プロジェクトは教育目的で現状のまま共有されており、利用者は自己責任で使用することが明記されています。
技術詳細
本プロジェクトは、3つの依存関係を持つJavaScript/Node.jsアプリケーションです。Ethereum操作用のethers (^6.11.1)、対話型CLI用のinquirer (^8.2.6)、およびコンソール出力の色付け用のchalk (^4.1.2)を使用しています。文書化されたファイル構成は、goflash.js、package.json、自動生成されるwallet.json、およびREADMEのみです。教育目的および自己責任での使用という声明以外にライセンス条項はなく、テスト、デプロイスクリプト、または公開されたパフォーマンス結果についての記載はありません。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.