Cryptospecting

FACTS // VERIFIED 2026-10-17

How an AMM works: a PulseX pool, animated

Short answer

A PulseX pool is a contract holding two tokens. The price is the ratio between them; a swap puts one token in and takes the other out so that their product does not shrink, and the 0.29 % fee stays in the pool. The bigger a trade is compared with the pool, the worse its price — and arbitrage traders pull the price back in line with other markets.

An exchange without an order book, without a company that holds your money and without anyone setting prices sounds odd until you see it work. Below is a PulseX pool drawn as a machine. Press Play for a guided tour in eight steps, or set your own trade and press Swap. The numbers are round on purpose; the maths is the one in the PulseX contracts.

Live model // example numbers

A PulseX pool drawn as a machine Your wallet on the left is connected by two pipes to a tank with two chambers, WPLS and PLSX. Tokens you sell flow in through the top pipe, the tokens you buy flow out through the bottom pipe. A gear between the chambers stands for the rule x times y equals k. Next to the tank, the swap fee is shared between liquidity providers and the protocol: in a v2 pool 0.22 % of each trade stays with liquidity providers and 0.07 % goes to the protocol, which buys PLSX and burns most of it. IN OUT YOU WPLS PLSX x · y = k LPs 0.22 % PROTOCOL 0.07 %

A pool is one smart contract holding two tokens. Press Play for a guided tour, or set a trade below and press Swap.

Tour · 8 steps
Pool now: 300,000 WPLS · 400,000 PLSX · 1 WPLS = 1.3333 PLSX

Sizes are a share of what the pool holds of the token you sell.

Quote for the trade set above

You pay
30,000 WPLS
Fee 0.29 %
87 WPLS stays in the pool
You get
36,267.74 PLSX
Your average price
1 WPLS = 1.2089 PLSX
Price impact incl. fee
9.33 %
Pool price after
1 WPLS = 1.1022 PLSX (−17.33 %)
The constant-product curve A falling curve of every combination of WPLS and PLSX the pool may hold. A trade first moves the point right by the WPLS you add, then down by the PLSX the pool pays out, back onto the curve. Larger trades move further along the curve, where each extra WPLS buys less PLSX. WPLS in the pool → ↑ PLSX in the pool 300k 400k WPLS × PLSX = k

If you had supplied 10 % of the starting pool

You put in 30,000 WPLS and 40,000 PLSX and received LP tokens for a 10 % share. Swap a few times and see what that share would pay out now.

Example pool with round numbers so the arithmetic is easy to follow — not live reserves or prices. The swap maths is the one in the PulseX code: the router quotes amountIn × 9971 / 10000 and the pair checks that the product of its balances, after the 0.29 % fee, has not shrunk.

What is an automated market maker?

A classic exchange keeps an order book: buyers and sellers post prices, and a trade happens when two orders meet. An automated market maker (AMM) has no orders at all. Instead a smart contract — a pool — holds two tokens, and anyone can trade against it: put one token in, take the other out. PulseX is built from the Uniswap v2 design, the best-known AMM (PulseX).

Who put the tokens there? Liquidity providers. They deposit both tokens in the pool’s current ratio and receive LP tokens as a receipt for their share. Traders pay a fee, and that is what makes providing liquidity worth it — in v2 pools.

Why is the price just a ratio?

Because the pool knows nothing else. If it holds 300,000 WPLS and 400,000 PLSX, then 1 WPLS is worth 400,000 ÷ 300,000 ≈ 1.3333 PLSX. There is no oracle and no price feed: the ratio of the two piles is the price, and only trades change it.

What does a swap actually do?

It follows one rule: the product of the two balances, x × y, must not shrink. When you put tokens in, the pool works out how many of the other token it can pay out so that the product is at least what it was. The PulseX router quotes the trade with amountIn × 9971 / 10000 (PulseXRouter02.sol:251), and the pool itself refuses any swap that would leave the product smaller once the fee is taken into account (PulseXFactory.sol:456-459).

