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
verifymust revert if quorum or signature validation fails.offRampAddressis 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.