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

  • isBlessed results 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.

Get the latest Chainlink content straight to your inbox.