# Curve AMM

Source: [https://docs.curve.finance/developer/amm/curve-amm-overview](https://docs.curve.finance/developer/amm/curve-amm-overview)

Curve's Automated Market Maker (AMM) is built around two core invariants — **StableSwap** for assets that trade near parity, and **CryptoSwap** for volatile asset pairs. Both algorithms have gone through multiple iterations, with the current generation ("-NG") contracts offering significant gas optimizations, built-in LP tokens, and improved oracle support.

For the mathematical foundations, see the [StableSwap whitepaper](https://docs.curve.finance/assets/files/whitepaper_stableswap-fc0bb370db9fe3a91afdde8662e78206.pdf) and the [CryptoSwap whitepaper](https://docs.curve.finance/assets/files/whitepaper_cryptoswap-de196d8f95aae3164a1226234d6d96ca.pdf).

* * *

<a id="current-implementations"></a>

## Current Implementations

`Stableswap-NG`

* * *

Next-generation StableSwap pools for stablecoins and pegged assets. Supports plain pools and metapools with multiple asset types (standard ERC-20, rebasing, ERC-4626).

[→ Stableswap-NG](https://docs.curve.finance/developer/amm/stableswap-ng/overview.md)

`Twocrypto-NG`

* * *

Optimized 2-coin CryptoSwap pools for volatile asset pairs with auto-rebalancing, built-in ERC-20 LP tokens, and a hardcoded 50% admin fee.

[→ Twocrypto-NG](https://docs.curve.finance/developer/amm/twocrypto-ng/overview.md)

`FXSwap`

* * *

Two-coin pools for markets whose primary price discovery happens elsewhere, from fiat FX to BTC/USD. Combines variable-price StableSwap concentration, oracle-guided recentering, and optional refuels.

[→ FXSwap](https://docs.curve.finance/developer/amm/fxswap/overview.md)

`Tricrypto-NG`

* * *

Optimized 3-coin CryptoSwap pools with native transfer support. Used for major volatile pairs like ETH/BTC/USD.

[→ Tricrypto-NG](https://docs.curve.finance/developer/amm/tricrypto-ng/overview.md)

`Pool Factory`

* * *

Permissionless deployment of liquidity pools, gauges, and LP tokens across all pool types and chains.

[→ Pool Factory](https://docs.curve.finance/developer/amm/factory/overview.md)

`Router`

* * *

On-chain router that finds optimal swap routes across Curve pools, supporting up to five tokens in a single transaction.

[→ CurveRouter-NG](https://docs.curve.finance/developer/amm/router/curve-router-ng.md)

`Legacy Contracts`

* * *

Earlier implementations of StableSwap and CryptoSwap pools, factory contracts, LP tokens, and deposit contracts. Superseded by the NG versions above.

[→ StableSwap Legacy](https://docs.curve.finance/developer/amm/legacy/stableswap-overview.md)
