このプロジェクトについて

FlashLoanArbitrageは、フラッシュローンを活用したEthereum DeFi裁定取引のためのJavaScriptコマンドラインプロジェクトです。READMEによると、スマートコントラクトがフラッシュローンでUSDCを借り入れ、価格の安い取引所でETHを購入し、高い取引所で売却し、ローンと手数料およびガス代を返済した後、残りのUSDC利益をETHに変換します。ユーザーのマシン上で動作するgoflash.jsというローカルスクリプトがETH/USDC価格を監視し、機会が発生した際にコントラクトをトリガーします。リポジトリの説明にはテクニカル分析によるETH価格変動の予測について言及されていますが、README自体に記載されているのは予測モデルではなく裁定取引実行ボットであり、予測やテクニカル分析のコンポーネントについての説明はありません。また、提示されたプロジェクト構成にはgoflash.js、package.json、wallet.json、README.mdのみが含まれており、スマートコントラクトのソースコードはツリーに表示されていません。 価格監視は、ベースとなるETH価格のオラクルとしてのChainlink、Uniswap V2、SushiSwap、Curve Finance、Balancerの5つのソースを利用します。スクリプトは60秒ごとにこれらの価格をスキャンし、0.9%以上の差が出るまで待機すると説明されており、その理由は、それ以下の差ではコストをカバーできないためとしています。コンソール出力には、各取引所の価格に上昇・下落・不変のインジケーターと、プラットフォーム間の最大スプレッドが表示されます。 4つのフラッシュローンプロトコルがリストされており、READMEには以下の数値が記載されています。Aave(手数料0.05%、流動性最大10,000,000 USDC)、dYdX(0.05%、最大500,000 USDC)、Uniswap V3(0.01%、最大5,000,000 USDC)、Balancer(0.02%、最大1,000,000 USDC)。READMEでは、手数料を抑えるためにdYdXまたはUniswap V3を推奨しており、手数料はローン額に応じて変動すると記されています。 セットアップ手順として、goflash.jsとpackage.jsonをフォルダにダウンロードし、npm installを実行した後、node goflash.jsを起動することが記載されています。初回起動時にウォレットが見つからない場合、インタラクティブメニューが表示されます。新しいウォレットを作成すると、アドレスと秘密鍵が表示され、秘密鍵が同フォルダのwallet.jsonに書き込まれます。または、0xで始まる64文字の秘密鍵によって既存のウォレットをインポートできます。2回目以降の起動では、DeFiプロトコルの選択、ETHでのローン金額(10 ETHからプロトコル上限まで)、ウォレットの再作成、ウォレットのインポート、裁定取引の開始、終了を含むメインメニューが表示されます。 明記されているコストには、0.1%の取引手数料、0.05%のスリッページ、およびガス代が含まれます。READMEでは、10 ETH以上を借りる場合はガス代としてウォレットに少なくとも0.1 ETHを保持することを推奨しており、ウォレット残高はガス代にのみ使用され、ETHがコントラクトに転送されることはないと述べています。依存関係はethers ^6.11.1、inquirer ^8.2.6、chalk ^4.1.2です。トラブルシューティングセクションでは、モジュール形式のエラー、無効な秘密鍵形式、資金不足、RPCエンドポイントへの接続不可、V2ペアの欠落についてカバーしています。 READMEには重要な注意点も記載されています。実際の市場で0.9%の価格差が出ることは稀であるとされており、デモンストレーション目的でシミュレーション上の機会が時折表示されるため、実際の利益が出る実行は保証されていません。秘密鍵はwallet.jsonに平文で保存されます。READMEでは、このファイルを決してコミットせず、.gitignoreに追加し、オフラインバックアップを保持し、専用のウォレットを使用し、少額から開始することを推奨しています。本プロジェクトは教育目的で「現状のまま」共有されており、利用はユーザーの自己責任となります。