Skip to main content
Version: 1.15.0

CCT pool types and version support

The EVM CCT operations work with several token pool contract types across five pool versions (v1.5.0, v1.5.1, v1.6.0, v1.6.1, and v2.0.0). Version v1.6.0 applies only to SiloedLockReleaseTokenPool, the one pool the 1.6.0 release stamped; every other type reports v1.5.x, v1.6.1, or v2.0.0. What the SDK can deploy is narrower than what it can administer and read: new pools are always v2.0.0, while the read and configuration operations recognize older pools too. Use these matrices to pick a deployable type and to check whether an operation applies to a given pool.

Deployable and recognized pool types​

deployTokenPool and the TokenPoolFactory deploy v2.0.0 pools only. The read and administration operations recognize all seven pool types across every supported version.

Pool typedeployTokenPoolFactoryAdminister / read
BurnMintTokenPoolYes (v2.0.0)Yes (v2.0.0)v1.5.0 to v2.0.0
BurnFromMintTokenPoolYes (v2.0.0)Nov1.5.0 to v2.0.0
BurnWithFromMintTokenPoolYes (v2.0.0)Nov1.5.0 to v2.0.0
LockReleaseTokenPoolYes (v2.0.0)Yes (v2.0.0)v1.5.0 to v2.0.0
BurnToAddressTokenPoolNoNov1.5.0 to v2.0.0
BurnMintWithLockReleaseFlagTokenPoolNoNov1.5.0 to v2.0.0
SiloedLockReleaseTokenPoolNoNov1.5.0 to v2.0.0

Operation applicability by pool version​

A v2.0.0-only operation throws CCTOperationUnsupportedError when the resolved pool is older, and the sender allowlist exists only through v1.6.1. Read the pool version (getTokenPoolState) before calling a version-scoped operation.

Operation groupMethodsApplies to
Remote lanesapplyChainUpdatesAll versions (declare the matching version shape)
Rate limitssetChainRateLimiterConfigsAll versions (fastFinality targets the v2.0.0 FTF bucket only)
Admin & pool registrationregisterAdmin, acceptAdmin, setPool, ownership transfersAll versions
ReadsgetTokenPoolState, getTokenPoolRemotes, getTokenAdminRegistryAll versions
Sender allowlistapplyAllowlistUpdatesv1.5.0 to v1.6.1 only (removed in v2.0.0)
Transfer fees & finalityapplyTokenTransferFeeConfigUpdates, setAllowedFinalityConfig, getFee, getTokenTransferFeeConfig, getAllowedFinalityConfigv2.0.0 only
CCVs & hooksapplyCCVConfigUpdates, getCCVConfig, getAllCCVConfigs, getRequiredCCVs, deployAdvancedPoolHooks, updateAdvancedPoolHooks, getAdvancedPoolHooksv2.0.0 only
LockboxgetLockboxv2.0.0 only

Siloed liquidity pools​

SiloedLockReleaseTokenPool escrows liquidity per remote lane. Each siloed lane holds its own balance, isolated from the shared unsiloed bucket that serves every non-siloed lane. The SDK works with the unsiloed side only:

  • provideLiquidity, withdrawLiquidity, transferLiquidity, and setRebalancer act on the unsiloed bucket and its rebalancer. On a siloed pool they measure available funds with getUnsiloedLiquidity(), not the pool's full token balance (which also holds every siloed lane's escrow), so a pre-flight matches what the plain withdrawLiquidity(uint256) can actually pay out.
  • The contract also exposes per-lane operations: provideSiloedLiquidity, withdrawSiloedLiquidity, setSiloRebalancer, and updateSiloDesignations. These are not exposed by the SDK. To manage a specific lane's silo, call the pool contract directly.

The SDK does not deploy siloed pools (see the deploy matrix above): deploy one from the contract's creation code, then administer and read it with the SDK.

Source code​

EVM​

Each cell links the pool contract at a version-pinned commit. An n/a cell means the type does not exist at that version. The v1.5.x contracts live in smartcontractkit/ccip, while v1.6.0, v1.6.1, and v2.0.0 all moved to smartcontractkit/chainlink-ccip, where only SiloedLockReleaseTokenPool was stamped v1.6.0.

Contractv1.5.0v1.5.1v1.6.0v1.6.1v2.0.0
BurnMintTokenPoolsrcsrcn/asrcsrc
BurnFromMintTokenPoolsrcsrcn/asrcsrc
BurnWithFromMintTokenPoolsrcsrcn/asrcsrc
LockReleaseTokenPoolsrcsrcn/asrcsrc
BurnToAddressTokenPooln/an/an/asrcsrc
BurnMintWithLockReleaseFlagTokenPooln/an/an/asrcsrc
SiloedLockReleaseTokenPooln/an/asrcsrcsrc

Solana​

Solana has one burn-mint program and one lock-release program, with no type-and-version matrix. Both are pinned to the solana-v1.6.4 release tag.