CCIP v2.0.0 IRMNRemote API Reference

Summary

IRMNRemote defines the interface for the remote Risk Management Network (RMN) contract.

It is used by CCIP components to:

  • Verify RMN node signatures over commit reports.
  • Query global and per-subject curse state.
  • Retrieve currently cursed subjects.

The interface extends [IRMN](/ccip/evm/api-reference/v2.0.0/i-rmn).


Contract

chains/evm/contracts/interfaces/IRMNRemote.sol


Import

import {IRMNRemote} from "chainlink-ccip/chains/evm/contracts/interfaces/IRMNRemote.sol";

Interface surface

interface IRMNRemote is IRMN {

Struct: Signature

struct Signature {
  bytes32 r;
  bytes32 s;
}

verify

function verify(
  address offRampAddress,
  Internal.MerkleRoot[] calldata merkleRoots,
  Signature[] calldata signatures
) external view;

Verifies RMN node signatures over a commit report.

Reverts on failure.


getCursedSubjects

function getCursedSubjects()
  external
  view
  returns (bytes16[] memory subjects);

Returns the list of currently cursed subjects.


isCursed()

function isCursed()
  external
  view
  override
  returns (bool);

Returns true if a global curse is active.


isCursed(bytes16)

function isCursed(
  bytes16 subject
)
  external
  view
  override
  returns (bool);

Returns true if:

  • A global curse is active, or
  • The specified subject is cursed.

}

Integration notes / expectations

  • verify must revert if quorum or signature validation fails.
  • offRampAddress is passed explicitly and must be incorporated into verification logic.
  • Curse checks should be performed by calling contracts before sensitive operations.
  • Implementations must ensure deterministic behavior for signature verification.

Get the latest Chainlink content straight to your inbox.