# Tricrypto-NG Overview

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

Contract Source & Deployment

Source code is available on [GitHub](https://github.com/curvefi/tricrypto-ng). The following documentation covers source code up until commit number [`33707fc`](https://github.com/curvefi/tricrypto-ng/commit/33707fc8b84e08786acf184fcfdb744eb4657a99).

All tricrypto-ng deployments can be found in the "Deployment Addresses" section. [↗](https://docs.curve.finance/developer/deployments.md).

For an in-depth understanding of the Cryptoswap invariant design, please refer to the official [Cryptoswap whitepaper](https://docs.curve.finance/assets/files/whitepaper_cryptoswap-de196d8f95aae3164a1226234d6d96ca.pdf).

* * *

**The Tricrypto-NG AMM infrastructure represents a technically enhanced iteration of the previous cryptoswap implementations. It comprises the following key components:**

`CurveTricryptoOptimized.vy`

* * *

The AMM is a **3-coin, auto-rebalancing Cryptoswap implementation** (version 2.0.0) with several optimizations. Unlike the older version, the **pool contract is an ERC20-compliant LP token**. Two implementations exist: one with **native transfers enabled** and one **disabled**.

[→ CurveTricryptoOptimized.vy](https://docs.curve.finance/developer/amm/tricrypto-ng/pools/tricrypto.md)

`CurveTricryptoFactory.vy`

* * *

The Factory allows the permissionless deployment of liquidity pools and gauges. It can accommodate **multiple blueprints of the AMM** contract. Blueprints are specified by the user while deploying the pool.

[→ CurveTricryptoFactory.vy](https://docs.curve.finance/developer/factory/tricrypto-ng/overview)

`CurveCryptoMathOptimized3.vy`

* * *

A contract which contains different **math utility functions** used in the AMM.

[→ CurveCryptoMathOptimized3.vy](https://docs.curve.finance/developer/amm/tricrypto-ng/utility-contracts/math.md)

`CurveCryptoViews3Optimized.vy`

* * *

Contains **view methods relevant for integrators** and users. The address of the deployed Views contract is stored in the Factory and is upgradeable by the Factory's admin.

[→ CurveCryptoViews3Optimized.vy](https://docs.curve.finance/developer/amm/tricrypto-ng/utility-contracts/views.md)

`Liquidity Gauge Blueprint`

* * *

A liquidity gauge blueprint implementation which deploys a liquidity gauge of a pool on Ethereum. Gauges on sidechains must be deployed via the [RootChainGaugeFactory](https://docs.curve.finance/developer/gauges/xchain-gauges/root-gauge-factory.md).

`Price Oracles`

* * *

Exponential moving-average oracles for the prices of coins within the AMM.

[→ Price Oracles](https://docs.curve.finance/developer/amm/tricrypto-ng/pools/oracles.md)
