Defi arbitrage bot (BSC)
Flash loan arbitrage bot for BSC
The bot is not profitable as-is
Installation
The project relies on a PostgreSQL database to keep trusted tokens and LPs lists
From binary
- Download the binary
- Run
chmod +x defiarb
- Copy the file in a $PATH directory (eg.
/usr/bin
)
- [Customize configuration](#Config file)
From source
-
Clone the repo
git clone ...
-
Install dependencies
go get ./...
-
[Customize configuration](#Config file)
Config file
Copy config.example.json
and edit it according to your needs:
NodeUrl
: bsc node URL
ContractAddress
: bsc node URL
Db
: PostgreSQL db config
Host
: DB host (default localhost)
Port
: DB port
DbName
: DB name
User
: Username
Password
: Password
Smart contract
The arbitrage smart contract is in contracts/flash_loans
, deploy it with truffle migrate
and add the resulting address in config.json
.
Usage
Before starting the arbitrage bot the database should be updated:
- Update trusted tokens from trustwallet list with command
updateTokens
- Update LP tokens list for desired exchanges with command
scan [EXCHANGE_1 ... EXCHANGE_n]
(this command may take a long time to complete)
- Run the arbitrage bot with
run
command
Help
Run defiarb --help
for command list and defiarb [COMMAND] --help
for detailed command help
Write example config file
defiarb writeconfig [CONFIG_FILE.json]
Update token list
defiarb updateTokens
Update LP tokens
defiarb scan [EXCHANGE_1 ... EXCHANGE_n]
Run arbitrage bot
defiarb run
Contributing
The project was meant as a learning project, so it is not regularly maintained but any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
)
- Commit your Changes (
git commit -m 'Add some AmazingFeature'
)
- Push to the Branch (
git push origin feature/AmazingFeature
)
- Open a Pull Request