How VVS Finance works
Every swap on VVS is priced by maths, not by a counterparty. Understand the automated market maker — the pool, the constant-product curve, and the fee split — and the rest of the platform stops feeling like magic.
Pools instead of order books
A traditional exchange keeps an order book: a list of people willing to buy and a list willing to sell, matched when their prices meet. An automated market maker throws that out. Instead, each market is a liquidity pool — a smart contract holding a reserve of two tokens, say CRO and a stablecoin. When you swap, you trade against the pool: you add one token and take out the other, and the contract recalculates the price on the spot based on what's left.
The tokens in that pool come from liquidity providers — ordinary users who deposit a balanced pair and, in exchange, earn a slice of every trade. No provider, no liquidity; no liquidity, no swap. That symbiosis is the heart of how VVS functions.
The constant-product formula
VVS's core pools use the model popularized by Uniswap V2: x × y = k. Here x and y are the amounts of the two tokens in the pool, and k is a constant the trade must preserve. Put in some of token X and the pool must give you enough of token Y to keep the product k unchanged (before fees). Because the relationship is a curve, not a straight line, the more you buy of one token the worse your rate gets — that's price impact, and it's why a huge trade in a small pool is expensive.
A worked example
Suppose a pool holds 1,000 CRO and 100 USDC, so k = 100,000 and the starting price is 0.10 USDC per CRO. You want to buy USDC with 100 CRO. Ignoring the fee for a moment, after your deposit the pool holds 1,100 CRO, so to keep k constant it must hold 100,000 ÷ 1,100 ≈ 90.9 USDC. You receive the difference: about 9.1 USDC.
Notice you got 9.1 USDC for 100 CRO — an effective price of ~0.091, worse than the 0.10 you saw before trading. That gap is price impact, and it grows with trade size relative to the pool. The same trade against a pool ten times deeper would barely move the price at all. This is the single most useful intuition on the whole site: depth beats everything for getting a fair rate.
Where the fee goes
Each swap charges a trading fee — commonly cited at 0.3% on the classic V2 pools — taken from the input amount. The bulk of that fee is added straight back into the pool, which means it accrues to the liquidity providers in proportion to their share. A portion of protocol revenue is also routed to buy back VVS from the market and reward xVVS stakers. Exact percentages and fee tiers can change and differ between pool types, so always trust the figure the interface shows you over any number you read in a guide — including this one.
When you provide liquidity, that 0.3% on every trade is your revenue stream. Whether it outweighs impermanent loss depends on how much the pool trades and how far the two prices drift apart. High volume plus low volatility is the friendly case.
V2 vs V3 liquidity
VVS offers two styles of pool, and the difference matters if you provide liquidity:
| V2 pools | V3 pools | |
|---|---|---|
| Liquidity spread | Across all prices, from zero to infinity | Concentrated in a price range you choose |
| Capital efficiency | Lower — much liquidity sits unused | Higher — your capital works where trading happens |
| Effort | Set and forget | Active — you may need to rebalance the range |
| Best for | Beginners, volatile pairs | Stable pairs, hands-on providers |
If you're just starting, V2 is the simpler mental model and the rest of our guides assume it unless noted. V3 can earn more on the same capital but asks you to manage a range, and liquidity outside that range stops earning until price returns.
Routing across pools
Not every pair has a direct pool. To swap token A for token C when only A/B and B/C pools exist, the router hops through B automatically — you still send A and receive C in one transaction, but the trade touches two pools and two fees. The interface shows the route and the resulting "minimum received." Our swap guide walks through reading those settings so you're never surprised by what lands in your wallet.
Mechanics summarized here are simplified for clarity and reflect the standard AMM design VVS uses; specific parameters can evolve. For exact, current behaviour and figures, rely on the live interface and the project's official documentation and channels.