Liquidity Pools
VIRTUS Protocol supports three pool types, each designed for a specific class of asset pairs. All pools are non-custodial — the protocol never holds user funds. Pool smart contracts are immutable and publicly verifiable on BaseScan.
Pool Types
Stable Pools (sAMM)
Stable pools use a bonding curve optimised for assets that trade near a fixed ratio — stablecoin pairs, liquid staking derivatives against their base asset, or other pegged tokens.
Curve formula: x³y + xy³ = k
This formula maintains tighter price impact around the peg compared to a constant-product curve, making stable pools more capital-efficient for correlated assets.
| Property | Detail |
|---|---|
| Best for | USDC/USDT, USDC/DAI, wstETH/ETH, cbBTC/WBTC |
| Price impact | Low near the peg; increases when price deviates |
| Fee tier | Low (optimised for tight spreads) |
| Impermanent loss | Low when assets maintain peg; increases during depeg events |
Volatile Pools (vAMM)
Volatile pools use the standard constant-product curve for assets with no fixed price relationship.
Curve formula: x × y = k
Any swap moves the price along the curve. Larger swaps cause proportionally larger price impact.
| Property | Detail |
|---|---|
| Best for | WETH/USDC, VRT/WETH, any uncorrelated pair |
| Price impact | Proportional to swap size relative to pool depth |
| Fee tier | Standard |
| Impermanent loss | Increases with price divergence between the two assets |
Concentrated Liquidity Pools (CL / Slipstream)
Concentrated Liquidity (CL) pools allow LPs to deploy capital within a custom price range rather than across the entire price curve. Capital within the active range may accrue fees at a much higher rate per dollar deposited compared to full-range pools.
Mechanism: The price range is divided into discrete ticks. Each LP position specifies a lower and upper tick. When the current price is within that range, the position is active and may accrue fees. When the price moves outside the range, the position becomes inactive and accrues no fees until the price returns.
| Property | Detail |
|---|---|
| Best for | High-volume pairs where price stays in a predictable band |
| Capital efficiency | Significantly higher than vAMM/sAMM for active positions |
| Fee tiers | Multiple tiers available (select at pool creation) |
| Impermanent loss | Higher than full-range pools for narrow positions |
| Active management | Positions may need rebalancing as price moves |
Fee Tiers (CL)
| Fee Tier | Intended Use Case |
|---|---|
| 0.01% | Stable pairs, near-pegged assets |
| 0.05% | Highly liquid pairs (WETH/USDC, major stables) |
| 0.30% | Standard volatile pairs |
| 1.00% | Low-liquidity or exotic pairs |
Staked vs Unstaked Positions
LP positions exist in two states with distinct reward structures:
Unstaked (Default)
When you provide liquidity and do not stake your LP token in a gauge:
- May receive: 100% of trading fee distributions if the pool has no active gauge voting; 90% if there is an active gauge with votes directed at it (the remaining 10% goes to veVRT voters)
- Does not receive: VRT emissions
- Protocol fee: 0%
Fees are claimable at any time from the Pool interface.
Staked in Gauge
When you stake your LP token in a gauge, trading fees are redirected to veVRT voters who voted for that gauge. In exchange, you receive VRT emissions:
- May receive: VRT emission distributions directed to the gauge by veVRT vote weight
- Does not receive: Trading fees (redirected to voters)
- Protocol fee: 0%
VRT emissions are distributed weekly at epoch end, proportional to your share of staked liquidity in that gauge.
| LP Position | Pool has gauge w/ votes? | Trading Fees | VRT Emissions |
|---|---|---|---|
| Unstaked | No | 100% to LP | None |
| Unstaked | Yes | 90% to LP; 10% to voters | None |
| Staked in gauge | Yes | 100% to veVRT voters | Weekly VRT |
The decision to stake or not stake depends on whether VRT emission distributions (from gauge) are more favorable than direct trading fee distributions. High-volume pools may be more favorable unstaked; lower-volume pools with heavy vote incentives may be more favorable staked.
Fee Distribution
VIRTUS Protocol charges 0% protocol fee. All trading fees flow entirely to participants:
| Fee Source | Goes To |
|---|---|
| Fees from unstaked LP positions | LP holders, proportional to pool share |
| Fees from gauge-staked LP positions | veVRT voters who voted for that gauge |
Eligible veVRT voters may receive up to 100% of fee distributions from every pool they voted for during the epoch. Fee distributions are claimable after each epoch closes.
How to Provide Liquidity
Standard Pools (sAMM / vAMM)
- Navigate to Pool in the VIRTUS app
- Select an existing pool or create a new one
- Enter the amounts of each token to deposit
- Approve token spending and confirm the deposit transaction
- Receive LP tokens representing your share of the pool
LP tokens are standard ERC-20 tokens. They can be held (unstaked, earning fees) or staked in the associated gauge.
Concentrated Liquidity Pools
- Select a CL pool and choose a fee tier
- Set a price range — the lower and upper bounds within which your liquidity will be active
- Enter the deposit amount for one token; the required amount of the second token is calculated automatically based on your range and current price
- Approve and confirm
CL positions are represented as ERC-721 NFTs (one per position) rather than fungible LP tokens. Each position carries its own price range, liquidity amount, and accrued fees.
Active range management: If the price moves outside your specified range, your position accrues no fees. You may need to close and reopen the position at a new range to remain active.
Staking LP Tokens in a Gauge
After providing liquidity:
- Go to the Gauge section for that pool
- Stake your LP tokens (or CL NFT) in the gauge contract
- Gauge tracks your staked share — VRT emissions accumulate weekly
To unstake, withdraw your LP tokens from the gauge at any time. Accrued but unclaimed emissions remain claimable after withdrawal.
Blue Fish Pools
VIRTUS Protocol deploys initial liquidity into three core pools that serve as the primary liquidity backbone of the protocol:
| Pool | Type | Role |
|---|---|---|
| WETH / USDC | Volatile (CL) | Primary ETH ↔ stablecoin routing |
| cbBTC / USDC | Volatile (CL) | Primary BTC ↔ stablecoin routing |
| WETH / cbBTC | Volatile (CL) | ETH ↔ BTC cross pair |
These pools are funded from the 50,000,000 VRT Initial Liquidity allocation from the genesis mint, paired with corresponding base assets. They establish trading depth before external liquidity providers join.
Pool Creation
Any user can create a new pool for any token pair, subject to the token whitelist. Pools with non-whitelisted tokens cannot receive gauge incentives or VRT emissions — they may exist as pools where fee distributions go directly to LPs, but will not appear in the governance voting interface.
The token whitelist is managed by the Governor address to prevent spam tokens from entering the emission voting system.
Pool Launcher
VIRTUS Protocol includes a Pool Launcher module (audited separately by MixBytes, Sep–Oct 2025) that provides tooling for creating and configuring new pools. See Security Overview for the full audit scope.
Impermanent Loss
Impermanent loss (IL) occurs when the price ratio between two pooled assets changes after deposit. The LP position ends up worth less than simply holding the two assets separately.
| Pool Type | IL Profile |
|---|---|
| Stable (sAMM) | Low — minimal while assets maintain peg; increases sharply during depeg events |
| Volatile (vAMM) | Moderate — grows with price divergence; standard for uncorrelated pairs |
| CL (narrow range) | High — concentrated exposure amplifies both fee distributions and IL exposure |
| CL (wide range) | Similar to vAMM — lower fee efficiency but lower IL concentration risk |
Fee distributions may partially offset impermanent loss in high-volume pools. VRT emission distributions (when staked) may provide additional offset. Neither eliminates IL — liquidity provision always carries price exposure risk.
Key Contracts
| Contract | Address |
|---|---|
| Pool Factory (sAMM / vAMM) | 0x7F03ae4452192b0E280fB0d4f9c225DDa88C7623 |
| Factory Registry | 0x8a66e17dc6fa9c963e891391c92d451202b6fa28 |
| Voter (gauge allocation) | 0x83eAb12357860e8be00D4b8a65928D6caB4c0e0c |
All contracts are publicly verifiable on BaseScan.
Legal
Providing liquidity on VIRTUS Protocol involves significant financial risk, including total loss of deposited assets due to impermanent loss, smart contract vulnerability, or market conditions. This documentation is for informational purposes only and does not constitute investment advice. See Legal Disclaimer for the full risk disclosure.
Last updated: May 2026 — Version 1.1
© 2026 VIRTUS Protocol. All rights reserved.