Meteora DLMM

This document describes the output structure for the Meteora DLMM (Dynamic Liquidity Market Maker) decoder functions. The decoder handles six main event types: INITIALIZE_LB_PAIR, SWAP, REMOVE_LIQUIDITY, ADD_LIQUIDITY, INCREASE_LIQUIDITY, and DECREASE_LIQUIDITY.

Common Properties

All decoded events include the following base properties from BaseTransactionRecord:

Property
Type
JSON Type
Description

uuid

bigint

string

Unique identifier for the transaction record

instructionPath

string

string

Path to the instruction within the transaction

parentProgramId

string | null

string | null

ID of the parent program if applicable

txSignature

string

string

Transaction signature

blockTime

number

number

Block timestamp

programId

string

string

Meteora DLMM program ID

eventType

string

string

Type of event (INITIALIZE_LB_PAIR, SWAP, REMOVE_LIQUIDITY, ADD_LIQUIDITY, INCREASE_LIQUIDITY, DECREASE_LIQUIDITY)

decoderType

DecoderType

string

Decoder type identifier

blockHeight

number

number

Block height

slot

number

number

Blockchain slot number

txFee

number

number

Transaction fee in lamports

txFeeUiAmount

PreciseDecimal

string

UI-formatted transaction fee

INITIALIZE_LB_PAIR Event

Liquidity book pair initialization event.

Property
Type
JSON Type
Description

tokenXMint

string

string

Token X mint address

tokenYMint

string

string

Token Y mint address

tokenXDecimals

number

number

Token X decimal places

tokenYDecimals

number

number

Token Y decimal places

binStep

number

number

Bin step size

baseFactor

number

number

Base factor for price bins

filterPeriod

number

number

Filter period

decayPeriod

number

number

Decay period

reductionFactor

number

number

Reduction factor

variableFeeControl

number

number

Variable fee control parameter

maxVolatilityAccumulated

number

number

Maximum volatility accumulated

minBinId

number

number

Minimum bin ID

maxBinId

number

number

Maximum bin ID

protocolShare

number

number

Protocol share percentage

baseFeeRate

number

number

Base fee rate

SWAP Event

Token swap event on Meteora DLMM pool.

Property
Type
JSON Type
Description

lbPair

string

string

Liquidity book pair address

userTokenX

string

string

User's token X account

userTokenY

string

string

User's token Y account

reserveX

string

string

Token X reserve address

reserveY

string

string

Token Y reserve address

amountIn

bigint

string

Input token amount

amountInUiAmount

PreciseDecimal

string

UI-formatted input amount

amountOut

bigint

string

Output token amount

amountOutUiAmount

PreciseDecimal

string

UI-formatted output amount

swapForY

boolean

boolean

True if swapping for token Y

fee

bigint

string

Swap fee amount

feeUiAmount

PreciseDecimal

string

UI-formatted swap fee

protocolFee

bigint

string

Protocol fee amount

protocolFeeUiAmount

PreciseDecimal

string

UI-formatted protocol fee

feeBps

number

number

Fee in basis points

hostFee

bigint

string

Host fee amount

hostFeeUiAmount

PreciseDecimal

string

UI-formatted host fee

startBinId

number

number

Starting bin ID for swap

endBinId

number

number

Ending bin ID for swap

reserveXPostBalance

bigint

string

Token X reserve balance after swap

reserveXPostBalanceUiAmount

PreciseDecimal

string

UI-formatted token X reserve post-balance

reserveYPostBalance

bigint

string

Token Y reserve balance after swap

reserveYPostBalanceUiAmount

PreciseDecimal

string

UI-formatted token Y reserve post-balance

userTokenXPostBalance

bigint

string

User token X balance after swap

userTokenXPostBalanceUiAmount

PreciseDecimal

string

UI-formatted user token X post-balance

userTokenYPostBalance

bigint

string

User token Y balance after swap

userTokenYPostBalanceUiAmount

PreciseDecimal

string

UI-formatted user token Y post-balance

reserveXPreBalance

bigint

string

Token X reserve balance before swap

reserveXPreBalanceUiAmount

PreciseDecimal

string

UI-formatted token X reserve pre-balance

reserveYPreBalance

bigint

string

Token Y reserve balance before swap

reserveYPreBalanceUiAmount

PreciseDecimal

string

UI-formatted token Y reserve pre-balance

userTokenXPreBalance

bigint

string

User token X balance before swap

userTokenXPreBalanceUiAmount

PreciseDecimal

string

UI-formatted user token X pre-balance

userTokenYPreBalance

bigint

string

User token Y balance before swap

userTokenYPreBalanceUiAmount

PreciseDecimal

string

UI-formatted user token Y pre-balance

REMOVE_LIQUIDITY Event

Liquidity removal event for Meteora DLMM pool.

Property
Type
JSON Type
Description

position

