CCIP v2.0.0 Events API Reference
This page centralizes key events emitted across the CCIP EVM Solidity surface.
Use it to track message lifecycle, routing changes, and token movement. For full context, see the originating contract pages.
Event index
| Event | Contract | Category |
|---|---|---|
| CCIPMessageSent | OnRamp | Message sending |
| MessageExecuted | Router | Message delivery |
| ExecutionStateChanged | OffRamp | Message delivery |
| OnRampSet | Router | Configuration |
| OffRampAdded | Router | Configuration |
| OffRampRemoved | Router | Configuration |
| ConfigSet | OnRamp | Configuration |
| DestChainConfigSet | OnRamp | Configuration |
| StaticConfigSet | OffRamp | Configuration |
| SourceChainConfigSet | OffRamp | Configuration |
Message sending (source chain)
These events are emitted when a message is accepted on the source chain.
CCIPMessageSent
Emitted by: OnRamp When emitted: After a message is accepted and encoded for cross-chain delivery Why it matters: Primary event for tracking message submission
event CCIPMessageSent(
uint64 indexed destChainSelector,
address indexed sender,
bytes32 indexed messageId,
address feeToken,
uint256 tokenAmountBeforeTokenPoolFees,
bytes encodedMessage,
Receipt[] receipts,
bytes[] verifierBlobs
);
Message delivery (destination chain)
These events are emitted when a message is processed on the destination chain.
MessageExecuted
Emitted by: Router When emitted: After the Router attempts delivery to a receiver Why it matters: Correlates destination-chain execution attempts
event MessageExecuted(
bytes32 messageId,
uint64 sourceChainSelector,
address offRamp,
bytes32 calldataHash
);
ExecutionStateChanged
Emitted by: OffRamp When emitted: When execution state changes for a message Why it matters: Tracks success, failure, or intermediate execution states
event ExecutionStateChanged(
uint64 indexed sourceChainSelector,
uint64 indexed messageNumber,
bytes32 indexed messageId,
Internal.MessageExecutionState state,
bytes returnData
);
Routing and configuration
These events track routing updates and system configuration.
OnRampSet
Emitted by: Router When emitted: When an OnRamp is set or updated Why it matters: Tracks outbound routing configuration
event OnRampSet(uint64 indexed destChainSelector, address onRamp);
OffRampAdded
Emitted by: Router When emitted: When an OffRamp is authorized Why it matters: Tracks allowed destination-chain delivery sources
event OffRampAdded(uint64 indexed sourceChainSelector, address offRamp);
OffRampRemoved
Emitted by: Router When emitted: When an OffRamp is removed Why it matters: Tracks removal of delivery authorization
event OffRampRemoved(uint64 indexed sourceChainSelector, address offRamp);
ConfigSet
Emitted by: OnRamp When emitted: When OnRamp configuration is updated Why it matters: Tracks changes to source-chain configuration
event ConfigSet(StaticConfig staticConfig, DynamicConfig dynamicConfig);
DestChainConfigSet
Emitted by: OnRamp When emitted: When configuration for a destination chain is updated Why it matters: Tracks lane-specific configuration
event DestChainConfigSet(
uint64 indexed destChainSelector,
uint64 messageNumber,
DestChainConfigArgs config
);
StaticConfigSet
Emitted by: OffRamp When emitted: During initialization Why it matters: Defines baseline OffRamp configuration
event StaticConfigSet(StaticConfig staticConfig);
SourceChainConfigSet
Emitted by: OffRamp When emitted: When source-chain configuration is updated Why it matters: Tracks inbound lane configuration
event SourceChainConfigSet(
uint64 indexed sourceChainSelector,
SourceChainConfigArgs sourceConfig
);
Token pool events
Token pools emit events during token movement and configuration.
Lock and release
Contracts:
Typical behavior:
- Tokens are locked on the source chain
- Tokens are released on the destination chain
Refer to these contract pages for exact event definitions such as token lock, release, and liquidity updates.
Burn and mint
Contracts:
- BurnMintTokenPool
- Burn/mint pool variants
Typical behavior:
- Tokens are burned on the source chain
- Tokens are minted on the destination chain
Refer to these contract pages for exact event definitions such as burn, mint, and supply changes.
Token pool configuration
Relevant contracts:
Typical configuration events include:
- fee updates
- rate limit configuration
- allowlist or policy changes
Refer to token pool and registry contracts for full event definitions.