Hydro Protocol is an open source toolkit for building decentralized exchanges and DeFi applications on Ethereum. Checkout the developer documentation for more details.
This repository provides a basic scaffold for building a Decentralized Exchange (DEX) on the Ethereum blockchain. Follow the guides to learn how to:
It should take less than 10 minutes to get your DEX running.
The easiest way to launch the scaffold dex is via docker
and docker-compose
.
If you don't already have them installed, you can follow this link to install them (free).
Clone this repo
git clone https://github.com/hydroprotocol/hydro-scaffold-dex.git
Change your working directory
cd hydro-scaffold-dex
Build and launch your hydro relayer
docker-compose pull && docker-compose up -d
This step may takes a few minutes. When complete, it will start all necessary services.
Note: It will use ports 3000
, 3001
, 3002
, 6379
, 8043
, and 8545
on your computer. Please make sure these ports are available.
Check out your relayer
Open http://localhost:3000/ on your browser to see your exchange in action!
Now that your DEX is up on your local server, let's try it out a bit.
Connect a wallet
You can connect to a wallet by clicking the button at right-top corner. The demo is running a localhost ethereum instance, with a pre-configured wallet address:
You can find it under the Browser Wallet
type. The address is:
0x31ebd457b999bf99759602f5ece5aa5033cb56b3
0xb7a0c9d2786fc4dd080ea5d619d36771aeb0c8c26c290afd3451b92ba2b7bc2c
Test out the trading flow
You might have noticed that we setup a simple market making bot on the HOT-DAI market. Try to make some trades on this active market.
Our Hydro Scaffolds come with a powerful API and easy Command Line Interface (CLI) for configuring your DEX.
Login to the CLI
docker-compose exec admin sh
View the CLI manual to see a list of functions you can perform
See admin cli manual
Try creating a new market
hydro-dex-ctl market new HOT-WWW \
--baseTokenAddress=0x4c4fa7e8ea4cfcfc93deae2c0cff142a1dd3a218 \
--quoteTokenAddress=0xbc3524faa62d0763818636d5e400f112279d6cc0
The base token is the first symbol (HOT above), the quote token is the second symbol (WWW above).
You could try this with different token symbols and contract addresses.
This creates a market with "default parameters" for fees, decimals, etc.
hydro-dex-ctl market publish HOT-WWW
This makes the market viewable on the frontend
Exit the CLI
exit
This will exit out of the CLI and go back to the original terminal.
You now have a fully functioning DEX on your local system, complete with a CLI for easy customization.
Support
Please open an Github Issue for questions, requests, or bugs.
Deploying your DEX
Check out our Developer Documentation.
Display the status of all services running
docker-compose ps
This command displays the status of all services running in docker. It's helpful for troubleshooting and for understanding the combination of components that goes into running your DEX.
Stopping your DEX
docker-compose stop
This command will stop all of the current services running in docker.
Restarting your DEX
docker-compose pull && docker-compose up -d
The same command that you ran to start it the first time can be used for subsequent restarts. Always run the pull command first, as the docker-compose up command will not run without an image.
View logs
# view logs of the service that defined in docker-compose.yml services
# e.g. view watcher log
docker-compose logs --tail=20 -f watcher
# e.g. view api log
docker-compose logs --tail=20 -f api
Much like the status, viewing the logs can give you an idea of the specific details involved in each service.
Update this repo
git pull origin master
Completely clean the old state (data will be deleted)
docker-compose down -v
See setup dev env manual.
This project is licensed under the Apache 2.0 License - see the LICENSE file for details