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 Committee Verifier without additional configuration. For how verification fits into the end-to-end message lifecycle, see the Architecture Overview.
This section explains how to extend verification 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:
- On the source chain, the OnRamp calls the CCV's outbound implementation, which runs the verifier's outbound hook and returns verifier data. The OnRamp emits that data in its
CCIPMessageSentevent. - Offchain, the CCV's verifier service waits for the required confirmation depth, validates the message, and publishes a VerifierResult tied to the message ID.
- On the destination chain, the CCV's inbound implementation verifies the attestation data when the OffRamp calls it during
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-Than-Finality (FTF) 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 CCVs:
| Model | Operator | Typical use |
|---|---|---|
| CommitteeVerifier | CCIP (default) | Standard DON-based quorum signatures |
| CCTPVerifier | Permissionless | Circle CCTP attestation for USDC transfers |
| LombardVerifier | Permissionless | Token-specific external attestation |
| Custom CCV | External operator | Institution or application-specific verification |
See Verification Models for how each model produces attestations.
Learn More
- Verification Models: Committee, CCTP, Lombard, and custom approaches
- CCV Interfaces & Guarantees: Onchain/offchain contracts and protocol requirements
- Trust & Responsibility Model: Operator and integrator accountability
- Message Configuration (ExtraArgs): Sender-side confirmation depth and execution parameters
- Architecture Overview: Full message lifecycle and default verification path