string

string

Position account address

lbPair

string

string

Liquidity book pair address

userTokenX

string

string

User's token X account

userTokenY

string

string

User's token Y account

reserveX

string

string

Token X reserve address

reserveY

string

string

Token Y reserve address

binId

number

number

Bin ID for liquidity removal

bpsToRemove

number

number

Basis points to remove

amountXOut

bigint

string

Token X amount withdrawn

amountXOutUiAmount

PreciseDecimal

string

UI-formatted token X withdrawal amount

amountYOut

bigint

string

Token Y amount withdrawn

amountYOutUiAmount

PreciseDecimal

string

UI-formatted token Y withdrawal amount

reserveXPostBalance

bigint

string

Token X reserve balance after removal

reserveXPostBalanceUiAmount

PreciseDecimal

string

UI-formatted token X reserve post-balance

reserveYPostBalance

bigint

string

Token Y reserve balance after removal

reserveYPostBalanceUiAmount

PreciseDecimal

string

UI-formatted token Y reserve post-balance

userTokenXPostBalance

bigint

string

User token X balance after removal

userTokenXPostBalanceUiAmount

PreciseDecimal

string

UI-formatted user token X post-balance

userTokenYPostBalance

bigint

string

User token Y balance after removal

userTokenYPostBalanceUiAmount

PreciseDecimal

string

UI-formatted user token Y post-balance

reserveXPreBalance

bigint

string

Token X reserve balance before removal

reserveXPreBalanceUiAmount

PreciseDecimal

string

UI-formatted token X reserve pre-balance

reserveYPreBalance

bigint

string

Token Y reserve balance before removal

reserveYPreBalanceUiAmount

PreciseDecimal

string

UI-formatted token Y reserve pre-balance

userTokenXPreBalance

bigint

string

User token X balance before removal

userTokenXPreBalanceUiAmount

PreciseDecimal

string

UI-formatted user token X pre-balance

userTokenYPreBalance

bigint

string

User token Y balance before removal

userTokenYPreBalanceUiAmount

PreciseDecimal

string

UI-formatted user token Y pre-balance

ADD_LIQUIDITY Event

Liquidity addition event for Meteora DLMM pool.

Property
Type
JSON Type
Description

position

string

string

Position account address

lbPair

string

string

Liquidity book pair address

userTokenX

string

string

User's token X account

userTokenY

string

string

User's token Y account

reserveX

string

string

Token X reserve address

reserveY

string

string

Token Y reserve address

binId

number

number

Bin ID for liquidity addition

amount

bigint

string

Liquidity amount added

amountUiAmount

PreciseDecimal

string

UI-formatted liquidity amount

amountXIn

bigint

string

Token X amount deposited

amountXInUiAmount

PreciseDecimal

string

UI-formatted token X deposit amount

amountYIn

bigint

string

Token Y amount deposited

amountYInUiAmount

PreciseDecimal

string

UI-formatted token Y deposit amount

reserveXPostBalance

bigint

string

Token X reserve balance after addition

reserveXPostBalanceUiAmount

PreciseDecimal

string

UI-formatted token X reserve post-balance

reserveYPostBalance

bigint

string

Token Y reserve balance after addition

reserveYPostBalanceUiAmount

PreciseDecimal

string

UI-formatted token Y reserve post-balance

userTokenXPostBalance

bigint

string

User token X balance after addition

userTokenXPostBalanceUiAmount

PreciseDecimal

string

UI-formatted user token X post-balance

userTokenYPostBalance

bigint

string

User token Y balance after addition

userTokenYPostBalanceUiAmount

PreciseDecimal

string

UI-formatted user token Y post-balance

reserveXPreBalance

bigint

string

Token X reserve balance before addition

reserveXPreBalanceUiAmount

PreciseDecimal

string

UI-formatted token X reserve pre-balance

reserveYPreBalance

bigint

string

Token Y reserve balance before addition

reserveYPreBalanceUiAmount

PreciseDecimal

string

UI-formatted token Y reserve pre-balance

userTokenXPreBalance

bigint

string

User token X balance before addition

userTokenXPreBalanceUiAmount

PreciseDecimal

string

UI-formatted user token X pre-balance

userTokenYPreBalance

bigint

string

User token Y balance before addition

userTokenYPreBalanceUiAmount

PreciseDecimal

string

UI-formatted user token Y pre-balance

INCREASE_LIQUIDITY Event

Liquidity increase event for existing positions.

Property
Type
JSON Type
Description

position

string

string

Position account address

lbPair

string

string

Liquidity book pair address

userTokenX

string

string

User's token X account

userTokenY

string

string

User's token Y account

reserveX

string

string

Token X reserve address

reserveY

string

string

Token Y reserve address

liquidityAmount

bigint

string

Liquidity amount increased

liquidityAmountUiAmount

PreciseDecimal

string

