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.
A pool is one smart contract holding two tokens. Press Play for a guided tour, or set a trade below and press Swap.
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 %)
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.
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.