Cross-Chain Token Standard - Integration Guide (SVM)
This integration guide helps you determine the optimal path for integrating your SPL token with Chainlink CCIP on SVM-based blockchains like Solana. Follow the decision tree below to understand your specific requirements, deployment options, and when you can use self-service versus when you need Chainlink assistance.
Prerequisites
Before starting integration, ensure you meet these requirements:
-
Token Compatibility: Your token must meet compatibility requirements
-
Decimal Planning: Plan decimal configuration across all target blockchains
-
Pool Type Selection: Choose the appropriate token pool type for your use case:
-
BurnMint Pools: Burn tokens on source, mint on destination. Requires transferring mint authority to pool. Best for tokens designed to have variable supply across chains.
-
LockRelease Pools: Lock tokens on source, release on destination. No mint authority transfer required. Requires liquidity management. Best for retaining mint authority control or capped-supply tokens.
For detailed comparisons and technical requirements, see Token Handling Mechanisms.
-
Integration Overview
CCIP Cross-Chain Token (CCT) integration involves two key phases:
- Token Registration: Establishing a CCIP token administrator role
- Token Pool Deployment: Setting up the pool program that handles cross-chain operations
Your path through these phases depends on your mint authority control and chosen deployment approach.
Decision Flow Diagram
The following diagram visualizes the complete decision process based on your mint authority control:
Mint Authority Assessment
The first critical decision point is understanding your mint authority control, as this determines your available options throughout the integration process.
Why mint authority control matters for token registration: The Router's owner_propose_administrator
instruction can only be called by the actual mint authority holder. The Router verifies onchain that the signer account matches the token's mint_authority
field. If you cannot sign this instruction as the mint authority, the Router cannot verify your authorization onchain, requiring manual governance assistance.
You have direct control when:
- You hold the mint authority private key directly
- You control a governance multisig that holds the mint authority (non-SPL token multisig)
- You can execute mint authority operations through your governance process
You do NOT have direct control when:
- Mint authority is set to
None
(supply capped) - Mint authority is held by an SPL token multisig
- Mint authority is controlled by another party you cannot coordinate with
- You have lost access to the mint authority private key
Integration Paths
Based on your mint authority control, follow the appropriate integration path:
Path A: Full Self-Service (Mint Authority Controlled)
When to use: You have direct control over the mint authority
Registration Process:
- Self-service registration: Use
owner_propose_administrator
andaccept_admin_role_token_admin_registry
instructions (propose + accept) - Immediate control: Complete registration without external assistance
- Administrator flexibility: Choose any address as the CCIP token administrator
Pool Deployment Options:
-
Self-Serve Mode (Recommended)
- Use Chainlink-deployed standard pool programs
- Initialize your pool using
initialize
instruction - Automatic governance-controlled upgrades
- Lowest operational overhead
-
- Deploy standard pool programs yourself
- Control upgrade authority and timing
- Initialize your own pools
-
- Build custom pool logic for specialized requirements
- Full control over implementation and upgrades
Path B: Assisted Registration + Self-Serve Pools (Mint Authority Not Controlled)
When to use: You want to use self-serve mode pools, but you cannot call owner_propose_administrator
as the mint authority
Registration Process:
- Manual registration required: Submit registration request
- CCIP governance assistance: Router upgrade authority will propose the administrator using
ccip_admin_propose_administrator
- Choose administrator: You specify who should be the CCIP token administrator
Pool Deployment:
- Assisted pool initialization: Submit registration request to have the pool program upgrade authority initialize your pool
- Self-serve mode benefits: Once initialized, you become the pool owner with full configuration control
- Governance-controlled upgrades: Benefit from automatic security updates and features
Path C: Full Manual Process (Custom or Self-Deployed)
When to use: You cannot call owner_propose_administrator
as the mint authority and want self-deployed or custom pools
Registration Process:
- Same manual registration process as Path B
Pool Deployment:
- Deploy your own programs: Full control over pool program deployment
- Control upgrade authority: Manage your own upgrade process
- Initialize independently: Use your upgrade authority to initialize pools
Implementation Steps
Once you've determined your path, follow these implementation steps:
Step 1: Complete Registration
- Self-service path: Follow self-service registration
- Assisted path: Submit registration request
Step 2: Deploy and Initialize Token Pool
Choose your deployment approach:
-
Self-serve mode: Initialize pool from existing Chainlink-deployed programs
- If you can sign as mint authority: Use the
initialize
instruction directly - If you cannot sign as mint authority (mint authority is
None
, held by SPL token multisig, or controlled by another party): Submit registration request for assisted initialization
- If you can sign as mint authority: Use the
-
Self-deployed: Deploy standard pool programs yourself, then initialize pool from your deployed program
-
Custom: Implement and deploy custom pool following technical requirements, then initialize pool from your deployed program
Step 3: Create Associated Token Account
- Create the Associated Token Account (ATA) for the Pool Signer PDA
- Required: Pool operations cannot begin without this ATA
- The ATA will hold tokens for LockRelease pools or serve as the burn account for BurnMint pools
Step 4: Transfer Mint Authority (BurnMint Pools Only)
Choose one of two approaches:
- Direct Transfer: Transfer
mint_authority
directly to the Pool Signer PDA (simple, pool-only minting) - Multisig Setup (Recommended): Create an SPL token multisig with Pool Signer PDA as one signer (flexible, multiple authorized minters)
See Mint Authority Management for detailed configuration options.
Step 5: Create Address Lookup Table (ALT)
- Create an ALT containing all required accounts for your pool operations
- Must include minimum 9 required accounts in specific order
- See Pool Configuration requirements for account list
Step 6: Link Pool to Token Registry
- Call
set_pool
instruction on the Router - Links your pool's ALT to your token in the TokenAdminRegistry
- Enables CCIP to route cross-chain transfers to your pool
Step 7: Configure Pool Settings
- Complete remote chain configuration
- Set up rate limits and security settings
- For LockRelease pools: Configure liquidity management
Next Steps
After determining your integration path:
-
Review Detailed Documentation:
- Architecture: Understand component interactions
- Tokens: Token requirements and compatibility
- Token Pools: Pool implementation details
- Registration & Administration: Complete registration and configuration procedures
-
For Assisted Paths: Submit your registration request with detailed information about your token and requirements
-
For Self-Service Paths: Begin with token registration following the appropriate workflow for your chosen deployment approach