UI-formatted liquidity increase amount

amountXIn

bigint

string

Token X amount deposited

amountXInUiAmount

PreciseDecimal

string

UI-formatted token X deposit amount

amountYIn

bigint

string

Token Y amount deposited

amountYInUiAmount

PreciseDecimal

string

UI-formatted token Y deposit amount

activeBinId

number

number

Active bin ID

reserveXPostBalance

bigint

string

Token X reserve balance after increase

reserveXPostBalanceUiAmount

PreciseDecimal

string

UI-formatted token X reserve post-balance

reserveYPostBalance

bigint

string

Token Y reserve balance after increase

reserveYPostBalanceUiAmount

PreciseDecimal

string

UI-formatted token Y reserve post-balance

userTokenXPostBalance

bigint

string

User token X balance after increase

userTokenXPostBalanceUiAmount

PreciseDecimal

string

UI-formatted user token X post-balance

userTokenYPostBalance

bigint

string

User token Y balance after increase

userTokenYPostBalanceUiAmount

PreciseDecimal

string

UI-formatted user token Y post-balance

reserveXPreBalance

bigint

string

Token X reserve balance before increase

reserveXPreBalanceUiAmount

PreciseDecimal

string

UI-formatted token X reserve pre-balance

reserveYPreBalance

bigint

string

Token Y reserve balance before increase

reserveYPreBalanceUiAmount

PreciseDecimal

string

UI-formatted token Y reserve pre-balance

userTokenXPreBalance

bigint

string

User token X balance before increase

userTokenXPreBalanceUiAmount

PreciseDecimal

string

UI-formatted user token X pre-balance

userTokenYPreBalance

bigint

string

User token Y balance before increase

userTokenYPreBalanceUiAmount

PreciseDecimal

string

UI-formatted user token Y pre-balance

DECREASE_LIQUIDITY Event

Liquidity decrease event for existing positions.

Property
Type
JSON Type
Description

position

string

string

Position account address

lbPair

string

string

Liquidity book pair address

userTokenX

string

string

User's token X account

userTokenY

string

string

User's token Y account

reserveX

string

string

Token X reserve address

reserveY

string

string

Token Y reserve address

liquidityAmount

bigint

string

Liquidity amount decreased

liquidityAmountUiAmount

PreciseDecimal

string

UI-formatted liquidity decrease amount

amountXOut

bigint

string

Token X amount withdrawn

amountXOutUiAmount

PreciseDecimal

string

UI-formatted token X withdrawal amount

amountYOut

bigint

string

Token Y amount withdrawn

amountYOutUiAmount

PreciseDecimal

string

UI-formatted token Y withdrawal amount

binId

number

number

Bin ID for liquidity decrease

reserveXPostBalance

bigint

string

Token X reserve balance after decrease

reserveXPostBalanceUiAmount

PreciseDecimal

string

UI-formatted token X reserve post-balance

reserveYPostBalance

bigint

string

Token Y reserve balance after decrease

reserveYPostBalanceUiAmount

PreciseDecimal

string

UI-formatted token Y reserve post-balance

userTokenXPostBalance

bigint

string

User token X balance after decrease

userTokenXPostBalanceUiAmount

PreciseDecimal

string

UI-formatted user token X post-balance

userTokenYPostBalance

bigint

string

User token Y balance after decrease

userTokenYPostBalanceUiAmount

PreciseDecimal

string

UI-formatted user token Y post-balance

reserveXPreBalance

bigint

string

Token X reserve balance before decrease

reserveXPreBalanceUiAmount

PreciseDecimal

string

UI-formatted token X reserve pre-balance

reserveYPreBalance

bigint

string

Token Y reserve balance before decrease

reserveYPreBalanceUiAmount

PreciseDecimal

string

UI-formatted token Y reserve pre-balance

userTokenXPreBalance

bigint

string

User token X balance before decrease

userTokenXPreBalanceUiAmount

PreciseDecimal

string

UI-formatted user token X pre-balance

userTokenYPreBalance

bigint

string

User token Y balance before decrease

userTokenYPreBalanceUiAmount

PreciseDecimal

string

UI-formatted user token Y pre-balance

Data Types

  • bigint: Large integer values for token amounts, fees, and liquidity

  • string: Text values for addresses and identifiers

  • number: Numeric values for bin IDs, basis points, and other integer values

  • boolean: True/false values for swap direction

  • PreciseDecimal: High-precision decimal representation for UI display

  • DecoderType: Enum indicating the decoder type (METEORA_DLMM)

Usage

The decoder automatically determines the event type and returns the appropriate structure. All monetary values are provided in both raw (bigint) and UI-formatted (PreciseDecimal) versions for flexibility in different use cases. The DLMM decoder handles dynamic liquidity market maker mechanics with bin-based liquidity management, variable fees, and concentrated liquidity features.

Last updated