What is a Virtual AMM?

The concept of a Virtual Automated Market Maker (vAMM) was first introduced by Perpetual Protocol.

A vAMM works similarly to a non-virtual AMM with a constant product curve (e.g. a x*y=k), except that as the name suggests, the liquidity in the AMM is virtual. This means that assets are not exchanged, nor are two sides of an asset pair held in custody by the vAMM. The liquidity is set at the creation of the market and all trades happen in the vAMM. In practice, the state of each market, i.e. the vAMM, is stored in the data of a Solana account.

One interesting property of a vAMM is that any metric can be used as the basis for a perpetual derivatives contract marketplace as long as an oracle feed exists for it. For instance, in a BTC/USDC vAMM market, no actual BTC is exchanged and all transactions are conducted in USDC. The market uses its own price discovery mechanism (the vAMM) to perform conversions between virtual assets and the quote asset.

A key variable which determines the vAMM’s price inertia is k. In the conventional constant product curve model, k is an immutable variable throughout the lifetime of the market. The choice of value for k is a compromise between lower slippage at higher values and ease of arbitrage at lower values. In essence, k can be thought of as a measure of the market’s available virtual liquidity.