Events are emitted via Anchor’s emit! (program logs). Indexers and bots should subscribe to these rather than diffing account state.

IndexPushed

Fires on every accepted oracle observation, after the TWAP has absorbed it. See Price index.

BreakerTripped

Fires instead of IndexPushed when an observation deviates from the TWAP by more than breaker_bps. The market is now frozen and the TWAP was not updated. See Circuit breaker.

CurveTraded

Fires on curve_buy and curve_sell during the launch phase.

Graduated

Fires once per market on graduation.

AmmTraded

Fires on amm_buy and amm_sell after graduation. Same field semantics as CurveTraded (buys report gross SOL in, sells report net SOL out).

ShortChanged

Fires on open_short and repay_burn. Not emitted by add_collateral or withdraw_collateral.

FundingAccrued

Fires on every successful accrue_funding crank. See Funding.

ItemSwapped

Fires on deposit_item and withdraw_item. See Item swaps.

EscrowReleased

Fires on every successful release_escrow sweep of an identity escrow.

Liquidated

Fires on every successful liquidate. See Liquidations.