lb_clmm program emits Anchor events through event CPI. Use this page when building indexers, analytics pipelines, charting systems, or low-level clients that need to map transactions back to DLMM pool activity.
Event CPI
Low-level builders should keep the generated
event_authority and program accounts in the exact account order expected by the IDL. If either account is missing or moved, Anchor account deserialization can fail before the handler reaches the intended operation.
Pool Events
LbPairCreate is the primary pool-discovery event. It identifies the pool and token pair, while mutable pool state such as active bin, fees, reserves, rewards, oracle, and status should be read from the LbPair account.
Position Events
IncreasePositionLength.side and DecreasePositionLength.side are encoded resize-side values from the program IDL.
Liquidity Events
CompositionFee can be emitted along with an add-liquidity or rebalance event. Indexers that calculate LP cost basis should process both event types for the same transaction.
Swap Events
Swap2Evt is the richer swap event for charting and analytics. New indexers should prefer it because it separates market-maker, protocol, limit-order, and host fee components.
Fee And Reward Events
Reward indexes are limited to the two DLMM reward slots,
0 and 1.
New indexers should prefer ClaimFee2 and ClaimReward2 when active-bin context is useful. The program still emits the original ClaimFee and ClaimReward compatibility events.
Operator And Oracle Events
Some operator and admin instructions update accounts without emitting a dedicated event. For those flows, use account-state indexing in addition to event indexing.
Limit Order Events
PlaceLimitOrderEvt.params includes the side, optional relative-bin settings, and bin amount list supplied to the instruction.
Declared Event Note
UpdatePositionLockReleasePoint is defined in src/events.rs, but no current lb_clmm handler emits it. Treat it as a declared compatibility type, not an emitted event source, unless a future program version adds an emit_cpi! call for it.

