# CCV Starter Kit
Source: https://docs.chain.link/ccip/ccv-starter-kit
Last Updated: 2026-09-26

> For the complete documentation index, see [llms.txt](/llms.txt).

> **NOTE: Want information or need support?**
>
> Reach the CCV Starter Kit team at clusersupport\@smartcontract.com.

The CCV Starter Kit deploys a Cross-Chain Verifier (CCV) into Kubernetes infrastructure you already run. It has
two parts, each in its own repository with its own step-by-step documentation:

- The [on-chain contracts kit](https://github.com/smartcontractkit/chainlink-ccv-starter-kit-contracts) deploys
  and governs your verifier contracts.
- The [off-chain kit](https://github.com/smartcontractkit/chainlink-ccv-starter-kit) is a Helm chart that runs
  your verifier and aggregator as a cell: one verifier plus one aggregator, backed by Postgres. Both run as
  Docker images from the public [Amazon ECR gallery](https://gallery.ecr.aws/chainlink).

> **CAUTION: Keep the default verifier; add CCVs as defense in depth**
>
> CCIP verifies every message with its default **committee verifier**. Additional CCVs are defense in depth on top of
> it, not a replacement. The recommended security posture is to keep the committee verifier as your default CCV and
> require additional CCVs only where you need them. See [verification models](/ccip/concepts/ccvs/verification-models)
> and the [trust and responsibility model](/ccip/concepts/ccvs/trust-responsibility-model).

## Versions and releases

The chart and its images are versioned upstream, not in this guide, so these links always show the current
releases:

- [Verifier image](https://gallery.ecr.aws/chainlink/chainlink-ccv-verifier): Published tags for the verifier, on the public Amazon ECR gallery.
- [Aggregator image](https://gallery.ecr.aws/chainlink/chainlink-ccv-aggregator): Published tags for the aggregator, on the public Amazon ECR gallery.
- [Chart releases](https://github.com/smartcontractkit/chainlink-ccv-starter-kit/releases): Releases of the off-chain kit and the ccv-cell Helm chart, on GitHub.

## Available on the marketplaces

The CCV Starter Kit is listed on AWS Marketplace and Google Cloud Marketplace. Professional operators deploy by
following this guide and the starter kits.

- [AWS Marketplace](https://aws.amazon.com/marketplace/pp/prodview-mcqbm7qznr7ni)
- [Google Cloud Marketplace](https://console.cloud.google.com/marketplace/product/chainlink-labs-ltd-public/chainlink-ccv-starter-kit)

## Who this guide is for

You run production Kubernetes and own your networking, TLS and ingress, secret management, and a production
database. Cloud-specific dependencies are labeled by cloud (GCP, AWS, Azure, on-premise), and each links the
vendor's own documentation. The Helm charts are cloud-agnostic, so the same concepts apply on any other cloud
provider too. If you do not yet run this infrastructure, start with
[Prerequisites](/ccip/ccv-starter-kit/prerequisites) and set it up first.

This guide is the operator's install path. For what a CCV is and how it fits CCIP, see the
[CCV overview](/ccip/concepts/ccvs/overview).

## What you build

The verifier polls source chains and signs message hashes; the aggregator serves those attestations over gRPC;
the CCIP indexer reads them, and the executor runs the message on the destination. For the full end-to-end CCIP
v2 architecture, see the [CCIP architecture overview](/ccip/concepts/architecture/overview).

## What changes with your infrastructure

The verifier and aggregator run the same containers wherever you deploy them: any cloud (GCP, AWS, Azure, or
another provider) or on-premise. Only three things differ, and you own all three: how you inject the
configuration secret, how you expose the aggregator, and where Postgres comes from. On a managed cloud you use
that cloud's services for each; on-premise you run them yourself. The kit is brownfield: it deploys into
infrastructure you already run and provisions none of its own.

## Production topology

A single cell is for learning. In production run a committee of cells across independent failure domains,
ideally different clouds or regions, each cell fully independent (its own Postgres, secrets, and key custody,
never shared). The smallest production committee is four cells with a threshold of three.
[Scale to a committee](/ccip/ccv-starter-kit/how-to/scale-to-a-committee) explains the sizing and how to grow
beyond it.

## Policy hook and key custody

The kit adds two operator capabilities on top of the core cell:

- A custom [policy hook](/ccip/ccv-starter-kit/how-to/add-a-custom-policy-hook): an HTTPS endpoint you
  implement in any language to run your own compliance or risk checks before a node signs. It only has to honor
  the request/response contract (an
  [OpenAPI spec](https://github.com/smartcontractkit/chainlink-ccv/blob/main/verifier/policy_hook_openapi_v1.yaml));
  the verifier calls it for a PASS/FAIL on each message.
- [KMS key custody](/ccip/ccv-starter-kit/how-to/signer-key-custody-and-kms): the signing key never leaves
  your cloud KMS. Strongly recommended on a managed cloud.

## Start here

- [Prerequisites](/ccip/ccv-starter-kit/prerequisites): The cluster, database, secret store, and ingress you bring before you deploy.
- [Deploy your first cell](/ccip/ccv-starter-kit/evm/deploy-your-first-cell): Deploy the EVM on-chain contracts, then one off-chain cell: config, deploy, expose, register the signer.
- [Test your setup](/ccip/ccv-starter-kit/evm/test-your-setup): Prove the cell end to end with a token transfer and the ccip-cli.

## How-to guides

- [Choose a secret backend](/ccip/ccv-starter-kit/how-to/choose-a-secret-backend): What the cell keeps in its secrets and the backends that provide them.
- [Signer key custody and KMS](/ccip/ccv-starter-kit/how-to/signer-key-custody-and-kms): KMS versus the Postgres keystore, per cloud.
- [Expose the aggregator](/ccip/ccv-starter-kit/how-to/expose-the-aggregator): Pick a route type for your cluster and point the load balancer health check at readiness.
- [Scale to a committee](/ccip/ccv-starter-kit/how-to/scale-to-a-committee): Size and place a committee across failure domains.
- [Add a custom policy hook](/ccip/ccv-starter-kit/how-to/add-a-custom-policy-hook): Implement your PASS/FAIL compliance endpoint against the OpenAPI spec.

## Operate and reference

- [Onboard to the CCIP indexer](/ccip/ccv-starter-kit/onboard-to-the-indexer): Register your aggregators with the indexer so the default executor runs your messages.
- [Logging and monitoring](/ccip/ccv-starter-kit/logging-and-monitoring): OTLP telemetry, dashboards, and what to alert on.
- [Operate: day 2](/ccip/ccv-starter-kit/operate-day-2): On-chain and off-chain day-2 operations for both kits, plus troubleshooting.
- [Reference](/ccip/ccv-starter-kit/reference): Links to both kits' books, the chart values, and the concept pages.