Cross-Chain Verifiers Overview

Cross-Chain Verifiers (CCVs) are CCIP's pluggable verification layer. Each CCV attests that a source-chain message is valid before the destination chain executes it.

Most integrations use CCIP's default CommitteeVerifier without additional configuration. For how verification fits into the end-to-end message lifecycle, see the Architecture Overview.

This section explains how verification can be extended with custom or third-party CCVs. It does not describe default CCIP behavior in depth or provide production deployment guides.

What CCVs Do

CCVs bridge source-chain events and destination-chain execution:

  1. On the source chain, the CCV's outbound handler registers the message and returns attestation hints when the OnRamp emits CCIPMessageSent.
  2. Offchain, the CCV's verifier service waits for the required confirmation depth, validates the message, and publishes a VerifierResult tied to the MessageID.
  3. On the destination chain, the CCV's inbound implementation verifies attestation data when the OffRamp calls execute().

Each CCV consists of a stable onchain resolver contract and one or more versioned implementation contracts. This pattern lets verification logic upgrade without changing the CCV address that token pools and receivers reference.

When to Add CCVs

Consider additional CCVs when you need:

  • Additive security — require issuer, institution, or third-party attestation alongside the default verifier
  • External proof sources — integrate attestations from systems such as CCTP (USDC) or token-specific verification services
  • Policy layering — combine stricter CCV requirements with faster finality on specific lanes

CCV requirements are additive. The effective set for a message merges contributions from the sender, token pool, receiver, and lane configuration. All required CCVs must produce valid results before execution proceeds.

Verification Models

CCIP ships with concrete CCV implementations and supports permissionless custom verifiers:

ModelOperatorTypical use
CommitteeVerifierCCIP (default)Standard DON-based quorum signatures
CCTPVerifierPermissionlessCircle CCTP attestation for USDC transfers
LombardVerifierPermissionlessToken-specific external attestation
Custom CCVExternal operatorInstitution or application-specific verification

See Verification Models for how each model produces attestations.

Learn More

Get the latest Chainlink content straight to your inbox.