Skip to main content
TVL: ~$5M | Type: Orderbook AMM | Docs: docs.kuru.io

Overview

Kuru is a native Monad orderbook AMM that combines on-chain limit orders with automated market-making. Unlike traditional AMMs, Kuru maintains an on-chain orderbook with bid/ask price levels, enabling tighter spreads and more predictable execution. Kuru uses native MON as the base pricing asset, so token prices are expressed in MON terms. The SDK provides functions to read pool state, simulate swaps, and retrieve token prices.

Functions

getKuruPools()

Returns all active Kuru liquidity pools. Returns
FieldTypeDescription
poolAddressAddressOn-chain pool contract address
baseTokenAddressBase token address
quoteTokenAddressQuote token address (often USDC or MON)
pricenumberCurrent mid-market price
tvlnumberTotal value locked in USD
volume24hnumber24-hour trading volume in USD
import { getKuruPools } from 'rampart-monad'

const pools = await getKuruPools()
console.log(pools[0].price)   // e.g. 0.354 (MON/USD)
console.log(pools[0].tvl)     // e.g. 1200000

getOrderbook()

Returns the full bid/ask orderbook for a given Kuru pool. Parameters
NameTypeDescription
poolAddressAddressAddress of the Kuru pool
Returns
FieldTypeDescription
bidsOrderLevel[]Array of bid price levels { price, size }
asksOrderLevel[]Array of ask price levels { price, size }
spreadnumberBid-ask spread in basis points
midPricenumberMid-market price
import { getOrderbook } from 'rampart-monad'

const book = await getOrderbook('0x...')
console.log(`Mid: ${book.midPrice}`)
console.log(`Spread: ${book.spread} bps`)
console.log(`Best bid: ${book.bids[0].price}`)
console.log(`Best ask: ${book.asks[0].price}`)

simulateKuruSwap()

Simulates a swap on Kuru without sending a transaction. Parameters
NameTypeDescription
poolAddressAddressAddress of the Kuru pool
amountInbigintInput amount in token decimals
isBuybooleantrue = buy base token, false = sell base token
Returns
FieldTypeDescription
amountOutbigintExpected output amount
priceImpactnumberPrice impact as a percentage
executionPricenumberEffective execution price
feebigintFee paid in quote token
import { simulateKuruSwap } from 'rampart-monad'

const sim = await simulateKuruSwap(
  '0x...',        // poolAddress
  1_000_000n,     // 1 USDC (6 decimals)
  true            // buying base token
)
console.log(`Out: ${sim.amountOut}`)
console.log(`Price impact: ${sim.priceImpact}%`)

getTokenPrice()

Returns the current price of a token using Kuru as the price source. Parameters
NameTypeDescription
tokenAddressAddressToken to price
Returns
FieldTypeDescription
priceUsdnumberToken price in USD
priceMonnumberToken price in MON
sourcestringAlways "kuru"
poolAddressAddressPool used for pricing
import { getTokenPrice } from 'rampart-monad'

const price = await getTokenPrice('0x...')
console.log(`$${price.priceUsd} (${price.priceMon} MON)`)
Kuru returns the most reliable MON price on Monad (~$0.354). It is used as the cross-reference source in the SDK’s oracle module when Chainlink or Pyth feeds are unavailable.

Contract Addresses

ContractAddress
KuruRouter0x0000000000000000000000000000000000000000
BTC/USDC Pool0x0000000000000000000000000000000000000000
MON/USDC Pool0x0000000000000000000000000000000000000000
Kuru uses MON native pricing - prices for all assets are denominated in MON internally and converted to USD using the MON/USDC pool rate.