KulaSwap · swapping and liquidity on PRANA
KulaSwap is a Uniswap-V2-style automated market maker on PRANA. There is no order book and no counterparty waiting to take your trade. Every market is a pool holding two tokens, and the pool quotes a price purely from how much of each it holds. You are always trading against the pool itself.
The one formula
A V2 pool keeps x · y = k. x and y are the two reserves;
k must not fall. Put some of token A in and the pool gives you however much of token B keeps
the product the same. That is the pricing mechanism.
Two consequences worth understanding before you trade:
- Price is the ratio of the reserves. A pool holding 16,000 of one and 10,000 of the other prices them at 1.6 to 1 — not because anyone decided that, but because that is what the reserves are.
- Your own trade moves the price. The bigger your trade relative to the pool, the worse your fill. That is slippage. It is a property of the curve, not a fee. The smaller the pool, the further a given trade moves the price.
Every swap also pays 0.30% to the liquidity providers of that pool. That is the entire fee; KulaSwap takes no cut on top.
Live pairs on KulaSwap
| Pair | Reserve 0 | Reserve 1 | Price implied by the reserves | Pair contract |
|---|---|---|---|---|
| wMELEK / KULA | 0 wMELEK | 0 KULA | no reserve on one side | 0x7edff6942133cb0d7bb831d711f5507a475298fe |
| KULA / WPRANA | 16,676.4383 KULA | 10,630.1249 WPRANA | 1 KULA = 0.637434 WPRANA | 0x3fc307dea06667f5a7a640ec0abb950eacc4b8c2 |
| KULA / wVKBT | 1,089.7315 KULA | 19,075.7132 wVKBT | 1 KULA = 17.504966 wVKBT | 0xe3e01d327bc2bee7a5754c1e7ff23158e017688e |
| wCURE / KULA | 483.4344 wCURE | 1,133.036 KULA | 1 wCURE = 2.343722 KULA | 0x521786d5ede921c7e8f248796aca10e5370149a3 |
| wCURE / wVKBT | 90.4381 wCURE | 3,650 wVKBT | 1 wCURE = 40.359092 wVKBT | 0xa1a6143cedd0d0cddcad16c7b0fa034c3982351c |
| KULA / wMELEK | 0.1045 KULA | 0.9 wMELEK | 1 KULA = 8.610051 wMELEK | 0xa88cb17efeeeaf68b2eb970dcabd26a60b3feb3b |
| KULA / MWALI | 250.9409 KULA | 79.1362 MWALI | 1 KULA = 0.315358 MWALI | 0xe8170e1982e32ef754460d8fbc0cc1dbc7297ac8 |
| WPRANA / wVKBT | 2.5 WPRANA | 68.236 wVKBT | 1 WPRANA = 27.2944 wVKBT | 0x39f1c1276e5cc3c0957858f7943a11afd3fa7a38 |
| wCURE / WPRANA | 1.6632 wCURE | 2.5 WPRANA | 1 wCURE = 1.503108 WPRANA | 0xf03a27e30b6abfa9107ac9a26cb90a70da041eeb |
Read live from the factory just now. A price here is the
pool ratio, which is what you would get on an infinitely small trade — your actual fill is worse by
the slippage your size causes plus the 0.30% fee. Reserves are scaled by each token's own decimals() — they are not uniformly 18 on this chain.
How to swap
- Add PRANA to your wallet. RPC
https://rpc.prana.melek.salon, chain id712217. One tap on the Akasha wallet page. - Hold some PRANA for gas. Every swap is a transaction; gas is paid in the native coin, not in the token you are swapping.
- Approve the router once per token. ERC-20 requires you to authorise the router
(
0x24e53792B7f6609c85Bd3a3179A90638c9Dbc8B5) to move a token before it can. The approval is a transaction of its own and only has to be done once per token. Approve the amount you intend to trade rather than an unlimited allowance. - Check the pool you are actually routing through. Use the table above. If a pair is one-sided there is no market; if it is small, your trade will move it.
- Set a slippage tolerance you chose deliberately and a deadline. Slippage tolerance is the worst price you will accept — set it too high on a thin pool and you can be filled far from the quote.
How to provide liquidity — and what it costs you
Adding liquidity means depositing both tokens in the pool's current ratio. You receive LP tokens representing your share, and you earn your share of the 0.30% fee on every trade through that pool. You can withdraw by burning the LP tokens.
Impermanent loss. If the two tokens change in relative price while you are in the pool, the pool rebalances against you — it sells you out of the one that is rising and into the one that is falling. Withdraw at that point and you hold less value than if you had simply kept both tokens in your wallet. The fees you earned may or may not cover it. It is called impermanent because it reverses if the ratio returns, and it becomes permanent the moment you withdraw.
Supplying liquidity is therefore a position in both tokens, not a deposit paying a yield.
Creating a market for your own token
If you have minted a token — see PRC-20 and Make a token — it
has no price until a pool exists. You create one by calling the factory
(0xFb5B83ed7F54e5fa45ED528dbe2167bB0b93b1E6) and then funding both sides.
The first deposit sets the price. There is nothing to arbitrage against, so whatever ratio you deposit becomes the opening price. Deposit 1,000 of your token against 1 PRANA and you have declared your token worth a thousandth of a PRANA. A pair with no reserve on one side cannot be traded against until both sides hold a balance.
Contracts
| Router | 0x24e53792B7f6609c85Bd3a3179A90638c9Dbc8B5 | UniswapV2-style; swaps and liquidity go through here |
| Factory | 0xFb5B83ed7F54e5fa45ED528dbe2167bB0b93b1E6 | creates and indexes pairs |
Verified from the chain: the router's factory() returns the
factory address above, and the factory reports the pair count shown in the table. ABIs and the full contract
set are on PRANA contract dev.
The theory behind this page
KulaSwap and the DEX lineage · PRANA compute chain · The two-token economy — MELEK and PRANA · PRANA pool payouts · The bridge toll — power-down and the cost of exit