On the chart in the model that rule is the curve: every mix of WPLS and PLSX the pool may hold lies on it. A trade first moves the point off the curve — more WPLS in — and the payout brings it back onto the curve with less PLSX — onto a slightly higher curve, because the fee stays in the pool.

Where does the 0.29 % fee go?

Nowhere at first: it stays in the pool. The pool pays out as if you had sent 99.71 % of your tokens, keeps the whole amount, and so the product x × y grows a little with every trade. That growth belongs to the LP tokens. In v2 pools 0.22 % of the volume stays with liquidity providers and 0.07 % is later minted to the protocol, which turns it into PLSX and burns it, minus a 14.29 % developer cut (setting on 2026-10-17) — so about 0.06 % of the volume is burned; in v1 pools the protocol receives the whole fee growth, with the same cut. Switch between v1 pool and v2 pool in the model to see the difference, and read the verified details in PulseX fees.

Why do big trades get a worse price?

Because each token you add is worth a little less PLSX than the one before it — you are walking along the curve as you trade. A trade that is small compared with the pool barely moves it; a big one walks far.

You sell, as a share of the pool’s WPLS Your average price is worse than the starting price by PLSX gets dearer in the pool by
0.1 % 0.39 % 0.20 %
1 % 1.27 % 2.01 %
10 % 9.33 % 20.97 %
40 % 28.72 % 95.84 %

Calculated with the PulseX formula including the 0.29 % fee. The same arithmetic holds for any pool: what matters is the size of your trade compared with the pool, which is why a token with thin liquidity can swing wildly on small trades. This effect is called price impact; slippage is the extra move caused by other trades that land before yours (Glossary).

What pulls the price back?

Arbitrage. After a large purchase, PLSX is dearer in this pool than on other markets. Anyone can buy it cheaper elsewhere, sell it into the pool and keep the difference — and each such trade pushes the pool back towards the outside price. Try it with Let arbitrage fix the price in the model. Arbitrage is why pools on different DEXes usually show nearly the same price, and it pays the pool a fee each time.

What happens to liquidity providers?

Their LP tokens are a fixed share of whatever the pool holds. When the price moves, the pool holds more of the token that got cheaper and less of the one that got dearer, so a provider’s share is worth less than if they had simply kept the two tokens. That gap is called impermanent loss — impermanent because it shrinks again if the price returns. Fees work against it in v2 pools. The model’s last panel shows both for a provider who supplied 10 % of the starting pool.

How do I look at a real pool?

Open a pair contract on PulseScan and read getReserves — the two balances the price comes from. For the WPLS/PLSX pool of PulseX v2 that is 0x149b2c629e652f2e89e11cd57e5d4d77ee166f9f. Real pools are far larger than the example above, and their reserves change with every block. Step-by-step reading of contract values: Verify it yourself.

Frequently asked questions

Who sets the price on PulseX?

Nobody directly. The price of a pool is the ratio of the two tokens it holds, and it changes only when someone trades with the pool or adds or removes liquidity. Arbitrage traders keep it close to the price on other markets, because a gap between the two is money for whoever closes it.

Why did I get fewer tokens than the price the app showed?

Three reasons can add up: the 0.29 % fee, the price impact of your own trade (it moves the pool while it executes), and slippage — other trades that landed before yours. The swap screen’s slippage tolerance caps how much worse than the quote you accept.

Is providing liquidity free income?

No. Liquidity providers earn the fees that stay in a v2 pool, but when the price moves they end up with more of the token that fell and less of the one that rose — the price-move loss called impermanent loss. In PulseX v1 pools the protocol takes the whole fee growth, so providers in effect earn no fee income (PulseX fees).

Sources // last verified 2026-10-17

  1. T1 · Primary PulseX v2 router — getAmountOut with the 9971/10000 fee factor (PulseScan)
  2. T1 · Primary PulseX v2 factory and pair — swap check and LP minting, verified source (PulseScan)
  3. T1 · Primary WPLS/PLSX pair, PulseX v2 — live reserves via getReserves (PulseScan)
  4. T1 · Primary Uniswap v2-core — the constant-product contracts PulseX is built from

Source tiers are explained in Sources & methodology.