SOK: Decentralized exchanges (DEX) with automated market maker (AMM) protocols

This is an exploration of the different automated market making algorithms in DeFi.

Paper link:

Xu, J., Paruch, K., & Cousaert, S., Feng Y. (2021). SoK: Decentralized Exchanges (DEX) with Automated Market Maker (AMM) protocols. arXiv e-prints, arXiv-2103.

Table Of Contents

Setup

We recommend you use pyenv to manage your python versions.

We have used python 3.9.1 in this repo.

On how to use pyenv, see here.

We also advise you to use venv module to manage the per project python dependencies.

For example, once you have installed the 3.9.1 python version with pyenv, execute this

python -m venv ~/.v/uclamm

This command will create a uclamm python virutal environment. Now you are ready to install the dependencies required for this project.

Activate the environment

source ~/.v/uclamm/bin/activate

Now, install the dependencies

pip install -r requirements.txt

Conservation function, slippage and divergence loss plots

To plot all of these, run

python -m amms.analysis

from the root of this workspace. Note that it takes some time to plot all of these.

Contributing

You must follow our code style if you want to make a pull request. We are using pre-commit to maintain our code style and formatting (flake8 and black). To activate the pre-commit hooks, run

pre-commit install

in the root of this workspace. This will enable automatic linting and formatting on commits, so that you don't need to worry about it.