CCIP v2.0.0 IRMN API Reference
Summary
IRMN defines the minimal on-chain interface for interacting with the Risk Management Network (RMN).
It allows CCIP contracts to:
- Check whether a Merkle root is blessed.
- Check whether the system is globally cursed.
- Check whether a specific subject is cursed.
All functions are read-only.
Contract
chains/evm/contracts/interfaces/IRMN.sol
Import
import {IRMN} from "chainlink-ccip/chains/evm/contracts/interfaces/IRMN.sol";
Interface surface
interface IRMN {
Struct: TaggedRoot
struct TaggedRoot {
address commitStore;
bytes32 root;
}
Represents a Merkle root tagged with the address of the commit store contract.
isBlessed
function isBlessed(
TaggedRoot calldata taggedRoot
) external view returns (bool);
Returns whether the specified tagged root is currently blessed.
isCursed()
function isCursed() external view returns (bool);
Returns true if a global or legacy curse is active.
isCursed(bytes16)
function isCursed(
bytes16 subject
) external view returns (bool);
Returns true if:
- A global curse is active, or
- The specified subject is cursed.
}
Integration notes / expectations
isBlessedresults may change over time and must not be cached across transactions.- Curse checks should be performed immediately before executing sensitive operations.
- Subjects (e.g., chain selectors) may be encoded as
bytes16(uint128(chainSelector))by calling contracts.