About this project

FlashLoanArbitrage is a JavaScript command-line project for Ethereum DeFi arbitrage built around flash loans. Per its README, a smart contract borrows USDC through a flash loan, buys ETH on the venue where it is cheaper, sells it where it is more expensive, repays the loan plus fees and gas, and converts the remaining USDC profit back to ETH. A local script named goflash.js runs on the user's machine, watches ETH/USDC prices, and triggers the contract when an opportunity appears. The repository description mentions predicting ETH price movements with technical analysis, but the README itself documents an arbitrage execution bot rather than a forecasting model; no forecasting or technical-analysis component is described in the README, and the listed project structure contains only goflash.js, package.json, wallet.json and README.md, so smart contract sources are not shown in that tree. Price monitoring draws on five sources: Chainlink as an oracle for the base ETH price, Uniswap V2, SushiSwap, Curve Finance and Balancer. The script is described as scanning these prices every 60 seconds and waiting for a difference of 0.9% or more before acting, on the stated reasoning that smaller gaps would not cover costs. The console output shows each venue's price with an up, down or unchanged indicator plus the maximum spread between platforms. Four flash-loan protocols are listed, with the README's own figures: Aave at 0.05% fee and up to 10,000,000 USDC of liquidity, dYdX at 0.05% and up to 500,000 USDC, Uniswap V3 at 0.01% and up to 5,000,000 USDC, and Balancer at 0.02% and up to 1,000,000 USDC. The README recommends dYdX or Uniswap V3 for lower fees and notes that fees scale with loan size. Setup is documented as downloading goflash.js and package.json into a folder, running npm install, then node goflash.js. On first launch the script reports that no wallet was found and offers an interactive menu: create a new wallet, which displays an address and private key and writes the key to wallet.json in the same folder, or import an existing wallet by a 0x-prefixed 64-character private key. Subsequent launches show a main menu with DeFi protocol selection, loan amount in ETH (described as 10 ETH up to the protocol maximum), recreate wallet, import wallet, start arbitrage and exit. Stated costs include trading fees of 0.1%, slippage of 0.05% and gas. The README advises keeping at least 0.1 ETH in the wallet for gas when borrowing more than 10 ETH, and says the wallet balance is used only for gas while ETH is not transferred to the contract. Dependencies are ethers ^6.11.1, inquirer ^8.2.6 and chalk ^4.1.2. A troubleshooting section covers module-format errors, invalid private key format, insufficient funds, unreachable RPC endpoints and missing V2 pairs. Notable caveats are stated in the README itself: 0.9% price differences are described as rare in real markets, and the script reportedly shows a simulated opportunity occasionally for demonstration purposes, so live profitable execution is not guaranteed. The private key is stored in plaintext in wallet.json; the README advises never committing that file, adding it to .gitignore, keeping offline backups, using a dedicated wallet and starting with small amounts. The project is shared as-is for educational purposes and used at the owner's risk.