Skip to main content
Type: DLMM DEX | Docs: bean.exchange

Overview

Bean is a Discrete Liquidity Market Maker (DLMM) DEX native to Monad. Like LFJ’s Liquidity Book, Bean organizes liquidity into discrete price bins. Trades within a bin execute at zero slippage. Bean is optimized for Monad’s high-throughput environment, taking advantage of sub-second block times for responsive price discovery.

Functions

getBeanPairs()

Returns all active Bean trading pairs on Monad. Returns
FieldTypeDescription
pairAddressAddressBean pair contract address
token0AddressFirst token address
token1AddressSecond token address
binStepnumberBin size in bps
activeIdnumberCurrent active bin ID
reserve0bigintReserve of token0
reserve1bigintReserve of token1
pricenumberCurrent price of token0 in token1
feenumberBase fee in bps
import { getBeanPairs } from 'rampart-monad'

const pairs = await getBeanPairs()
console.log(`${pairs.length} Bean pairs`)

for (const pair of pairs) {
  console.log(`${pair.token0}/${pair.token1}`)
  console.log(`  Price: ${pair.price} | Bin step: ${pair.binStep} bps`)
  console.log(`  Active bin: ${pair.activeId}`)
}

getBeanPairCount()

Returns the total number of Bean pairs deployed on Monad. Returns number. total count of Bean pairs registered in the factory.
import { getBeanPairCount } from 'rampart-monad'

const count = await getBeanPairCount()
console.log(`Bean pairs deployed: ${count}`)
import { getBeanPairs } from 'rampart-monad'

const pairs = await getBeanPairs()

// Find pairs with meaningful reserves
const liquidPairs = pairs.filter(
  p => p.reserve0 > 0n && p.reserve1 > 0n
)
console.log(`Active pairs: ${liquidPairs.length}/${pairs.length}`)

// Sort by bin step to find stableswap-style pools
const stablePairs = liquidPairs
  .filter(p => p.binStep <= 5)
  .sort((a, b) => a.binStep - b.binStep)
console.log('Stable-like pairs:', stablePairs)
Bean leverages Monad’s ~400ms block times for responsive bin transitions. In volatile markets, the active bin ID changes frequently - poll with getBeanPairs() rather than caching prices for extended periods.

Contract Addresses

ContractAddress
Factory0xb0Bd8567b80bB0a24ec92d1e85e5d28b4285e2E4