Skip to main content
Protocol events are emitted by the controller. Indexers should subscribe to the controller address. The pool is an implementation contract and does not provide the user-facing event stream. Source definitions live in common/src/events.rs.

Market And Pool State

EventPurpose
CreateMarketEventA hub-asset pool row was created.
UpdateMarketParamsEventPool params changed after interest was synced.
UpdateMarketStateBatchEventOne transaction updated one or more market state snapshots.
UpdateAssetOracleEventToken-rooted oracle config changed.
OracleDisabledEventToken-rooted oracle config was removed.
UpdateOracleToleranceEventOracle tolerance config changed.
OracleTwapDegradedEventPermissive policy used fallback when TWAP history was insufficient.

Account And Position

EventPurpose
CreateAccountEventNew account id created.
UpdatePositionBatchEventSupply and/or borrow positions changed.
UpdateAccountThresholdEventStored collateral risk parameters refreshed.
CleanBadDebtEventEligible residual debt was cleaned and socialized.
FlashLoanEventFlash loan completed.
BlendMigrationEventBlend migration completed.
UpdatePositionBatchEvent contains account attributes and a vector of per-hub-asset deltas. Consumers must process every vector element in the event.

Configuration

EventPurpose
UpdateSpokeEventSpoke created or deprecated.
UpdateSpokeAssetEventSpoke asset config added or edited.
RemoveSpokeAssetEventSpoke asset config removed.
UpdatePositionLimitsEventAccount position limits changed.
UpdateMinBorrowCollateralEventDebt collateral floor changed.
ApproveTokenEventToken listing approval changed.
ApproveBlendPoolEventBlend migration source approval changed.
UpdateAggregatorEventAggregator address changed.
UpdateAccumulatorEventRevenue accumulator address changed.
UpdatePoolTemplateEventPool WASM template changed.

Indexing Notes

  • Topic names are contract API. Treat renames as breaking changes.
  • Batch events can contain several hub assets.
  • HubAssetKey fields should be stored together; do not index by token address alone.
  • OracleTwapDegradedEvent is a degradation notice, not proof that the transaction failed.
  • BlendMigrationEvent should be correlated with the governance allow-list for the source Blend pool.