{"id":19775854,"url":"https://github.com/supercoolx/ethereum-arbitrage-bot","last_synced_at":"2026-04-15T12:39:51.420Z","repository":{"id":193608690,"uuid":"515650104","full_name":"supercoolx/ethereum-arbitrage-bot","owner":"supercoolx","description":"Flashloan arbitrage on ethereum","archived":false,"fork":false,"pushed_at":"2022-08-22T14:20:00.000Z","size":1873,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-05T04:28:50.559Z","etag":null,"topics":["arbitrage","bot","ethereum","flashloan","trading-bot","typescript","web3js"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/supercoolx.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2022-07-19T15:53:16.000Z","updated_at":"2025-06-30T20:27:20.000Z","dependencies_parsed_at":"2023-09-09T02:43:40.408Z","dependency_job_id":"577a3d96-dd07-40b1-980b-a3377ce664a8","html_url":"https://github.com/supercoolx/ethereum-arbitrage-bot","commit_stats":null,"previous_names":["supercoolx/ethereum-arbitrage-bot"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/supercoolx/ethereum-arbitrage-bot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/supercoolx%2Fethereum-arbitrage-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/supercoolx%2Fethereum-arbitrage-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/supercoolx%2Fethereum-arbitrage-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/supercoolx%2Fethereum-arbitrage-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/supercoolx","download_url":"https://codeload.github.com/supercoolx/ethereum-arbitrage-bot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/supercoolx%2Fethereum-arbitrage-bot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31842193,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T11:29:19.690Z","status":"ssl_error","status_checked_at":"2026-04-15T11:29:19.171Z","response_time":63,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arbitrage","bot","ethereum","flashloan","trading-bot","typescript","web3js"],"created_at":"2024-11-12T05:17:47.862Z","updated_at":"2026-04-15T12:39:51.357Z","avatar_url":"https://github.com/supercoolx.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Flashloan Arbitrage Bot\nFlashloan Bot Arbitrage Finder\n\n## Usage\n\n1. Rename `.env.example` file to `.env` inside the bot directory\n \n2. Config `.env` file. \n\n    Here, you need four things. \n    * Insert your INFURA Project ID. You can create a infura Project ID [here](https://infura.io). \n    * Insert your MetaMask (Kovan Testnet) 32byte wallet private key.\n    * Insert your cotract address(mainnet or kovan)\n    * Insert UniswapV3 Factory address. \n\n3. Install node modules. Open terminal window and run:\n\n    ```\n    npm install\n    ```\n\n4. Run bot\n\n- Trade for origin \n    * trader bot\n        ```\n        yarn main-trader dai weth\n        ```\n    * finder bot\n        ```\n        yarn main-finder * weth\n        yarn main-finder weth usdt *\n        yarn main-finder weth * *\n        yarn main-finder * weth *\n        ```\n- Trade for 0x Exchage API\n    * trader bot bot\n        ```\n        yarn zero-trader dai weth\n        ```\n    * finder bot\n        ```\n        yarn zero-finder * weth\n        yarn zero-finder weth usdt *\n        yarn zero-finder weth * *\n        yarn zero-finder * weth *\n        ```\n- Trade for 1Inch Exchage API\n    * trader bot bot\n        ```\n        yarn one-trader dai weth\n        ```\n    * finder bot\n        ```\n        yarn one-finder * weth\n        yarn one-finder weth usdt *\n        yarn one-finder weth * *\n        yarn one-finder * weth *\n        ```\n- Trade for Dodo Exchage API\n    * trader bot bot\n        ```\n        yarn dodo-trader dai weth\n        ```\n    * finder bot\n        ```\n        yarn dodo-finder * weth\n        yarn dodo-finder weth usdt *\n        yarn dodo-finder weth * *\n        yarn dodo-finder * weth *\n        ```\n\n\n# Developer Instructions - Flashloan\n\n## Adding a new token \n1. Go to /config and open token.json\n2. Add the token symbol and its blockchain network token address accordingly \n\n\n## Adding a new DEX\n\n\n\n# Short List scan of top Volume tokens only\n\n- Doing a \"short scan\" of the \"short\" lists\n\n```\nts-node finder2pairshort\n```\n\n- Added 19th June, 22:20.\n\n\n\n# Add new DEX's\n\n1. (/config/dexs.json)\nAdd the DEX name, together with it's Proxy/Router/Quoter/Factory contract address(es) found in the DEX documentation to the /config/dexs.json file.\n\n2. (/abi/NEWDEXNAME.json)\nGet the ABI code from the individual DEXs GitHub repo or contract address on etherscan.io.\nAnd add it to a /abi/DEXNAME.json file. Depending on the DEX it will be the Router/Factory/Exchange/Quoter json files.\n\n3. (/lib/contracts.ts)\nCreate contract instance(constant) with address and ABI for specific DEX in lib/contracts.ts file.\nIf contract address is depended on token pair like Mooniswap, create function to get contract instance for specific token pair.\n\n\n4. (/lib/NEWDEXNAME)\nAdd the \"getCalldata.ts\" file under /lib/DEXNAME folder you create if needed.\nAdd functions(get calldatas for price and swap) in getCalldata.ts file.\n\n5. (/lib/contracts.ts):\nexport a new, shorter name as a constant of the DEX in /lib/contracts, by making the constant a combination of the Router/Quoter/Factory/AbiItem, and anything else that is required.\n\n6. (mainnet/origin/common.ts):\nadd the new short name of the router/quoter/dex info in the \"import { \" section.\n\nImport the \"getPriceOnDEXNAME\" in the same file as step 6 (around line 25)\n\nAs well as adding a new constant export of the DEXs name array to display on screen(around line 35).\n\nAlso make sure to add the new DEX with a 2-3 char name as a constant in the \"getAllQuotes\" section (around line 60).\n\nModify and add the relevant information/constants in the \"const result: Multicall\" section.\n\"getAllQuotes\" function returns array of quotes and contract instances(router).  \n\n7. (mainnet/origin/trader):\n\nimport \"getSwapOnDEXNAME\" function for the new dex in the \"header\".\n\nadd the dex to the \"const runBot\" section as an 'else if' statement by adding it below the rest as a new ID (in order).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsupercoolx%2Fethereum-arbitrage-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsupercoolx%2Fethereum-arbitrage-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsupercoolx%2Fethereum-arbitrage-bot/lists"}