⛏ Witness School · MELEK · PRANA pool
SchoolDevTokenServicesLearnAcademyBuildWhitepaperRunPoolMineFeesServersWalletHathorLibrary

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:

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

PairReserve 0Reserve 1Price implied by the reservesPair 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

  1. Add PRANA to your wallet. RPC https://rpc.prana.melek.salon, chain id 712217. One tap on the Akasha wallet page.
  2. Hold some PRANA for gas. Every swap is a transaction; gas is paid in the native coin, not in the token you are swapping.
  3. 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.
  4. 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.
  5. 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

Router0x24e53792B7f6609c85Bd3a3179A90638c9Dbc8B5UniswapV2-style; swaps and liquidity go through here
Factory0xFb5B83ed7F54e5fa45ED528dbe2167bB0b93b1E6creates 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