Sign inSign up

hydroprotocolio/amm-bots

By hydroprotocolio

•Updated over 7 years ago

Automated market making bots with multiple strategy to provide liquidity for hydro dexes.

Image
0

6.1K

hydroprotocolio/amm-bots repository overview

This repository is a Liquidity Module for the Hydro SDK.

Liquidity Modules allow relayers to instantly fill their orderbooks and bootstrap liquidity with minimal effort. This particular module uses a Constant Product Market Making Model⁠, discussed in greater detail below.

⁠Using this repository

This repository is a subset of https://github.com/HydroProtocol/hydro-scaffold-dex⁠. It is designed to start a market making bot to provide liquidity on an existing Hydro Relayer.


⁠AMM Bots

Automated Market Making (AMM) bots provide liquidity to a marketplace through use of algorithmic market making.

⁠Running the AMM Bot

This repository is setup to run naturally on the Hydro Dex Scaffold⁠. For use on other marketplaces, you could modify the code snippets below.

⁠Running from source
BOT_TYPE=CONST_PRODUCT \
BOT_PRIVATE_KEY=0x............... \
BOT_BASE_TOKEN=HOT \
BOT_QUOTE_TOKEN=DAI \
BOT_BASE_URL=http://127.0.0.1:3001 \
BOT_MIN_PRICE=0.8 \
BOT_MAX_PRICE=1.2 \
BOT_PRICE_GAP=0.02 \
BOT_EXPAND_INVENTORY=2 \
BOT_WEB3_URL=http://127.0.0.1:8545 \
go run main.go
⁠Running from a docker image
docker run --rm -it \
  -e BOT_TYPE=CONST_PRODUCT \
  -e BOT_PRIVATE_KEY=0x............... \
  -e BOT_BASE_TOKEN=HOT \
  -e BOT_QUOTE_TOKEN=DAI \
  -e BOT_BASE_URL=http://127.0.0.1:3001 \
  -e BOT_MIN_PRICE=0.8 \
  -e BOT_MAX_PRICE=1.2 \
  -e BOT_PRICE_GAP=0.02 \
  -e BOT_EXPAND_INVENTORY=2 \
  -e BOT_WEB3_URL=http://127.0.0.1:8545 \
  hydroprotocolio/amm-bots

⁠Environment Variables

⁠Basic Variables
  • BOT_TYPE Type of bot
  • BOT_BASE_URL Hydro relayer api base url
  • BOT_WEB3_URL Ethereum json rpc url
  • BOT_BASE_TOKEN Symbol of base token (e.g HOT)
  • BOT_QUOTE_TOKEN Symbol of quote token (e.g WETH)
⁠Secret Variables
  • BOT_PRIVATE_KEY Ethereum address for place order

⁠Algorithm Variables

⁠Constant Product AMM

This bot runs a "constant product market maker model" (popularized in the DeFi community by Uniswap). In short, this model generates a full orderbook based on an initial price for the market. Every transaction that occurs on this market will adjust the prices of the market accordingly. It's a basic supply and demand automated market making system.

  • Buying large amounts of the base token will increase the price
  • Selling large amounts of the base token will decrease the price

A typical Constant Market Making model has a continuous price curve. This bot discretizes the continuous price curve and creates a number of limit orders to simulate the curve. The order price is limited between BOT_MAX_PRICE and BOT_MIN_PRICE. The price difference between adjacent orders is BOT_PRICE_GAP.

Image (Image Source⁠)

Constant product algorithms have a disadvantage of low inventory utilization. For example, by default it only uses 5% of your inventory when the price increases 10%. BOT_EXPAND_INVENTORY can help you add depth near the current price.

  • BOT_MAX_PRICE Max order price
  • BOT_MIN_PRICE Min order price
  • BOT_PRICE_GAP Price difference rate between adjacent orders. For example, ask price increases by 2% and bid price decreases by 2% if BOT_PRICE_GAP=0.02.
  • BOT_EXPAND_INVENTORY Multiply your order sizes linearly. For example, all order sizes will be tripled if BOT_EXPAND_INVENTORY=3.
⁠Liquidity Sourcing In Constant Product AMM

Constant Product AMM requires a single source of funds for both the base and quote token. As such, the general flow of setting up the AMM bot from scratch is:

  • Prepare an address that holds both the BASE and QUOTE token of the trading pair you want to provide liquidity for
  • Set the initial parameters for the bot
    • This determines the initial price, spread, sensitivity, etc.
  • Run the bot

Upon running the bot, it will generate an orderbook for your marketplace. The orderbook will appear to be static, but every trade will shift the market accordingly.

⁠Further Information On Constant Product AMM

For more information on these models, Scalar Capital provided a detailed analysis of constant market making⁠.

⁠License

This project is licensed under the Apache 2.0 License - see the LICENSE⁠ file for details

Tag summary

Content type

Image

Digest

Size

5.4 MB

Last updated

over 7 years ago

docker pull hydroprotocolio/amm-bots