> For the complete documentation index, see [llms.txt](https://goattrading.gitbook.io/goat/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://goattrading.gitbook.io/goat/technical/technical-overview.md).

# Technical Overview

Goat Trading is based on Uniswap V2 but includes functionality specific to the protocol. The main extra functionality is:

* MEV protection
* Bootstrapping liquidity (starting pools with virtual Ether and raising it as the token is traded)
* Vesting protection
* All fees taken in Ether and separate from liquidity (lps can collect lp fees without burning lp token)
* Liquidity locks for initial liquidity provider (Not just initial lp but minimum for others as well inorder to restrict bad lps from fees sandwiching)
* A “takeover” function that allows teams to reset a pool that a griefer made
* Pairs are created against eth(weth)

We have also removed:

* TWAP

Other than these, algorithmic functionality should be the same as Uniswap. The x \* y = k equation should always be used, although k will be adjusted once a  pool goes from bootstrapping period to the main period. This will result in a loss of liquidity.
