From 5974392c2652928522d741773a1fab991b85c0a8 Mon Sep 17 00:00:00 2001 From: aelmanaa Date: Thu, 17 Jul 2025 11:14:32 +0200 Subject: [PATCH 01/17] revamp cct concept docs --- .../burnmint-pool-anatomy.svg | 102 +++ .../cct-svm-accepting-administrator-role.png | Bin 85839 -> 0 bytes .../cct-svm-proposing-administrator.png | Bin 84641 -> 0 bytes .../cct/cct-svm-diagrams/cct-svm-set-pool.png | Bin 123202 -> 0 bytes .../cct-svm-transfer-administrator-role.png | Bin 156126 -> 0 bytes .../lockrelease-pool-anatomy.svg | 102 +++ .../cct-svm-diagrams/solana_accept_admin.svg | 1 + .../cct-svm-diagrams/solana_cct_flowchart.svg | 102 +++ ...a_owner_override_pending_administrator.svg | 1 + .../cct-svm-diagrams/solana_owner_propose.svg | 1 + .../cct/cct-svm-diagrams/solana_set_pool.svg | 1 + ...lana_set_pool_supports_auto_derivation.svg | 1 + .../solana_transfer_admin_role.svg | 1 + src/config/sidebar.ts | 8 +- .../cross-chain-token/svm/architecture.mdx | 134 ++-- .../concepts/cross-chain-token/svm/index.mdx | 1 + .../svm/integration-guide.mdx | 219 ++++++ .../svm/registration-administration.mdx | 223 ++++-- .../cross-chain-token/svm/token-pools.mdx | 645 ++++++++++++++---- .../concepts/cross-chain-token/svm/tokens.mdx | 189 ++--- .../cross-chain-token/svm/upgradability.mdx | 139 +++- 21 files changed, 1510 insertions(+), 360 deletions(-) create mode 100644 public/images/ccip/cct/cct-svm-diagrams/burnmint-pool-anatomy.svg delete mode 100644 public/images/ccip/cct/cct-svm-diagrams/cct-svm-accepting-administrator-role.png delete mode 100644 public/images/ccip/cct/cct-svm-diagrams/cct-svm-proposing-administrator.png delete mode 100644 public/images/ccip/cct/cct-svm-diagrams/cct-svm-set-pool.png delete mode 100644 public/images/ccip/cct/cct-svm-diagrams/cct-svm-transfer-administrator-role.png create mode 100644 public/images/ccip/cct/cct-svm-diagrams/lockrelease-pool-anatomy.svg create mode 100644 public/images/ccip/cct/cct-svm-diagrams/solana_accept_admin.svg create mode 100644 public/images/ccip/cct/cct-svm-diagrams/solana_cct_flowchart.svg create mode 100644 public/images/ccip/cct/cct-svm-diagrams/solana_owner_override_pending_administrator.svg create mode 100644 public/images/ccip/cct/cct-svm-diagrams/solana_owner_propose.svg create mode 100644 public/images/ccip/cct/cct-svm-diagrams/solana_set_pool.svg create mode 100644 public/images/ccip/cct/cct-svm-diagrams/solana_set_pool_supports_auto_derivation.svg create mode 100644 public/images/ccip/cct/cct-svm-diagrams/solana_transfer_admin_role.svg create mode 100644 src/content/ccip/concepts/cross-chain-token/svm/integration-guide.mdx diff --git a/public/images/ccip/cct/cct-svm-diagrams/burnmint-pool-anatomy.svg b/public/images/ccip/cct/cct-svm-diagrams/burnmint-pool-anatomy.svg new file mode 100644 index 00000000000..efdea0b23ad --- /dev/null +++ b/public/images/ccip/cct/cct-svm-diagrams/burnmint-pool-anatomy.svg @@ -0,0 +1,102 @@ +

EXTERNAL ACCOUNTS

PROGRAM ACCOUNTS

BURN-MINT TOKEN POOL PROGRAM

Token Infrastructure

Option 1: Direct mint authority

Option 2: Multisig mint authority

Program Logic
• Burns tokens on lock
• Mints tokens on release
• Requires mint authority control

Global Config PDA
Seeds: config

Pool State PDA
Seeds: pool_state_seed, mint

Pool Signer PDA
Seeds: pool_signer_seed, mint

Chain Config PDAs
Seeds: chain_config_seed, chain_selector, mint

Token Mint Account
Owner: SPL Token OR Token-2022

Pool Token Account
ATA: pool_signer + mint + token_program

SPL Token Multisig Account
• 1-of-N signatures required
• Pool Signer PDA is one of N signers

\ No newline at end of file diff --git a/public/images/ccip/cct/cct-svm-diagrams/cct-svm-accepting-administrator-role.png b/public/images/ccip/cct/cct-svm-diagrams/cct-svm-accepting-administrator-role.png deleted file mode 100644 index 6cd6505847eb4f7dd9e4bea3f0b575feb3968ace..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 85839 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

=V1AE$H)L#8*H;UBvz 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%0A)yqAPHt&hRqE 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 G^!;Cs9DPv$ diff --git a/public/images/ccip/cct/cct-svm-diagrams/cct-svm-set-pool.png b/public/images/ccip/cct/cct-svm-diagrams/cct-svm-set-pool.png deleted file mode 100644 index 935aa799135424cbd570201432267aa0ed11c96c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 123202 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

+|l#1TL(Z>_|SaRSj|CPTzIK$NHAj*jH)a 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%0D5;+;z>9YRt;tv+ZMJR&9IlUorc0D2~r*4r1u=d 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 diff --git a/public/images/ccip/cct/cct-svm-diagrams/lockrelease-pool-anatomy.svg b/public/images/ccip/cct/cct-svm-diagrams/lockrelease-pool-anatomy.svg new file mode 100644 index 00000000000..f7642093e16 --- /dev/null +++ b/public/images/ccip/cct/cct-svm-diagrams/lockrelease-pool-anatomy.svg @@ -0,0 +1,102 @@ +

EXTERNAL ACCOUNTS

PROGRAM ACCOUNTS

LOCK-RELEASE TOKEN POOL PROGRAM

Rebalancer Liquidity

Token Infrastructure

Transfer only
No mint authority needed

Transfers tokens to/from
via provide/withdraw liquidity

Program Logic
• Locks tokens in pool
• Releases tokens from pool
• Manages liquidity

Global Config PDA
Seeds: config

Pool State PDA
Seeds: pool_state_seed, mint
Additional: rebalancer, can_accept_liquidity

Pool Signer PDA
Seeds: pool_signer_seed, mint

Chain Config PDAs
Seeds: chain_config_seed, chain_selector, mint

Token Mint Account
Owner: SPL Token OR Token-2022

Pool Token Account
ATA: pool_signer + mint + token_program
Holds locked tokens

Any token account the rebalancer
can authorize transfers for

\ No newline at end of file diff --git a/public/images/ccip/cct/cct-svm-diagrams/solana_accept_admin.svg b/public/images/ccip/cct/cct-svm-diagrams/solana_accept_admin.svg new file mode 100644 index 00000000000..086acab561b --- /dev/null +++ b/public/images/ccip/cct/cct-svm-diagrams/solana_accept_admin.svg @@ -0,0 +1 @@ +title%20Accepting%20the%20Administrator%20Role%20(accept_admin_role_token_admin_registry)%0Aparticipant%20%22Pending%20Administrator%22%20as%20PendingAdmin%0Aparticipantgroup%20%230847F7%20**%3Ccolor%3A%23white%3EChainlink%20Router%20Program%3C%2Fcolor%3E**%0A%20%20participant%20%22Router%22%20as%20Router%0A%20%20participant%20%22TokenAdminRegistry%20PDA%22%20as%20Registry%0Aend%0Aactivate%20PendingAdmin%20%230847F7%0APendingAdmin-%3ERouter%3A%20accept_admin_role_token_admin_registry()%0Aactivate%20Router%20%238AA6F9%0Anote%20right%20of%20Router%20%23F8FAFF%3A%201)%20Anchor%20enforces%20authority%3D%3Dtoken_admin_registry.pending_administrator%0Anote%20right%20of%20Router%20%23F8FAFF%3A%202)%20Validate%20TokenAdminRegistry%20version%20%26%20seeds%0Aalt%20Authorized%20%26%20Valid%0A%20%20note%20right%20of%20Router%20%23F8FAFF%3A%203)%20Update%20TokenAdminRegistry%20PDA%0A%20%20Router-%3ERegistry%3A%20%3Ccolor%3A%23white%3Eadministrator%20%3D%20pending_administrator%3C%2Fcolor%3E%0A%20%20activate%20Registry%20%238AA6F9%0A%20%20Registry--%3ERouter%3A%20%3Ccolor%3A%23white%3Esuccess%3C%2Fcolor%3E%0A%20%20deactivate%20Registry%0A%20%20%0A%20%20Router-%3ERegistry%3A%20%3Ccolor%3A%23white%3Epending_administrator%20%3D%20zero%20address%3C%2Fcolor%3E%0A%20%20activate%20Registry%20%238AA6F9%0A%20%20Registry--%3ERouter%3A%20%3Ccolor%3A%23white%3Esuccess%3C%2Fcolor%3E%0A%20%20deactivate%20Registry%0A%20%20%0A%20%20note%20right%20of%20Router%20%23F8FAFF%3A%204)%20Emit%20AdministratorTransferred%20event%0A%20%20Router--%3EPendingAdmin%3A%20(success)%0Aelse%20Unauthorized%0A%20%20Router--%3EPendingAdmin%3A%20(error)%20Caller%20not%20pending%20admin%0Aend%0Adeactivate%20Router%0Adeactivate%20PendingAdminChainlink Router ProgramPending AdministratorRouterTokenAdminRegistry PDAAccepting the Administrator Role (accept_admin_role_token_admin_registry)accept_admin_role_token_admin_registry()1) Anchor enforces authority==token_admin_registry.pending_administrator2) Validate TokenAdminRegistry version & seeds3) Update TokenAdminRegistry PDAadministrator = pending_administratorsuccesspending_administrator = zero addresssuccess4) Emit AdministratorTransferred event(success)(error) Caller not pending adminalt[Authorized & Valid][Unauthorized] \ No newline at end of file diff --git a/public/images/ccip/cct/cct-svm-diagrams/solana_cct_flowchart.svg b/public/images/ccip/cct/cct-svm-diagrams/solana_cct_flowchart.svg new file mode 100644 index 00000000000..bbf0fd03418 --- /dev/null +++ b/public/images/ccip/cct/cct-svm-diagrams/solana_cct_flowchart.svg @@ -0,0 +1,102 @@ +

Yes - Direct control or governance multisig

No - Mint authority not accessible

SPL Token Multisig

Self-Serve Mode

Self-Deployed Standard

Custom Pools

Yes

No

Yes

No - LockRelease

Direct Transfer

SPL Token Multisig Setup

Self-Service Available

Manual Assistance Required

Decision Point

Start Integration

Do you control mint authority?

Self-Service Registration Available

Manual Registration Required

Choose Deployment Approach

Can sign as mint authority?

Deploy Standard Pool Program

Build & Deploy Custom Pool

Initialize Pool from Existing Programs

Request Assisted Pool Initialization

Initialize Pool from Your Program

Initialize Pool from Your Program

Create ATA for Pool Signer PDA

BurnMint Pool?

Choose Mint Authority Transfer

Create Address Lookup Table

Transfer mint authority to Pool Signer PDA

Create SPL 1-of-N token multisig
with Pool Signer PDA as one signer

Transfer mint authority to SPL token multisig

Call set_pool Instruction

Configure Pool Settings

Cross-Chain Transfers Enabled

\ No newline at end of file diff --git a/public/images/ccip/cct/cct-svm-diagrams/solana_owner_override_pending_administrator.svg b/public/images/ccip/cct/cct-svm-diagrams/solana_owner_override_pending_administrator.svg new file mode 100644 index 00000000000..a7c2303d9db --- /dev/null +++ b/public/images/ccip/cct/cct-svm-diagrams/solana_owner_override_pending_administrator.svg @@ -0,0 +1 @@ +title%20Override%20Pending%20Administrator%20(owner_override_pending_administrator)%0Aparticipant%20%22Token%20Mint%20Authority%22%20as%20MintAuth%0Aparticipantgroup%20%230847F7%20**%3Ccolor%3A%23white%3EChainlink%20Router%20Program%3C%2Fcolor%3E**%0A%20%20participant%20%22Router%22%20as%20Router%0A%20%20participant%20%22TokenAdminRegistry%20PDA%22%20as%20Registry%0Aend%0Aactivate%20MintAuth%20%230847F7%0AMintAuth-%3ERouter%3A%20owner_override_pending_administrator(new_pending_admin)%0Aactivate%20Router%20%238AA6F9%0Anote%20right%20of%20Router%20%23F8FAFF%3A%20(1)%20Anchor%20enforces%20authority%20%3D%3D%20mint.mint_authority%0Aalt%20Authorized%20%26%20Valid%20State%0A%20%20note%20right%20of%20Router%20%23F8FAFF%3A%20(2)%20Validate%20administrator%20%3D%3D%20zero%20address%5Cn(no%20admin%20has%20been%20accepted%20yet)%0A%20%20Router-%3ERouter%3A%20%3Ccolor%3A%23white%3ECheck%20administrator%20empty%0A%20%20%0A%20%20note%20right%20of%20Router%20%23F8FAFF%3A%20(3)%20Override%20pending%20administrator%0A%20%20Router-%3ERegistry%3A%20%3Ccolor%3A%23white%3Epending_administrator%20%3D%20new_pending_admin%3C%2Fcolor%3E%0A%20%20activate%20Registry%20%238AA6F9%0A%20%20note%20right%20of%20Registry%20%23F8FAFF%3A%20Previous%20pending%20admin%5Cncan%20no%20longer%20accept%20the%20role%0A%20%20Registry--%3ERouter%3A%20%3Ccolor%3A%23white%3Esuccess%3C%2Fcolor%3E%0A%20%20deactivate%20Registry%0A%20%20Router--%3EMintAuth%3A%20(success)%0Aelse%20Unauthorized%0A%20%20Router--%3EMintAuth%3A%20(error)%20Caller%20not%20mint%20authority%0Aelse%20Invalid%20State%0A%20%20Router--%3EMintAuth%3A%20(error)%20Administrator%20already%20accepted%0Aend%0Adeactivate%20Router%0Adeactivate%20MintAuthChainlink Router ProgramToken Mint AuthorityRouterTokenAdminRegistry PDAOverride Pending Administrator (owner_override_pending_administrator)owner_override_pending_administrator(new_pending_admin)(1) Anchor enforces authority == mint.mint_authority(2) Validate administrator == zero address(no admin has been accepted yet)Check administrator empty(3) Override pending administratorpending_administrator = new_pending_adminPrevious pending admincan no longer accept the rolesuccess(success)(error) Caller not mint authority(error) Administrator already acceptedalt[Authorized & Valid State][Unauthorized][Invalid State] \ No newline at end of file diff --git a/public/images/ccip/cct/cct-svm-diagrams/solana_owner_propose.svg b/public/images/ccip/cct/cct-svm-diagrams/solana_owner_propose.svg new file mode 100644 index 00000000000..ad070c310b2 --- /dev/null +++ b/public/images/ccip/cct/cct-svm-diagrams/solana_owner_propose.svg @@ -0,0 +1 @@ +title%20Self-Service%20Registration%3A%20Propose%20Administrator%20(owner_propose_administrator)%0Aparticipant%20%22Token%20Administrator%22%20as%20TA%0Aparticipantgroup%20%230847F7%20**%3Ccolor%3A%23white%3EChainlink%20Router%20Program%3C%2Fcolor%3E**%0A%20%20participant%20%22Router%22%20as%20Router%0A%20%20participant%20%22TokenAdminRegistry%20PDA%22%20as%20Registry%0Aend%0Aactivate%20TA%20%230847F7%0ATA-%3ERouter%3A%20owner_propose_administrator(token_admin_registry_admin)%0Aactivate%20Router%20%238AA6F9%0Anote%20right%20of%20Router%20%23F8FAFF%3A%201)%20Anchor%20enforces%5Cn%20authority%20%3D%3D%20mint.mint_authority%0Anote%20right%20of%20Router%20%23F8FAFF%3A%202)%20Validate%20new_admin%20!%3D%20zero%20address%0Aalt%20Authorized%20%26%20Valid%0A%20%20note%20right%20of%20Router%20%23F8FAFF%3A%203)%20CREATE%20new%20TokenAdminRegistry%20PDA%0A%20%20Router-%3ERegistry%3A%20%3Ccolor%3A%23white%3Einitialize(version%3D2%2C%20administrator%3Dzero%2C%20pending_administrator%3DnewAdmin%2C%20mint%2C%20etc.)%3C%2Fcolor%3E%0A%20%20activate%20Registry%20%238AA6F9%0A%20%20Registry--%3ERouter%3A%20%3Ccolor%3A%23white%3Esuccess%3C%2Fcolor%3E%0A%20%20deactivate%20Registry%0A%20%20note%20right%20of%20Router%20%23F8FAFF%3A%204)%20Emit%20AdministratorTransferRequested%20event%0A%20%20Router--%3ETA%3A%20(success)%0Aelse%20Unauthorized%20or%20Invalid%0A%20%20Router--%3ETA%3A%20(error)%20Unauthorized%20or%20Zero%20Address%0Aend%0Adeactivate%20Router%0Adeactivate%20TAChainlink Router ProgramToken AdministratorRouterTokenAdminRegistry PDASelf-Service Registration: Propose Administrator (owner_propose_administrator)owner_propose_administrator(token_admin_registry_admin)1) Anchor enforces authority == mint.mint_authority2) Validate new_admin != zero address3) CREATE new TokenAdminRegistry PDAinitialize(version=2, administrator=zero, pending_administrator=newAdmin, mint, etc.)success4) Emit AdministratorTransferRequested event(success)(error) Unauthorized or Zero Addressalt[Authorized & Valid][Unauthorized or Invalid] \ No newline at end of file diff --git a/public/images/ccip/cct/cct-svm-diagrams/solana_set_pool.svg b/public/images/ccip/cct/cct-svm-diagrams/solana_set_pool.svg new file mode 100644 index 00000000000..ebd93d8e792 --- /dev/null +++ b/public/images/ccip/cct/cct-svm-diagrams/solana_set_pool.svg @@ -0,0 +1 @@ +title%20set_pool%20Instruction%0Aparticipant%20%22Token%20Administrator%22%20as%20Admin%0Aparticipantgroup%20%230847F7%20**%3Ccolor%3A%23white%3EChainlink%20Router%20Program%3C%2Fcolor%3E**%0A%20%20participant%20%22Router%22%20as%20Router%0A%20%20participant%20%22TokenAdminRegistry%20PDA%22%20as%20Registry%0Aend%0Aactivate%20Admin%20%230847F7%0A%0AAdmin-%3ERouter%3A%20set_pool(writable_indexes)%0Aactivate%20Router%20%238AA6F9%0Anote%20right%20of%20Router%20%23F8FAFF%3A%20(1)%20Anchor%20enforces%20authority%20%3D%3D%20registry.administrator%0Aalt%20Authorized%0A%20%20note%20right%20of%20Router%20%23F8FAFF%3A%20(2)%20Store%20new%20ALT%20address%20in%20registry%5CnReset%20old%20writable%20permissions%20%26%20apply%20new%20indexes%0A%20%20Router-%3ERegistry%3A%20%3Ccolor%3A%23white%3Eupdate%20lookup_table%20%26%20writable_indexes%3C%2Fcolor%3E%0A%20%20activate%20Registry%20%238AA6F9%0A%20%20Registry--%3ERouter%3A%20%3Ccolor%3A%23white%3Esuccess%3C%2Fcolor%3E%0A%20%20deactivate%20Registry%0A%20%20alt%20pool_lookuptable%20!%3D%20zero%20address%0A%20%20%20%20note%20right%20of%20Router%20%23F8FAFF%3A%20(3)%20Validate%20ALT%20has%20%E2%89%A59%20required%20accounts%5CnCheck%20token%20mint%20owner%20matches%20token%20program%5CnVerify%20all%20mandatory%20PDA%20addresses%20match%20expected%20values%0A%20%20%20%20Router-%3ERouter%3A%20%3Ccolor%3A%23white%3EValidate%20Look-Up%20Table%0A%20%20%20%20note%20right%20of%20Router%20%23F8FAFF%3A%20On%20success%2C%20token%20is%20enabled%20for%20CCIP%0A%20%20else%20Zero%20address%0A%20%20%20%20note%20right%20of%20Router%20%23F8FAFF%3A%20Delist%20this%20token%20from%20CCIP%0A%20%20end%0A%20%20note%20right%20of%20Router%20%23F8FAFF%3A%20(4)%20Emit%20PoolSet%20event%0A%20%20Router--%3EAdmin%3A%20(success)%0Aelse%20Unauthorized%0A%20%20Router--%3EAdmin%3A%20(error)%20Caller%20not%20current%20token%20admin%0Aend%0Adeactivate%20Router%0Adeactivate%20AdminChainlink Router ProgramToken AdministratorRouterTokenAdminRegistry PDAset_pool Instructionset_pool(writable_indexes)(1) Anchor enforces authority == registry.administrator(2) Store new ALT address in registryReset old writable permissions & apply new indexesupdate lookup_table & writable_indexessuccess(3) Validate ALT has ≥9 required accountsCheck token mint owner matches token programVerify all mandatory PDA addresses match expected valuesValidate Look-Up TableOn success, token is enabled for CCIPDelist this token from CCIP(4) Emit PoolSet event(success)(error) Caller not current token adminalt[Authorized][Unauthorized]alt[pool_lookuptable != zero address][Zero address] \ No newline at end of file diff --git a/public/images/ccip/cct/cct-svm-diagrams/solana_set_pool_supports_auto_derivation.svg b/public/images/ccip/cct/cct-svm-diagrams/solana_set_pool_supports_auto_derivation.svg new file mode 100644 index 00000000000..6b7f107a444 --- /dev/null +++ b/public/images/ccip/cct/cct-svm-diagrams/solana_set_pool_supports_auto_derivation.svg @@ -0,0 +1 @@ +title%20set_pool_supports_auto_derivation%20Instruction%0Aparticipant%20%22Token%20Administrator%22%20as%20Admin%0Aparticipantgroup%20%230847F7%20**%3Ccolor%3A%23white%3EChainlink%20Router%20Program%3C%2Fcolor%3E**%0A%20%20participant%20%22Router%22%20as%20Router%0A%20%20participant%20%22TokenAdminRegistry%20PDA%22%20as%20Registry%0Aend%0Aactivate%20Admin%20%230847F7%0AAdmin-%3ERouter%3A%20set_pool_supports_auto_derivation(mint%2C%20supports_auto_derivation)%0Aactivate%20Router%20%238AA6F9%0Anote%20right%20of%20Router%20%23F8FAFF%3A%20(1)%20Anchor%20enforces%20authority%20%3D%3D%20registry.administrator%0Aalt%20Authorized%0A%20%20note%20right%20of%20Router%20%23F8FAFF%3A%20(2)%20Update%20auto-derivation%20support%20flag%0A%20%20Router-%3ERegistry%3A%20%3Ccolor%3A%23white%3Esupports_auto_derivation%20%3D%20new_value%3C%2Fcolor%3E%0A%20%20activate%20Registry%20%238AA6F9%0A%20%20note%20right%20of%20Registry%20%23F8FAFF%3A%20Flag%20determines%20how%20account%5Cnvalidation%20works%20during%20transfers%0A%20%20Registry--%3ERouter%3A%20%3Ccolor%3A%23white%3Esuccess%3C%2Fcolor%3E%0A%20%20deactivate%20Registry%0A%20%20note%20right%20of%20Router%20%23F8FAFF%3A%20(3)%20Emit%20PoolEdited%20event%0A%20%20Router--%3EAdmin%3A%20(success)%0Aelse%20Unauthorized%0A%20%20Router--%3EAdmin%3A%20(error)%20Caller%20not%20current%20token%20admin%0Aend%0Adeactivate%20Router%0Adeactivate%20AdminChainlink Router ProgramToken AdministratorRouterTokenAdminRegistry PDAset_pool_supports_auto_derivation Instructionset_pool_supports_auto_derivation(mint, supports_auto_derivation)(1) Anchor enforces authority == registry.administrator(2) Update auto-derivation support flagsupports_auto_derivation = new_valueFlag determines how accountvalidation works during transferssuccess(3) Emit PoolEdited event(success)(error) Caller not current token adminalt[Authorized][Unauthorized] \ No newline at end of file diff --git a/public/images/ccip/cct/cct-svm-diagrams/solana_transfer_admin_role.svg b/public/images/ccip/cct/cct-svm-diagrams/solana_transfer_admin_role.svg new file mode 100644 index 00000000000..6c4ba11620b --- /dev/null +++ b/public/images/ccip/cct/cct-svm-diagrams/solana_transfer_admin_role.svg @@ -0,0 +1 @@ +title%20Transfer%20Administrator%20Role%20(transfer_admin_role_token_admin_registry)%0Aparticipant%20%22Current%20Administrator%22%20as%20CurrAdmin%0Aparticipantgroup%20%230847F7%20**%3Ccolor%3A%23white%3EChainlink%20Router%20Program%3C%2Fcolor%3E**%0A%20%20participant%20%22Router%22%20as%20Router%0A%20%20participant%20%22TokenAdminRegistry%20PDA%22%20as%20Registry%0Aend%0Aparticipant%20%22Proposed%20Administrator%22%20as%20PropAdmin%0Aactivate%20CurrAdmin%20%230847F7%0ACurrAdmin-%3ERouter%3A%20transfer_admin_role_token_admin_registry(newAdmin)%0Aactivate%20Router%20%238AA6F9%0Anote%20right%20of%20Router%20%23F8FAFF%3A%201)%20Anchor%20enforces%20caller%20%3D%3D%20registry.administrator%0Aalt%20Authorized%0A%20%20note%20right%20of%20Router%20%23F8FAFF%3A%202)%20Update%20pending_administrator%20%3D%20newAdmin%0A%20%20Router-%3ERegistry%3A%20%3Ccolor%3A%23white%3Epending_administrator%20%3D%20newAdmin%3C%2Fcolor%3E%0A%20%20activate%20Registry%20%238AA6F9%0A%20%20note%20right%20of%20Registry%20%23F8FAFF%3A%20administrator%20unchanged%2C%5Cnpending_admin%20%3D%20newAdmin%0A%20%20Registry--%3ERouter%3A%20%3Ccolor%3A%23white%3Esuccess%3C%2Fcolor%3E%0A%20%20deactivate%20Registry%0A%20%20%0A%20%20note%20right%20of%20Router%20%23F8FAFF%3A%203)%20Emit%20AdministratorTransferRequested%20event%0A%20%20Router--%3ECurrAdmin%3A%20(success)%0Aelse%20Unauthorized%0A%20%20Router--%3ECurrAdmin%3A%20(error)%20Caller%20not%20current%20admin%0Aend%0Adeactivate%20Router%0Adeactivate%20CurrAdmin%0Aactivate%20PropAdmin%20%230847F7%0APropAdmin-%3ERouter%3A%20%3Ccolor%3A%23white%3Eaccept_admin_role_token_admin_registry()%0Aactivate%20Router%20%238AA6F9%0Anote%20right%20of%20Router%20%23F8FAFF%3A%204)%20Anchor%20enforces%20caller%20%3D%3D%20pending_administrator%0Aalt%20Authorized%0A%20%20note%20right%20of%20Router%20%23F8FAFF%3A%205)%20Finalize%20admin%20transfer%0A%20%20Router-%3ERegistry%3A%20%3Ccolor%3A%23white%3Eadministrator%20%3D%20pending_administrator%3C%2Fcolor%3E%0A%20%20activate%20Registry%20%238AA6F9%0A%20%20Registry--%3ERouter%3A%20%3Ccolor%3A%23white%3Esuccess%3C%2Fcolor%3E%0A%20%20deactivate%20Registry%0A%20%20%0A%20%20Router-%3ERegistry%3A%20%3Ccolor%3A%23white%3Epending_administrator%20%3D%20zero%20address%3C%2Fcolor%3E%0A%20%20activate%20Registry%20%238AA6F9%0A%20%20Registry--%3ERouter%3A%20%3Ccolor%3A%23white%3Esuccess%3C%2Fcolor%3E%0A%20%20deactivate%20Registry%0A%20%20%0A%20%20note%20right%20of%20Router%20%23F8FAFF%3A%206)%20Emit%20AdministratorTransferred%20event%0A%20%20Router--%3EPropAdmin%3A%20%3Ccolor%3A%23white%3E(success)%0Aelse%20Unauthorized%0A%20%20Router--%3EPropAdmin%3A%20%3Ccolor%3A%23white%3E(error)%20Caller%20not%20pending%20admin%0Aend%0Adeactivate%20Router%0Adeactivate%20PropAdminChainlink Router ProgramCurrent AdministratorRouterTokenAdminRegistry PDAProposed AdministratorTransfer Administrator Role (transfer_admin_role_token_admin_registry)transfer_admin_role_token_admin_registry(newAdmin)1) Anchor enforces caller == registry.administrator2) Update pending_administrator = newAdminpending_administrator = newAdminadministrator unchanged,pending_admin = newAdminsuccess3) Emit AdministratorTransferRequested event(success)(error) Caller not current adminaccept_admin_role_token_admin_registry()4) Anchor enforces caller == pending_administrator5) Finalize admin transferadministrator = pending_administratorsuccesspending_administrator = zero addresssuccess6) Emit AdministratorTransferred event(success)(error) Caller not pending adminalt[Authorized][Unauthorized]alt[Authorized][Unauthorized] \ No newline at end of file diff --git a/src/config/sidebar.ts b/src/config/sidebar.ts index b86099f1240..f0c7fed6c60 100644 --- a/src/config/sidebar.ts +++ b/src/config/sidebar.ts @@ -1280,6 +1280,10 @@ export const SIDEBAR: Partial> = { title: "SVM", url: "ccip/concepts/cross-chain-token/svm", children: [ + { + title: "Architecture", + url: "ccip/concepts/cross-chain-token/svm/architecture", + }, { title: "Tokens", url: "ccip/concepts/cross-chain-token/svm/tokens", @@ -1289,8 +1293,8 @@ export const SIDEBAR: Partial> = { url: "ccip/concepts/cross-chain-token/svm/token-pools", }, { - title: "Architecture", - url: "ccip/concepts/cross-chain-token/svm/architecture", + title: "Integration Guide", + url: "ccip/concepts/cross-chain-token/svm/integration-guide", }, { title: "Registration and Administration", diff --git a/src/content/ccip/concepts/cross-chain-token/svm/architecture.mdx b/src/content/ccip/concepts/cross-chain-token/svm/architecture.mdx index d13cb8349b3..0c2c5b35b82 100644 --- a/src/content/ccip/concepts/cross-chain-token/svm/architecture.mdx +++ b/src/content/ccip/concepts/cross-chain-token/svm/architecture.mdx @@ -4,13 +4,12 @@ date: Last Modified title: "Cross-Chain Token Standard - Architecture (SVM)" metadata: description: "Understand the CCIP CCT architecture on SVM chains like Solana. Learn how Router, OffRamp, Token, and Token Pool programs interact for cross-chain transfers." + excerpt: "CCIP architecture, SVM, Solana, Router, OffRamp, TokenAdminRegistry, token pools, cross-chain transfers, PDAs, Address Lookup Table, BurnMint, LockRelease, token administrator, CPI, Associated Token Accounts, program interactions, token pool authorization, SPL tokens, Token-2022" --- import { Aside, ClickToZoom } from "@components" import CcipCommon from "@features/ccip/CcipCommon.astro" - - The Cross-Chain Token (CCT) architecture offers a streamlined, self-service approach to enabling cross-chain operations to any token. The CCT standard is token logic agnostic, meaning token developers can deploy pre-audited token pool contracts to turn any SPL-compatible token into a CCT or deploy their own custom token pool contracts for bespoke token use cases. Importantly, CCTs do not require token developers to inherit any CCIP-specific code within their token's smart contract. The CCT standard leverages the Chainlink Cross-Chain Interoperability Protocol (CCIP) for cross-chain transfers and allows token developers to configure, manage, and transfer tokens across multiple blockchains. @@ -33,67 +32,126 @@ The architecture diagrams below provide an overview of how CCT fits within the C The CCIP architecture for SVM-based blockchains (e.g., Solana) is described on this page, where we focus specifically on cross-chain token management. +## Architecture + +This document explains the four key components of CCIP's Cross-Chain Token architecture on SVM: + +1. **Token**: SPL token requirements and registration for CCIP integration +1. **Token Pool**: Self-contained programs that execute cross-chain token operations +1. **Router**: Central coordinator for token administration and outbound transfers +1. **OffRamp**: Handler for inbound cross-chain token reception and release + +Each component builds on the previous, forming a secure, integrated system for cross-chain token transfers. The sections below are organized in dependency order - understanding each component provides the foundation for understanding how they work together in the complete architecture. + +## Token + +In the Cross-Chain Token (CCT) architecture, the token is an SPL Mint managed by either the standard SPL Token program or Token-2022 (Token Extensions). To enable cross-chain transfers, every token requires: + +1. **Registration**: Establishes a [token administrator](/ccip/concepts/cross-chain-token/overview#token-administrator) role and creates the TokenAdminRegistry [PDA](https://solana.com/docs/core/pda) that governs CCIP integration +1. **Pool-Specific Requirements**: Token requirements vary by chosen pool type: + - **BurnMint pools**: Must support `mint_to` and `burn` instructions; mint authority must be transferable to the pool + - **LockRelease pools**: Must support `transfer_checked` instruction; no mint authority requirements +1. **Compatibility**: Must support standard token interfaces including [Associated Token Accounts](https://spl.solana.com/associated-token-account) and provide decimal precision + +For detailed compatibility requirements and pool type selection guidance, see [Tokens documentation](/ccip/concepts/cross-chain-token/svm/tokens). For the complete registration process and administrator role management, see [Registration & Administration](/ccip/concepts/cross-chain-token/svm/registration-administration). + +## Token Pool + +A Token Pool is a self-contained program responsible for executing cross-chain token transfers for a specific token. Each token must have exactly one pool per blockchain, deployed using one of three approaches: self-serve mode (recommended), self-deployed standard pools, or custom pools. + +

+ +**Cross-Chain Token Operations:** + +- **Source Chain Operations** (called by Router during `ccip_send`): + + - **BurnMint pools**: Transfer tokens from sender's [ATA](https://spl.solana.com/associated-token-account) to pool's ATA, then burn from pool's ATA + - **LockRelease pools**: Lock tokens by transferring from sender's ATA to pool's [ATA](https://spl.solana.com/associated-token-account) + +- **Destination Chain Operations** (called by OffRamp during `execute`): + - **BurnMint pools**: Mint tokens directly to receiver's [ATA](https://spl.solana.com/associated-token-account) + - **LockRelease pools**: Release tokens by transferring from pool's [ATA](https://spl.solana.com/associated-token-account) to receiver's ATA + +For comprehensive implementation details, deployment approaches, and technical requirements, see [Token Pools documentation](/ccip/concepts/cross-chain-token/svm/token-pools). + ## Router The CCIP Router program is central to cross-chain token management. It has two flows: 1. **Token Administration** - - **TokenAdminRegistry (one PDA per mint):** Stores the designated CCIP token administrator public key for a specific token mint (distinct from the SPL token's own mint authority) and references the token's pool address lookup table (ALT). - - **Token Pool Address Lookup Table:** A Solana address lookup table that precisely defines the set of account addresses (including pool configuration PDAs, pool signer PDAs, and other required accounts) that are authorized for cross-chain operations with this token. + - **TokenAdminRegistry (one [PDA](https://solana.com/docs/core/pda) per mint):** Stores the designated CCIP [token administrator](/ccip/concepts/cross-chain-token/overview#token-administrator) public key for a specific token mint (distinct from the SPL token's own mint authority) and references the token's pool [address lookup table](https://docs.solana.com/developing/lookup-tables) (ALT). The PDA is derived using seeds `[seed::TOKEN_ADMIN_REGISTRY, mint.key().as_ref()]`. This registry is created during token registration (see [Token section](#token)) and governs all subsequent CCIP operations for that token. + - **Token Pool Address Lookup Table:** A Solana [address lookup table](https://docs.solana.com/developing/lookup-tables) that precisely defines the set of account addresses (including pool configuration [PDAs](https://solana.com/docs/core/pda), pool signer PDAs, and other required accounts) that are authorized for cross-chain operations with this token. The ALT contains a minimum of 9 required accounts in a specific order. - **Administrator Methods:** The token administrator can register or update cross-chain support for their mint through a sequence of instructions: + 1. `owner_propose_administrator`: Initiated by the mint authority to designate a token administrator. 1. `accept_admin_role_token_admin_registry`: Confirmation by the proposed administrator to accept the role. - 1. `set_pool`: Links the token to a specific token pool configuration via an address lookup table. - - **Pool configuration:** The TokenAdminRegistry maps each mint to exactly one token pool configuration. This ensures that during cross-chain transfers, only the authorized token pool implementation can interact with the token. + 1. `set_pool`: Links the token to a specific token pool configuration via an address lookup table, including writable account indexes for proper permission management. + + For detailed step-by-step procedures, sequence diagrams, and complete registration workflows, see [Registration & Administration](/ccip/concepts/cross-chain-token/svm/registration-administration). + + - **Pool configuration:** The TokenAdminRegistry maps each mint to exactly one token pool configuration through the ALT. This ensures that during cross-chain transfers, only the authorized token pool implementation can interact with the token. The registry also includes a `supports_auto_derivation` flag for enhanced account derivation capabilities. + - **Security Architecture:** The one-to-one mapping between tokens and pools provides critical security guarantees: + - **Single Authorized Pool:** Each token mint can only have one authorized pool configuration, preventing unauthorized token handling + - **Atomic Pool Updates:** Changing pool configurations requires updating the entire ALT reference, ensuring consistent state + - **Access Control:** Only the registry administrator can modify pool assignments, maintaining strict governance + - **Enhanced Account Derivation:** When `supports_auto_derivation` is enabled, token pools can dynamically derive additional accounts during cross-chain operations. This allows pools to handle complex transfer scenarios with varying account requirements while maintaining security through the registry's controlled environment. 1. **Lock or Burn Flow (when sending tokens cross-chain)** - `ccip_send` entrypoint: When a CCIP sender initiates a cross-chain token transfer, they invoke the `ccip_send` instruction on the Router, providing the token mint, amount, destination chain, receiver address, and other transaction parameters. - - **Validation Against Registry:** The sender must provide the token pool account addresses as part of the transaction. The Router validates these accounts by checking them against the addresses stored in the address lookup table (ALT) referenced by the mint's TokenAdminRegistry PDA. - - **CPI to `lock_or_burn_tokens`:** After validation, the Router executes a CPI call to the token pool's `lock_or_burn_tokens` instruction, passing the appropriate context for the token pool to either lock tokens in its Associated Token Account (ATA) or burn them from circulation, depending on the pool implementation. + - **Multi-step Validation:** The Router performs comprehensive validation: + - Verifies the destination chain is not cursed (via RMN Remote CPI) + - Checks sender authorization against allow-list if enabled + - Validates token amounts are non-zero + - Ensures proper account relationships and permissions + - **Registry Validation:** The sender must provide the token pool account addresses as part of the transaction. The Router validates these accounts by checking them against the addresses stored in the address lookup table (ALT) referenced by the mint's TokenAdminRegistry PDA, including proper writable permissions. + - **Fee Processing:** Before token interaction, the Router handles fee collection either in native SOL (with wrapping to WSOL) or supported fee SPL tokens through the fee quoter program. + - **[CPI](https://docs.solana.com/developing/programming-model/calling-between-programs) to `lock_or_burn_tokens`:** After validation, the Router executes a CPI call to the token pool's `lock_or_burn_tokens` instruction, passing the appropriate context including nonce information and destination chain details for the token pool to either lock tokens in its [Associated Token Account](https://spl.solana.com/associated-token-account) (ATA) or burn them from circulation, depending on the pool implementation (see [Token Pool section](#token-pool) for operation details). ## OffRamp -1. **Verification and Token Pool Validation** +The CCIP OffRamp program handles cross-chain token reception and release on the destination chain. This section focuses specifically on the **execute phase**. For the complete OffRamp functionality including commit phase and general message processing, see [OffRamp Components](/ccip/concepts/architecture/onchain/svm/components#offramp). - On the destination blockchain, the OffRamp program receives validated CCIP Messages containing information about which tokens to transfer, the intended receiver, and the source chain details. Before finalizing the transfer, the OffRamp performs a series of validations: +During the execute phase, when processing messages containing token transfers, the OffRamp performs comprehensive token-specific validations and operations. - - It checks the TokenAdminRegistry PDA (owned by the Router) to confirm that the provided token pool accounts are the authorized ones for that token mint. - - It validates that the address lookup table and TokenAdminRegistry PDAs match the mint's registry record to ensure interaction with the correct token pool program. - - It verifies its own authorization to call the token pool by checking a special PDA, which is derived from the `allowed_offramp` seed, source chain selector, and offramp program ID. This PDA must exist and be owned by the Router, preventing unauthorized offramps from minting or releasing tokens. +1. **Token Pool Authorization Validation** -1. **Direct CPI to `release_or_mint_tokens`** + Before releasing or minting tokens, the OffRamp validates its authorization to interact with token pools: - Once all validations are successful, the OffRamp makes a CPI call to the token pool program, involving the `release_or_mint_tokens` instruction. - For this CPI, the Offramp uses a special PDA signer derived using the `external_token_pools_signer` seed, which the token pool recognizes as an authorized caller. + - **Router Authorization Check**: Verifies a special [PDA](https://solana.com/docs/core/pda) exists, derived using seeds `[seed::ALLOWED_OFFRAMP, source_chain_selector.to_le_bytes().as_ref(), offramp.key().as_ref()]` with the Router as the program ID. This PDA must be owned by the Router, ensuring only authorized OffRamps can trigger token operations. + - **TokenAdminRegistry Validation**: Checks the TokenAdminRegistry [PDA](https://solana.com/docs/core/pda) (owned by the Router) to confirm the provided token pool accounts match the authorized configuration for the token mint. + - **[Address Lookup Table](https://docs.solana.com/developing/lookup-tables) Verification**: Validates that the address lookup table and TokenAdminRegistry PDAs correspond to the mint's registry record, ensuring interaction with the correct token pool program. -## Token +1. **Token Pool Operations** -On Solana, the token to be transferred across blockchains is an SPL Mint managed by one of the standard Solana token programs, either the original SPL Token or the newer Token-2022. -To learn more , read the [Tokens compatibility requirements](/ccip/concepts/cross-chain-token/svm/tokens#compatibility). + Once authorization is confirmed, the OffRamp executes token operations: -## Token Pool + - **[CPI](https://docs.solana.com/developing/programming-model/calling-between-programs) to `release_or_mint_tokens`**: Makes a cross-program invocation to the token pool's release or mint instruction, passing the validated cross-chain token transfer details. + - **Authorization Signer**: Uses the `external_token_pools_signer` [PDA](https://solana.com/docs/core/pda) as the CPI signer, derived using seeds `[seed::EXTERNAL_TOKEN_POOLS_SIGNER, pool_program.key().as_ref()]` with the OffRamp as the program ID. Token pools recognize this as an authorized caller from the OffRamp. + - **Token Balance Verification**: Validates that the recipient's [Associated Token Account](https://spl.solana.com/associated-token-account) receives the correct amount of tokens as specified by the pool's response. -A Token Pool is a self-contained program responsible for executing cross-chain token transfers for a specific token. +1. **Cross-Chain Token Operations** - + The OffRamp handles different token pool types based on their configuration: + + - **BurnMint token pools**: Mint new tokens directly to the recipient's [ATA](https://spl.solana.com/associated-token-account) + - **LockRelease token pools**: Transfer (release) tokens from the pool's [ATA](https://spl.solana.com/associated-token-account) to the recipient's ATA + +The OffRamp ensures secure token operations by leveraging the same TokenAdminRegistry and address lookup table system established by the Router (see [Token section](#token)), maintaining the one-to-one mapping between tokens and their authorized pools while providing the necessary authorization for cross-chain token reception. + +## Component Integration -**How Token Pools Work** +The four components work together to enable secure cross-chain transfers: -- Separate Token Pools Per Blockchain - - You deploy a corresponding pool program for each blockchain that interacts with your token, then configure remote chains information to enable cross-chain transfers. -- Token Pool Operations - - When acting as a source chain pool (called by the Router in `ccip_send`): - - BurnMint token pool: Transfers tokens from the sender's ATA to the pool's ATA, then burns them from the pool's ATA. - - LockRelease token pool: Locks tokens by transferring them from the sender ATA to the pool's ATA. - - When acting as a destination chain pool (called by the OffRamp): - - BurnMint token pool: Mints tokens to a receiver's ATA. - - LockRelease token pool: Transfers (releases) tokens from the pool's ATA to the receiver's ATA. +1. **Token Registration**: Creates the TokenAdminRegistry [PDA](https://solana.com/docs/core/pda) that authorizes all subsequent operations and links to the designated token pool +1. **Token Pool Deployment**: Provides the execution logic for transfers, with the specific pool type (BurnMint or LockRelease) determined by the token's requirements and operational preferences +1. **Router Coordination**: Manages token administration through the TokenAdminRegistry and validates outbound transfers by ensuring proper authorization against the pool's [Address Lookup Table](https://docs.solana.com/developing/lookup-tables) +1. **OffRamp Execution**: Validates authorization against the same TokenAdminRegistry system and executes inbound transfers through [CPI](https://docs.solana.com/developing/programming-model/calling-between-programs) calls to the authorized token pool -For an in-depth overview of token pool programs, see the [Token Pools](/ccip/concepts/cross-chain-token/svm/token-pools) page. +This architecture ensures that every cross-chain token operation is governed by the initial registration decision, maintaining security and consistency across the entire transfer lifecycle. The one-to-one mapping between tokens and pools, established during registration and enforced by all components, provides the foundation for secure cross-chain token transfers. diff --git a/src/content/ccip/concepts/cross-chain-token/svm/index.mdx b/src/content/ccip/concepts/cross-chain-token/svm/index.mdx index 927c3eacc6c..b91896bf624 100644 --- a/src/content/ccip/concepts/cross-chain-token/svm/index.mdx +++ b/src/content/ccip/concepts/cross-chain-token/svm/index.mdx @@ -16,5 +16,6 @@ This section provides detailed guidance for integrating tokens with Chainlink CC - **[Architecture](/ccip/concepts/cross-chain-token/svm/architecture)**: Understand the specific architecture for CCTs on SVM chains. - **[Tokens](/ccip/concepts/cross-chain-token/svm/tokens)**: Learn about the requirements and compatibility for your SPL tokens. - **[Token Pools](/ccip/concepts/cross-chain-token/svm/token-pools)**: Explore the different types of token pool programs and how to use them. +- **[Integration Guide](/ccip/concepts/cross-chain-token/svm/integration-guide)**: Determine your integration path based on mint authority control and deployment preferences. Includes decision tree and touch points with Chainlink governance. - **[Registration and Administration](/ccip/concepts/cross-chain-token/svm/registration-administration)**: Details on registering your token with CCIP and managing administrative roles on SVM. - **[Upgradability](/ccip/concepts/cross-chain-token/svm/upgradability)**: Information on upgrading token pool programs. diff --git a/src/content/ccip/concepts/cross-chain-token/svm/integration-guide.mdx b/src/content/ccip/concepts/cross-chain-token/svm/integration-guide.mdx new file mode 100644 index 00000000000..12fbddcd4ad --- /dev/null +++ b/src/content/ccip/concepts/cross-chain-token/svm/integration-guide.mdx @@ -0,0 +1,219 @@ +--- +section: ccip +date: Last Modified +title: "Cross-Chain Token Standard - Integration Guide (SVM)" +metadata: + description: "Step-by-step integration guide for CCIP Cross-Chain Tokens on SVM chains like Solana. Determine your integration path based on mint authority control, choose deployment approaches, and understand when self-service vs Chainlink assistance is required." + excerpt: "CCIP integration guide, SVM, Solana, mint authority, self-service, Chainlink assistance, deployment approaches, token registration, pool initialization, SPL token multisig, governance multisig, contact form, decision tree, integration path" +--- + +import { Aside, ClickToZoom } from "@components" +import CcipCommon from "@features/ccip/CcipCommon.astro" + +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](/ccip/concepts/cross-chain-token/svm/tokens#compatibility) +- **Decimal Planning**: Plan [decimal configuration](/ccip/concepts/cross-chain-token/svm/tokens#decimal-planning) across all target blockchains +- **Pool Type Selection**: Choose the appropriate token pool type for your use case: + + - **[BurnMint Pools](/ccip/concepts/cross-chain-token/svm/token-pools#burnmint-token-pool)**: 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](/ccip/concepts/cross-chain-token/svm/token-pools#lockrelease-token-pool)**: 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](/ccip/concepts/cross-chain-token/svm/token-pools#token-handling-mechanisms). + +## Integration Overview + +CCIP Cross-Chain Token (CCT) integration involves two key phases: + +1. **Token Registration**: Establishing a CCIP token administrator role +1. **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](/ccip/concepts/cross-chain-token/svm/token-pools#deployment-approaches)**. + +## 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](/ccip/concepts/cross-chain-token/svm/registration-administration#self-service-registration-flow) and [accept_admin_role_token_admin_registry](/ccip/concepts/cross-chain-token/svm/registration-administration#accepting-the-administrator-role) instructions (propose + accept) +- **Immediate control**: Complete registration without external assistance +- **Administrator flexibility**: Choose any address as the CCIP token administrator + +**Pool Deployment Options:** + +1. **[Self-Serve Mode](/ccip/concepts/cross-chain-token/svm/token-pools#approach-1-self-serve-mode-recommended) (Recommended)** + + - Use Chainlink-deployed standard pool programs + - Initialize your pool using [initialize](/ccip/concepts/cross-chain-token/svm/registration-administration#pool-initialization) instruction + - Automatic governance-controlled upgrades + - Lowest operational overhead + +2. **[Self-Deployed Standard Pools](/ccip/concepts/cross-chain-token/svm/token-pools#approach-2-self-deployed-standard-pools)** + + - Deploy standard pool programs yourself + - Control upgrade authority and timing + - Initialize your own pools + +3. **[Custom Token Pools](/ccip/concepts/cross-chain-token/svm/token-pools#approach-3-custom-token-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](https://chain.link/ccip-contact?v=Tokens:%20Token%20admin%20registration) +- **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](https://chain.link/ccip-contact?v=Tokens:%20Token%20admin%20registration) 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](/ccip/concepts/cross-chain-token/svm/registration-administration#self-service-registration-flow) +- **Assisted path**: Submit [registration request](https://chain.link/ccip-contact?v=Tokens:%20Token%20admin%20registration) + +### 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](/ccip/concepts/cross-chain-token/svm/registration-administration#pool-initialization) 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](https://chain.link/ccip-contact?v=Tokens:%20Token%20admin%20registration) for assisted initialization + +- **Self-deployed**: Deploy standard pool programs yourself, then initialize pool from your deployed program + +- **Custom**: Implement and deploy custom pool following [technical requirements](/ccip/concepts/cross-chain-token/svm/token-pools#custom-token-pools), then initialize pool from your deployed program + +### Step 3: Create Associated Token Account + +- Create the [Associated Token Account (ATA)](https://www.solana-program.com/docs/associated-token-account) 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](https://spl.solana.com/token#multisig-usage) with Pool Signer PDA as one signer (flexible, multiple authorized minters) + +See [Mint Authority Management](/ccip/concepts/cross-chain-token/svm/token-pools#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](/ccip/concepts/cross-chain-token/svm/registration-administration#token-pool-configuration-pool-side) for account list + +### Step 6: Link Pool to Token Registry + +- Call [set_pool](/ccip/concepts/cross-chain-token/svm/registration-administration#setting-the-token-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](/ccip/concepts/cross-chain-token/svm/registration-administration#remote-chain-configuration) +- Set up [rate limits and security settings](/ccip/concepts/cross-chain-token/svm/registration-administration#rate-limits-and-security) +- **For LockRelease pools**: Configure [liquidity management](/ccip/concepts/cross-chain-token/svm/registration-administration#liquidity-management-lockrelease-pools-only) + +## Next Steps + +After determining your integration path: + +1. **Review Detailed Documentation**: + + - [Architecture](/ccip/concepts/cross-chain-token/svm/architecture): Understand component interactions + - [Tokens](/ccip/concepts/cross-chain-token/svm/tokens): Token requirements and compatibility + - [Token Pools](/ccip/concepts/cross-chain-token/svm/token-pools): Pool implementation details + - [Registration & Administration](/ccip/concepts/cross-chain-token/svm/registration-administration): Complete registration and configuration procedures + +1. **For Assisted Paths**: Submit your [registration request](https://chain.link/ccip-contact?v=Tokens:%20Token%20admin%20registration) with detailed information about your token and requirements + +1. **For Self-Service Paths**: Begin with token registration following the appropriate workflow for your chosen deployment approach diff --git a/src/content/ccip/concepts/cross-chain-token/svm/registration-administration.mdx b/src/content/ccip/concepts/cross-chain-token/svm/registration-administration.mdx index 71c45ec623d..9636987f125 100644 --- a/src/content/ccip/concepts/cross-chain-token/svm/registration-administration.mdx +++ b/src/content/ccip/concepts/cross-chain-token/svm/registration-administration.mdx @@ -3,52 +3,109 @@ section: ccip date: Last Modified title: "Cross-Chain Token Standard - Registration & Administration (SVM)" metadata: - description: "Register and administer SPL tokens for CCIP on SVM chains. Learn the two-step process, role transfers, setting token pools, and configuring pool parameters." + description: "Complete guide to registering and administering SPL tokens for CCIP on SVM chains like Solana. Covers token administrator roles, self-service registration with mint authority, Router vs Pool operations, remote chain configuration, rate limiting, allowlists, and liquidity management for cross-chain token transfers." + excerpt: "CCIP, SPL tokens, SVM, Solana, token administrator, registration, self-service, mint authority, Router program, Token Pool, TokenAdminRegistry, PDA, cross-chain transfers, administrator roles, pool configuration, remote chains, rate limiting, allowlists, liquidity management, rebalancer, Associated Token Accounts, Address Lookup Tables, auto-derivation, owner_propose_administrator, set_pool, init_chain_remote_config, provide_liquidity, withdraw_liquidity" --- -import { ClickToZoom } from "@components" +import { Aside, ClickToZoom } from "@components" import CcipCommon from "@features/ccip/CcipCommon.astro" - +When token administrators want to register their SPL token for Cross‐Chain Token (CCT) operations, they interact with both the Router program and Token Pool programs. This guide covers both token registration/administration (Router side) and token pool configuration (Pool side). -When token administrators want to register their SPL token for Cross‐Chain Token (CCT) operations, they interact with the Router program. +## Token Registration & Administration (Router Side) -Two key steps ensure a secure assignment of the administrator role: +This section covers all operations performed through the Router program to manage token administrator roles and basic token configuration. -1. The intended administrator is proposed (i.e., placed in a pending state). -1. That pending administrator must explicitly _accept_ the role. +### Router Access Control for Token Administration -## Self-Service Registration Flow +Understanding who can call which Router instructions is critical for secure token administration. This table shows the authorization model for all token admin registry instructions: + +| Instruction | Mint Authority | Router Upgrade Authority | Current Token Admin | Pending Token Admin | +| ------------------------------------------ | :------------: | :----------------------: | :-----------------: | :-----------------: | +| `owner_propose_administrator` | ✅ | ❌ | ❌ | ❌ | +| `owner_override_pending_administrator` | ✅ | ❌ | ❌ | ❌ | +| `ccip_admin_propose_administrator` | ❌ | ✅ | ❌ | ❌ | +| `accept_admin_role_token_admin_registry` | ❌ | ❌ | ❌ | ✅ | +| `transfer_admin_role_token_admin_registry` | ❌ | ❌ | ✅ | ❌ | +| `set_pool` | ❌ | ❌ | ✅ | ❌ | +| `set_pool_supports_auto_derivation` | ❌ | ❌ | ✅ | ❌ | + +**Notes:** + +- **Mint Authority**: The SPL token's `mint_authority` holder +- **Router Upgrade Authority**: The Router program's upgrade authority +- **Current Token Admin**: The active CCIP [token administrator](/ccip/concepts/cross-chain-token/overview#token-administrator) +- **Pending Token Admin**: [Token administrator](/ccip/concepts/cross-chain-token/overview#token-administrator) proposed but not yet accepted + +**Focus on Self-Service Registration:** The following sections focus on the **self-service registration flow** where you control your token's mint authority. While the Router also supports `ccip_admin_propose_administrator` for cases where mint authority is not accessible, we detail the self-service approach as it's the primary registration method for most token developers. + +### Self-Service Registration Flow If your SPL token supports an automatic way to determine an admin using onchain verifiable data (e.g., you hold the mint authority), you can complete self-registration in a permissionless manner by calling the Router's `owner_propose_administrator` instruction: 1. **Admin Initiates Registration:** The token admin calls the Router's `owner_propose_administrator` instruction, passing in the mint and the proposed administrator's public key. This instruction initializes a `TokenAdminRegistry` PDA for this mint. + 1. **Determine Administrator:** The Router ensures that the caller is the SPL token's mint authority, confirming they have the right to set a CCIP admin. -1. **Propose Administrator:** The Router sets the proposed administrator as the pending administrator. The token admin is not fully recognized yet; they remain `pending`. The `TokenAdminRegistry` now stores this user as `pendingAdmin`. The next step is to accept the role. -## Non-Self-Service Registration Flow +1. **Propose Administrator:** The Router sets the proposed administrator as the pending administrator. The token admin is not fully recognized yet; they remain `pending`. The `TokenAdminRegistry` now stores this user as `pending_administrator`. The next step is to accept the role. + +**Self-Service Registration Requirements:** + +- **Caller Authorization**: Only the SPL token's `mint_authority` can call `owner_propose_administrator` +- **Registry State**: TokenAdminRegistry PDA must not already exist for this mint +- **Result**: Creates new TokenAdminRegistry PDA with proposed administrator in pending state + +### Non-Self-Service Registration Flow -For token programs that do not have a standard way to identify an administrator using onchain verifiable data (e.g., no direct mint authority check), the token developer can manually initiate the registration by submitting a request [here](https://chain.link/ccip-contact?v=Tokens:%20Token%20admin%20registration). + -## Interacting with the Registry +For token programs that do not have a standard way to identify an administrator using onchain verifiable data (e.g., no direct mint authority check), the token developer can manually initiate the registration by submitting a request above. -### Proposing the Administrator +### Administrator Role Management + +#### Proposing the Administrator The following sequence diagram illustrates the process of proposing the administrator. -### Accepting the Administrator Role +#### Overriding Pending Administrator + +If you need to change the pending administrator before they accept the role, you can use the `owner_override_pending_administrator` instruction. This is useful when you initially proposed the wrong administrator or need to update the pending administrator for other reasons. + +1. **Override Pending Administrator:** The mint authority calls the Router's `owner_override_pending_administrator` instruction, passing in the mint and the new proposed administrator's public key. + +1. **Validate Authority:** The Router ensures that the caller is the SPL token's mint authority and that no administrator has been accepted yet (the `administrator` field must be zero). + +1. **Update Pending Administrator:** The Router replaces the existing `pending_administrator` with the new proposed administrator. The previous pending administrator can no longer accept the role. + +**Override Requirements:** + +- **Caller Authorization**: Only the SPL token's `mint_authority` can call `owner_override_pending_administrator` +- **Registry State**: TokenAdminRegistry PDA must exist but have no accepted administrator yet (`administrator` field is zero) +- **Result**: Updates the `pending_administrator` field with the new proposed administrator + + + +#### Accepting the Administrator Role Once the administrator has been proposed and is pending, they must accept the role to complete the registration process. This step finalizes the administrator's assignment. 1. **Pending Administrator Calls `accept_admin_role_token_admin_registry`** - The pending admin invokes `accept_admin_role_token_admin_registry(mint)` on the Router program, specifying the mint for which they were proposed. + The pending admin invokes `accept_admin_role_token_admin_registry()` on the Router program, specifying the mint account in the transaction context. 1. **Finalize Registration** - The Router checks that the caller's public key matches the `pending_administrator` field in the `TokenAdminRegistry` PDA. @@ -57,29 +114,29 @@ Once the administrator has been proposed and is pending, they must accept the ro Below is the sequence diagram illustrating how the pending administrator interacts with the Router program to complete registration. -### Transfer Administrator Role +#### Transfer Administrator Role The `transfer_admin_role_token_admin_registry` instruction allows the current token administrator to transfer their role to a new administrator. This transfer process is secure and involves two steps, requiring the new admin to accept it explicitly before finalization. 1. **Initiate Role Transfer** - - The current admin calls `transfer_admin_role_token_admin_registry(mint, newAdmin)` on the Router, passing the SPL token mint and the new administrator's public key. - - The Router checks that the caller is the token's existing administrator. If so, it sets `pending_administrator = newAdmin` in the `TokenAdminRegistry` (PDA). + - The current admin calls `transfer_admin_role_token_admin_registry(new_admin)` on the Router, passing the new administrator's public key. + - The Router checks that the caller is the token's existing administrator. If so, it sets `pending_administrator = new_admin` in the `TokenAdminRegistry` (PDA). 1. **Pending Administrator** - The registry is now pending. The existing admin will still be active until the new admin accepts. 1. **Accept the Role** - - The new administrator must call `accept_admin_role_token_admin_registry(mint)` to finalize the transfer. + - The new administrator must call `accept_admin_role_token_admin_registry()` to finalize the transfer. - If `authority.key()` matches `pending_administrator`, the Router updates `administrator = pending_administrator`. Otherwise, it will fail. - Once accepted, the new administrator can set or modify the token pool. Below is a sequence diagram showing how the transfer is requested, followed by how the new admin must accept to complete the handover. @@ -103,57 +160,147 @@ On SVM-based blockchains (e.g., Solana), the `set_pool` instruction enables a to The sequence diagram below explains how the `set_pool` instruction updates the `TokenAdminRegistry` PDA and either enables or delists the token for cross-chain transfers. -### Configuring the Token Pool +### Configuring Pool Auto-Derivation + +The `set_pool_supports_auto_derivation` instruction allows a token administrator to configure whether their token pool supports automatic account derivation for cross-chain transfers. This setting affects how the CCIP Router validates and handles account lists during token transfer operations. + +**Auto-Derivation Capability:** When enabled (`supports_auto_derivation = true`), the token pool can dynamically derive additional accounts and lookup tables required for cross-chain operations by implementing `derive_accounts_lock_or_burn` and `derive_accounts_release_or_mint` functions. This provides flexibility for pools that need message-dependent or dynamically calculated account sets. + +**Account Validation Impact:** + +- **Auto-derivation enabled**: The Router validates only the static accounts present in the Address Lookup Table, allowing the pool to handle validation of additional dynamically-derived accounts. +- **Auto-derivation disabled**: The Router validates all accounts against the static Address Lookup Table, expecting a complete and fixed account set. + +**Administrative Control:** Only the current token administrator can modify this setting, ensuring that pool configuration changes are properly authorized. The function updates the `supports_auto_derivation` flag in the `TokenAdminRegistry` PDA and emits a `PoolEdited` event for transparency. + + + +## Token Pool Configuration (Pool Side) + +Once you have registered your token and set the token pool via the Router, you need to configure the specific pool parameters. These operations are performed directly on the Token Pool programs, not the Router. + + -The configuration of token pools includes adding new blockchains, setting remote pool addresses, and applying rate limits for cross-chain transfers. The following instructions are used for configuring token pools: +### Pool Initialization + +Before any other configuration can occur, you must initialize your token pool: + +1. **Initialize Token Pool** + + - **Instruction:** `initialize` + - **Use Case:** Create the pool state PDA for your specific mint. This is the first mandatory step that must be completed before any other pool configuration operations. + - **Authorization:** Program upgrade authority can always initialize pools. When self-serve is enabled (`self_served_allowed: true`), the token's mint authority can also initialize pools. + - **Requirements:** Pool owner must create the [Associated Token Account (ATA)](https://www.solana-program.com/docs/associated-token-account) for the Pool Signer PDA before pool operations can begin. + - Read the [API reference](/ccip/api-reference/svm) to learn more. + +### Remote Chain Configuration + +Configure your token pool for specific destination blockchains: 1. **Initialize a Remote Configuration** - **Instruction:** `init_chain_remote_config` - **Use Case:** Create a new onchain account (PDA derived from the chain selector and token pool program ID) holding configuration details for a specific remote blockchain (e.g., remote token address). + - **Authorization:** Pool Owner only - Read the [API reference](/ccip/api-reference/svm) to learn more. 1. **Edit an Existing Remote Configuration** - **Instruction:** `edit_chain_remote_config` - **Use Case:** Update the entire stored configuration for a remote chain (`RemoteConfig`), including the remote token address and decimals. + - **Authorization:** Pool Owner only - Read the [API reference](/ccip/api-reference/svm) to learn more. 1. **Add Remote Pool Address** - **Instruction:** `append_remote_pool_addresses` - - **Use Case:** Register one or more remote pool addresses for the same remote chain. This can happen when you deploy a new pool version on that blockchain but keep the old address functional until all in-flight messages are processed. Note: To remove a remote pool address, call `edit_chain_remote_config` with a new configuration without that address. + - **Use Case:** Register one or more remote pool addresses for the same remote chain. This can happen when you deploy a new pool version on that blockchain but keep the old address functional until all in-flight messages are processed. + - **Authorization:** Pool Owner only - Read the [API reference](/ccip/api-reference/svm) to learn more. -1. **Configure Rate Limits** +1. **Remove Remote Pool Address** - - **Instruction:** `set_chain_rate_limit` - - **Use Case:** Apply or modify the remote blockchain's inbound/outbound rate-limit configuration. This uses a token bucket algorithm in which you can configure the capacity (maximum tokens) and rate (tokens per second refill rate) for both inbound and outbound transfers. + - **Instruction:** `edit_chain_remote_config` + - **Use Case:** Remove one or more remote pool addresses from an existing remote chain configuration. Call this instruction with a new `RemoteConfig` that excludes the addresses you want to remove. + - **Authorization:** Pool Owner only - Read the [API reference](/ccip/api-reference/svm) to learn more. 1. **Remove Chain Config** - **Instruction:** `delete_chain_config` - **Use Case:** Remove the remote blockchain configuration PDA to stop supporting it permanently. + - **Authorization:** Pool Owner only - Read the [API reference](/ccip/api-reference/svm) to learn more. -1. **Liquidity Management (Lock/Release only)** +### Rate Limits and Security + +Configure transfer limits and access controls for your token pool: + +1. **Configure Rate Limits** - - **Instruction** - - `set_rebalancer`: Configure which public key is authorized to add (via `provide_liquidity`) or withdraw liquidity (via `withdraw_liquidity`) from the pool. - - `set_can_accept_liquidity`: Enable or disable whether the pool can accept incoming liquidity via the `provide_liquidity` instruction. - - **Use Case:** Lock/Release token pools require liquidity management to ensure sufficient tokens are available for releases. These settings control which wallet or multisig is authorized to withdraw or add liquidity to the pool. + - **Instruction:** `set_chain_rate_limit` + - **Use Case:** Apply or modify the remote blockchain's inbound/outbound rate-limit configuration. This uses a token bucket algorithm in which you can configure the capacity (maximum tokens) and rate (tokens per second refill rate) for both inbound and outbound transfers. + - **Authorization:** Pool Owner OR Rate Limit Admin - Read the [API reference](/ccip/api-reference/svm) to learn more. 1. **Optional Allowlist** - - **Instruction** - - `configure_allow_list`: Set `enabled = true` or `false` and optionally add new addresses. When the allowlist is enabled, only addresses that appear on it can initiate cross‐chain transfers. - - `remove_from_allow_list`: Remove specific addresses from the existing list. - - **Use case:** You can add or remove addresses if the pool has an allowlist. This provides an additional layer of access control for who can initiate cross-chain token transfers. + - **Instructions:** `configure_allow_list`, `remove_from_allow_list` + - **Use case:** You can add or remove addresses if the pool has an allowlist. When the allowlist is enabled, only addresses that appear on it can initiate cross‐chain transfers. This provides an additional layer of access control for who can initiate cross-chain token transfers. + - **Authorization:** Pool Owner only + - Read the [API reference](/ccip/api-reference/svm) to learn more. + +For detailed authorization requirements, see the access control tables for [BurnMint pools](/ccip/concepts/cross-chain-token/svm/token-pools#access-control) and [LockRelease pools](/ccip/concepts/cross-chain-token/svm/token-pools#access-control-1). + +### Liquidity Management (Lock/Release Pools Only) + +Configure liquidity providers and settings for Lock/Release token pools: + +#### Liquidity Configuration + +1. **Set Rebalancer** + + - **Instruction:** `set_rebalancer` + - **Use Case:** Configure which public key is authorized to add or withdraw liquidity from the pool. + - **Authorization:** Pool Owner only + - Read the [API reference](/ccip/api-reference/svm) to learn more. + +1. **Configure Liquidity Acceptance** + + - **Instruction:** `set_can_accept_liquidity` + - **Use Case:** Enable or disable whether the pool can accept incoming liquidity via the `provide_liquidity` instruction. + - **Authorization:** Pool Owner only - Read the [API reference](/ccip/api-reference/svm) to learn more. + +#### Liquidity Operations + +1. **Provide Liquidity** + + - **Instruction:** `provide_liquidity` + - **Use Case:** Add tokens to the pool's reserves to enable cross-chain releases. The rebalancer transfers tokens from their account to the pool's Associated Token Account. + - **Authorization:** Rebalancer only + - **Requirements:** Pool must have `can_accept_liquidity` enabled + - Read the [API reference](/ccip/api-reference/svm) to learn more. + +1. **Withdraw Liquidity** + + - **Instruction:** `withdraw_liquidity` + - **Use Case:** Remove tokens from the pool's reserves. Can be used to transfer liquidity between pools by setting the destination as another pool's rebalancer. + - **Authorization:** Rebalancer only + - **Requirements:** Pool must have `can_accept_liquidity` enabled + - Read the [API reference](/ccip/api-reference/svm) to learn more. + +**Note:** Lock/Release token pools require active liquidity management to ensure sufficient tokens are available for releases. Insufficient liquidity will cause cross-chain transfer failures. For complete authorization details, see the [LockRelease Access Control table](/ccip/concepts/cross-chain-token/svm/token-pools#access-control-1). diff --git a/src/content/ccip/concepts/cross-chain-token/svm/token-pools.mdx b/src/content/ccip/concepts/cross-chain-token/svm/token-pools.mdx index 25935bc3eac..20810786ffb 100644 --- a/src/content/ccip/concepts/cross-chain-token/svm/token-pools.mdx +++ b/src/content/ccip/concepts/cross-chain-token/svm/token-pools.mdx @@ -3,202 +3,597 @@ section: ccip date: Last Modified title: "Cross-Chain Token Standard - Token Pools (SVM)" metadata: - description: "Learn about CCIP Token Pools for SVM chains like Solana. Covers requirements (instructions, PDAs, decimals), standard pools, and custom pool use cases." + description: "Complete guide to CCIP Token Pools for SVM chains like Solana. Covers deployment approaches (self-serve, self-deployed, custom), decimal compatibility decisions, standard pool implementation (BurnMint, LockRelease), and custom pool development requirements." + excerpt: "Token pools, SVM, Solana, deployment approaches, self-serve mode, BurnMint, LockRelease, decimal compatibility, decimal precision, mint authority, liquidity management, PDAs, custom pools, Token-2022, SPL tokens, cross-chain transfers, CCIP Router, rate limiting, instructions" --- -import { Aside } from "@components" +import { Aside, ClickToZoom } from "@components" import CcipCommon from "@features/ccip/CcipCommon.astro" - +On SVM-based blockchains (e.g., Solana), a [token pool](/ccip/concepts/cross-chain-token/overview#token-pool) program mediates the cross-chain transfer of [cross-chain tokens](/ccip/concepts/cross-chain-token/overview) by coordinating with the SPL Token Program. This guide describes all the requirements that your token pools must meet. -On SVM-based blockchains (e.g., Solana), a token pool program mediates the cross-chain transfer of Cross-Chain Tokens (CCTs) by coordinating with the SPL Token Program. This guide describes all the requirements that your token pools must meet. +For architectural context and how token pools fit into the complete CCIP system, see [Architecture Overview](/ccip/concepts/cross-chain-token/svm/architecture). For token-specific requirements and pool type selection guidance, see [Tokens documentation](/ccip/concepts/cross-chain-token/svm/tokens). -## Common Requirements +## Deployment Approaches -All token pools, whether standard or custom, must adhere to the following guidelines: +Before diving into the technical details, it's important to understand your three deployment options. Each approach offers different levels of control and responsibility based on your operational preferences and infrastructure requirements. -### Mandatory Instructions +### Approach 1: Self-Serve Mode (Recommended for Most Users) -When CCIP interacts with your token pools, it expects the presence of the following functions: +**What it is:** Chainlink Labs deploys and maintains the standard token pool programs (BurnMint and LockRelease) on Solana Devnet and Mainnet. You simply initialize your token pool from these existing deployed programs. -1. For locking or burning tokens: +**Key Benefits:** - - `lock_or_burn_tokens(ctx: Context, lock_or_burn: LockOrBurnInV1,) -> Result`: This locks or burns tokens on the source blockchain. - - Read the [API reference](/ccip/api-reference/svm) to learn more about the parameters. +- No need to build, audit, or deploy pool programs yourself +- Automatic access to upgrades and security fixes +- Fastest time to deployment +- Lower operational overhead -1. For releasing or minting tokens: +**Who should use this:** [Token developers](/ccip/concepts/cross-chain-token/overview#token-developer) that want to integrate with CCIP quickly without managing infrastructure. - - `release_or_mint_tokens(ctx: Context, release_or_mint: ReleaseOrMintInV1,) -> Result`: This releases or mints tokens on the destination blockchain. - - Read the [API reference](/ccip/api-reference/svm) to learn more about the parameters. +**How it works:** -### Seeds and PDAs +1. **Program Admin** (Chainlink's upgrade authority) deploys the program and initializes the Global Config PDA with: + - `self_served_allowed: true` (enables user self-service) + - Default router address for the network + - Default RMN remote address for security +1. **Users** can initialize pools for their tokens by calling the `initialize` instruction, provided they control the token's mint authority +1. New pools automatically inherit the default router and RMN addresses from the Global Config PDA -Reuse the base-token-pool Seeds and PDAs: +### Approach 2: Self-Deployed Standard Pools -1. Your token pool program should use the same seeds ([`ccip_tokenpool_config`](https://github.com/smartcontractkit/chainlink-ccip/blob/4c416d75ac2f5178bdb2c77527eb96822c999a92/chains/solana/contracts/programs/base-token-pool/src/common.rs#L13), [`ccip_tokenpool_chainconfig`](https://github.com/smartcontractkit/chainlink-ccip/blob/4c416d75ac2f5178bdb2c77527eb96822c999a92/chains/solana/contracts/programs/base-token-pool/src/common.rs#L12), and [`ccip_tokenpool_signer`](https://github.com/smartcontractkit/chainlink-ccip/blob/contracts-ccip-release/1.6.0/chains/solana/contracts/programs/base-token-pool/src/common.rs#L14)) so that the CCIP Router can correctly derive your program's program-derived addresses (PDAs). The built-in instructions in the CCIP Router rely on these well-known seeds to locate your pool's onchain configuration and signer accounts. +**What it is:** You build and deploy the standard Chainlink token pool programs yourself, giving you control over the upgrade authority. - +**Key Benefits:** -1. Refer to the standard implementation of [BurnMint](https://github.com/smartcontractkit/chainlink-ccip/tree/contracts-ccip-release/1.6.0/chains/solana/contracts/programs/burnmint-token-pool) or [LockRelease](https://github.com/smartcontractkit/chainlink-ccip/tree/contracts-ccip-release/1.6.0/chains/solana/contracts/programs/lockrelease-token-pool) token pools for more information. +- Full control over when to apply upgrades +- Can customize deployment timing and parameters +- Maintain upgrade authority for your pools +- Use proven, audited standard implementations -### Mint Authority for BurnMint Token Pools +**Who should use this:** Projects that need control over upgrade timing or have specific governance requirements. -On Solana, the `mint_authority` for an SPL token is stored as a single `COption` in the Mint account. This means only one address can be set as the minter at any given time. It is possible to configure the mint authority (using [mechanisms](/ccip/concepts/cross-chain-token/svm/tokens#mint-authority-for-burnmint) such as a multisig solution) so that you retain governance control even after it is reassigned to a BurnMint token pool program. +**How it works:** You compile and deploy the Chainlink-provided [BurnMint](https://github.com/smartcontractkit/chainlink-ccip/tree/contracts-ccip-release/1.6.0/chains/solana/contracts/programs/burnmint-token-pool) or [LockRelease](https://github.com/smartcontractkit/chainlink-ccip/tree/contracts-ccip-release/1.6.0/chains/solana/contracts/programs/lockrelease-token-pool) programs to your chosen address, retaining upgrade authority. -### Token Decimal Handling +### Approach 3: Custom Token Pools -Transferring tokens cross-chain when the token has different decimal configurations on source and destination can introduce rounding errors or unexpected balance changes if not appropriately handled. Below, we demonstrate a concrete scenario illustrating how these errors manifest and how you can mitigate them in your token pools. +**What it is:** You build your own token pool program with custom logic while ensuring CCIP compatibility. -#### Example of Precision Loss +**Key Benefits:** -Consider a token developer who deployed their token on two blockchains with different decimal configurations and without any proper decimals conversation in the token pools: +- Complete customization for unique token mechanics +- Support for specialized features (rebasing, fee-on-transfer, etc.) +- Full control over program logic -- Blockchain A: Token with 12 decimals -- Blockchain B: Token with 6 decimals +**Who should use this:** Projects with unique token mechanics that standard pools cannot accommodate. -| Transfer Path | Example | Explanation | Impact | -| -------------- | ------------------------------------------------------------------- | ----------------------- | ------------------------------- | -| A → B (12 → 6) | - Send 1 from A (= 10^12 base units)
- Receive on B: 1,000,000 | 10^12 / 10^6= 1,000,000 | Gain of 999,999 (1,000,000 -1) | -| B → A (6 → 12) | - Send 1 from B (= 10^6 base units)
- Receive on A: 0.000001 | 10^6 / 10^12= 0.000001 | Loss of 0.999999 (1 - 0.000001) | +**Requirements:** Must implement all [common technical requirements](#common-technical-requirements) and follow the specifications detailed in the [Custom Token Pools](#custom-token-pools) section. Pay special attention to [decimal compatibility considerations](#decimal-compatibility-considerations) as custom pools require manual decimal conversion implementation. -Without proper decimal conversion, the user's final balance can differ dramatically from their intended transfer amount. +## Token Handling Mechanisms -#### How to Handle Token Decimals +Before implementing token pools, you need to choose the appropriate [token handling mechanism](/ccip/concepts/cross-chain-token/overview#token-handling-mechanisms) for your cross-chain token transfers. This strategic decision determines which combination of token pools you'll deploy on source and destination blockchains. -All standard token pools (BurnMint, LockRelease) in the base token pool library automatically call `to_svm_token_amount` during the `release_or_mint_tokens` flow. This instruction: +The table below summarizes the different token handling mechanisms and the [recommended token pools](https://github.com/smartcontractkit/chainlink-ccip/tree/contracts-ccip-release/1.6.0/chains/solana/contracts/programs) to deploy for each scenario, ensuring a seamless token transfer process. -1. Reads the incoming amount. -1. Converts it from the source token decimals (incoming) to the local token decimals. -1. Returns a u64 or an error if the conversion exceeds u64::Max (maximum token supply on SVM-based blockchains). +| Token Handling Mechanism | Source Blockchain Token Pool Type | Destination Blockchain Token Pool Type | How it Works | +| ------------------------ | --------------------------------- | -------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Burn & Mint | BurnMint | BurnMint | - Standard burn and mint mechanism for CCT transfers. | +| Lock & Mint | LockRelease | BurnMint | - The source blockchain is the issuing blockchain.
- The LockRelease token pool must be deployed on the issuing blockchain. | +| Burn & Unlock | BurnMint | LockRelease | - The destination blockchain is the issuing blockchain.
- The BurnMint token pool burns tokens on the source blockchain, and the LockRelease token pool unlocks tokens on the issuing blockchain. | +| Lock & Unlock | LockRelease | LockRelease | - Tokens are locked on the source blockchain and unlocked on the destination blockchain.
- Can result in fragmented liquidity and requires careful management of liquidity across multiple blockchains to avoid stuck token transfers due to insufficient liquidity locked in the token pool on the destination blockchain. | -If you build a custom token pool, be sure to use [`to_svm_token_amount`](https://github.com/smartcontractkit/chainlink-ccip/blob/contracts-ccip-release/1.6.0/chains/solana/contracts/programs/base-token-pool/src/common.rs#L536) from the base token pool library to handle decimal differences correctly. +## Decimal Compatibility Considerations -It is important to note that CCTs with different decimal precision can impact the total number of tokens in circulation. Tokens locked/burned on the source chain might result in a smaller number of tokens minted/released on the destination chain due to decimal rounding. +Before implementing token pools, it's critical to understand how decimal differences across blockchains can impact your cross-chain token transfers. This section provides strategic guidance for making informed decisions about token deployment and decimal configuration. For initial decimal planning considerations when deploying your token, see [Decimal Planning](/ccip/concepts/cross-chain-token/svm/tokens#decimal-planning). - +### The Decimal Challenge -**Understanding Token Decimals** +When deploying a token across multiple blockchains, [token developers](/ccip/concepts/cross-chain-token/overview#token-developer) can configure different decimal places for each blockchain. However, this flexibility comes with important trade-offs: -When deploying a token, token developers can configure different decimal places for each blockchain. For example: +**Example Configuration:** -- **On Ethereum**: The developer sets 18 decimals (0.123456789123456789) -- **On Solana**: The developer sets 9 decimals (0.123456789) +- **Ethereum**: 18 decimals (0.123456789123456789) +- **Solana**: 9 decimals (0.123456789) -When transferring tokens between these blockchains, CCIP handles decimal conversion automatically, but must round numbers to match the destination's configured precision. +**What Happens During Transfers:** +When transferring between blockchains with different decimal precision, CCIP automatically handles conversion but **must round numbers** to match the destination's configured precision. -**Impact Scenarios** +### Impact on Token Supply -Consider a token developer who deployed their token across three blockchains with different decimal configurations: +Different decimal configurations can affect your token's total supply across chains: -- **Blockchain A**: High precision (18 decimals) -- **Blockchain B**: Low precision (9 decimals) -- **Blockchain C**: High precision (18 decimals) +| Transfer Direction | Result | Supply Impact | +| ------------------------ | --------------------------------------------------------------- | --------------------------------------------------------------- | +| **High → Low Precision** | Precision loss due to rounding (e.g., 18 decimals → 9 decimals) | **Permanent loss**: Tokens burned/locked exceed tokens released | +| **Low → High Precision** | No precision loss (e.g., 9 decimals → 18 decimals) | **No impact**: Perfect conversion possible | +| **Equal Precision** | No precision loss (e.g., 18 decimals → 18 decimals) | **No impact**: Perfect 1:1 transfers | -| Scenario | Transfer Path | Example | Impact | -| ---------------------------- | ------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | -| **High to Low Precision ❌** | A → B | • **Send from A**: 1.123456789123456789
• **Receive on B**: 1.123456789
**Lost**: 0.000000000123456789 | • **BurnMint**: Tokens permanently burned on Blockchain A
• **LockRelease**: Tokens locked in token pool on Blockchain A | -| **Low to High Precision ✅** | B → A | • **Send from B**: 1.123456789
• **Receive on A**: 1.123456789000000000 | • No precision loss | -| **Equal Precision ✅** | A → C | • **Send from A**: 1.123456789123456789
• **Receive on C**: 1.123456789123456789 | • No precision loss | +**Critical Considerations:** -#### Recommended Practices +- **BurnMint Pools**: Lost precision results in **permanently burned tokens** on the source chain +- **LockRelease Pools**: Lost precision results in **tokens permanently locked** in the source pool +- Small amounts are most affected by rounding; large transfers typically see minimal percentage impact - +### Strategic Recommendations + +**Primary Recommendation:** +Deploy tokens with the **same number of decimals across all blockchains** whenever possible. This completely eliminates precision loss during cross-chain transfers. + +**When Different Decimals Are Necessary:** -- Deploy tokens with the same number of decimals across all blockchains whenever possible. - - This prevents loss of precision during cross-chain transfers. - - Different decimals should only be used when required by blockchain limitations (e.g., non-EVM chains with decimal constraints). -- Verify decimal configurations on both source and destination blockchains before transfers. -- Consider implementing UI warnings for transfers that might be affected by rounding. -- When using high-to-low precision transfers, be aware that: - - In BurnMint pools, lost precision results in permanently burned tokens. - - In LockRelease pools, lost precision results in tokens accumulating in the source pool. +- Only use different decimals when required by blockchain limitations +- Clearly communicate rounding risks to users in your UI +- Consider implementing transfer warnings for high-to-low precision transfers +- Plan for locked/burned token accumulation in your tokenomics -## Standard Token Pools +**Development Considerations:** -Depending on your use case (i.e., token handling mechanism), you must deploy the appropriate token pool type for each blockchain you want to support. Chainlink provides a set of [token pool programs](https://github.com/smartcontractkit/chainlink-ccip/tree/contracts-ccip-release/1.6.0/chains/solana/contracts/programs) that you can use to deploy your token pools in minutes. These token pool programs are fully audited and ready for deployment on your blockchains, but should be validated that they meet your use case requirements. Each program inherits the same underlying [`base-token-pool`](https://github.com/smartcontractkit/chainlink-ccip/tree/contracts-ccip-release/1.6.0/chains/solana/contracts/programs/base-token-pool), which provides shared data structures, rate-limiting logic, and other core functionality. +- Verify decimal configurations on both source and destination before going live +- Test small-amount transfers to understand rounding behavior +- Consider implementing minimum transfer amounts to minimize relative precision loss -### Base Token Pool +**Standard token pools** (BurnMint, LockRelease) handle decimal conversion automatically - no additional implementation required. -The base-token-pool library serves as the foundation for SVM-based token pools. It provides: +**Custom token pools** must implement decimal conversion manually - see [Decimal Implementation Requirements](#decimal-implementation-requirements) for technical details. -- **Core Data Structures** - - `BaseConfig` stores information such as the token's mint, the router program ID, and other essentials. - - `BaseChain` and `RemoteConfig` track cross-chain configuration data, including remote token pool, token addresses, and rate-limit settings. -- **Rate Limiter** - - A token bucket implementation that throttles outbound or inbound token transfers. -- **Allowlist (optional)** - - An optional sender validation that restricts which addresses can initiate cross-chain transfers. Token administrators can enable/disable the allowlist with `configure_allow_list` instruction and add authorized senders to it, or remove addresses with the `remove_from_allow_list` instruction. -- **Shared Instruction Definitions** - - Common instructions like `transfer_ownership`, `accept_ownership`, `init_chain_remote_config`, and others. -- **Events and Errors** - - Reusable Solana events (e.g., `Burned`, `Minted`, `Locked`, `Released`) and error definitions (e.g., `InvalidToken`, `RateLimitReached`). +## Standard Token Pools: An Overview -You typically do not deploy the `base-token-pool` by itself. Instead, you use one of the standard programs—`BurnMint` or `LockRelease`—that extend this library with specialized token-transfer logic. +Chainlink provides two standard token pool types that implement the token handling mechanisms described above. Each pool type implements specific logic for how tokens are managed during cross-chain transfers. The detailed sections below will help you understand the architecture, requirements, and implementation details for each pool type. ### BurnMint Token Pool -The [`burnmint-token-pool`](https://github.com/smartcontractkit/chainlink-ccip/tree/contracts-ccip-release/1.6.0/chains/solana/contracts/programs/burnmint-token-pool) implements a program that: + + +The BurnMint token pool provides burn and mint operations for cross-chain token transfers: + +#### How It Works + +**Outbound token transfer (when the SVM chain is the source chain):** + +- User transfers tokens to the pool's Associated Token Account (ATA) +- Pool program burns the tokens using the standard SPL burn instruction +- Tokens are permanently removed from circulation on the source chain + +**Inbound token transfer (when the SVM chain is the destination chain):** + +- Pool program mints new tokens using the SPL `mint_to` instruction +- New tokens are created in the user's associated token account (ATA) +- Pool program must control the `mint_authority` for the token + +#### Architecture Components + +**SVM Program Architecture Overview:** + +On SVM-based blockchains like Solana, applications consist of **programs** (executable code) and **accounts** (data storage). Programs are stateless and store their data in separate accounts. + +**Program-Derived Addresses (PDAs)** are special accounts with addresses [deterministically derived](https://solana.com/docs/core/pda) from seeds and a program ID. PDAs have no private keys, allowing programs to "sign" for them. This enables secure, predictable account management. + +**CCIP Token Pool Architecture:** + +The BurnMint token pool program uses PDAs to organize data into two categories: + +- **Global PDAs**: Shared configuration for all pools deployed from this program +- **Pool-Specific PDAs**: Individual configuration for each token's pool + +Each token has its own independent pool (one pool per mint), with pool-specific PDAs derived using the mint address as a seed. + +**Program-Derived Addresses (PDAs):** + +**Global Configuration:** + +- **Global Config PDA** (`seeds: ["config"]`): Program-wide settings including `self_served_allowed`, default router, and RMN remote addresses + +**Pool-Specific Configuration (per mint):** + +- **Pool State PDA** (`seeds: ["ccip_tokenpool_config", mint]`): Token-specific pool configuration, ownership, and operational settings +- **Pool Signer PDA** (`seeds: ["ccip_tokenpool_signer", mint]`): Signing authority for token operations (burns, mints, transfers) +- **Chain Config PDAs** (`seeds: ["ccip_tokenpool_chainconfig", chain_selector, mint]`): Per-destination chain configuration including rate limits and remote pool addresses + +#### Mint Authority Management + +**Mint Authority Control:** + +The mint authority follows this lifecycle for BurnMint pools: + +**Required First: Pool Initialization** + +- You must control the token's `mint_authority` to initialize the pool +- The `initialize` instruction requires the mint authority as the signer +- The pool stores you as the owner during initialization +- Pool owner must create the [Associated Token Account (ATA)](https://www.solana-program.com/docs/associated-token-account) for the Pool Signer PDA before pool operations can begin + +**Ongoing: Pool Management** + +- As the pool owner, you can configure CCIP settings throughout the pool's lifetime: + - Set up chain configurations for new remote chains + - Configure or update rate limits for existing chains + - Manage allowlists and other pool settings + - Add or remove remote pool addresses + +**When Ready: Mint Authority Transfer** + +- Transfer the `mint_authority` when you're ready to enable the pool for minting operations +- This enables the pool to mint tokens on inbound flows when the SVM chain is the destination +- Choose one of two transfer mechanisms (multisig approach strongly recommended for production): + +**Option 1: Direct Transfer (Simple)** + +**Configuration:** -1. **Burns tokens**: - - When users initiate a cross-chain transfer from an SVM-based blockchain, they transfer tokens into the pool's Associated Token Account (ATA). - - The pool program then calls the standard SPL burn instruction, removing those tokens from circulation. -1. **Mints tokens**: - - On the destination blockchain, the pool program must hold the `mint_authority` (Read the [Mint Authority for BurnMint](/ccip/concepts/cross-chain-token/svm/tokens#mint-authority-for-burnmint) section for more information). - - It invokes the SPL `mint_to` instruction via CPI, creating new tokens for the user's ATA. +- Transfer the `mint_authority` directly to the Pool Signer PDA -For many cross-chain use cases—especially when transferring a token from an SVM-based blockchain to another blockchain—BurnMint is the most straightforward approach if your token supply is meant to expand (mint) or contract (burn) on different blockchains. +**Best suited for:** -**When to Use:** +- Development environments +- Simple production deployments where the token exclusively integrates with CCIP +- Scenarios with a single trusted actor interacting with the token -- You can configure the `mint_authority`. -- Use it as part of the Burn and Mint or Lock and Mint/Burn and Unlock token handling mechanisms. Read the [Token Handling Mechanism section](/ccip/concepts/cross-chain-token/svm/tokens#token-handling-mechanisms) for more information. +**Limitations:** + +- Only the token pool can mint tokens +- Reduced flexibility for future integrations + +**Option 2: Multisig Configuration (Recommended for Production)** + +**Configuration:** + +- Set up a 1-of-N [SPL token multisig account](https://spl.solana.com/token#multisig-usage) as the mint authority +- Include the Pool Signer PDA as one of the authorized signers +- Retain other signers under your exclusive control + +**Key benefits:** + +- Enables multiple authorized parties to mint tokens +- Maintains governance control through other multisig signers +- Provides extensibility for future integrations +- Enhanced security through distributed control + +**Requirements:** + +- Must use [SPL token multisig](https://spl.solana.com/token#multisignatures) - other multisig implementations are not supported +- The Pool Signer PDA must be included as one of the multisig signers +- Multisig configuration must allow the pool to sign minting transactions independently + +After this transfer, the pool can mint tokens when the SVM chain is the destination chain for cross-chain transfers. + + + +#### Access Control + +Understanding who can call which instructions is critical for secure pool operation and proper integration. This table shows the authorization model for all BurnMint token pool instructions, helping you understand the security boundaries and operational responsibilities. + +| Instruction Category | Instruction | Program Upgrade Authority | Pool Owner | Rate Limit Admin\* | Router Authority | +| -------------------- | ------------------------------------- | :-----------------------: | :--------: | :----------------: | :--------------: | +| **Global Config** | `init_global_config` | ✅ | ❌ | ❌ | ❌ | +| | `update_self_served_allowed` | ✅ | ❌ | ❌ | ❌ | +| | `update_default_router` | ✅ | ❌ | ❌ | ❌ | +| | `update_default_rmn` | ✅ | ❌ | ❌ | ❌ | +| **Pool Lifecycle** | `initialize` | ✅ OR Mint Authority | ❌ | ❌ | ❌ | +| **Ownership** | `transfer_ownership` | ❌ | ✅ | ❌ | ❌ | +| | `accept_ownership` | ❌ | ✅\*\* | ❌ | ❌ | +| **Security** | `transfer_mint_authority_to_multisig` | ✅ | ❌ | ❌ | ❌ | +| | `configure_allow_list` | ❌ | ✅ | ❌ | ❌ | +| | `remove_from_allow_list` | ❌ | ✅ | ❌ | ❌ | +| **Chain Config** | `init_chain_remote_config` | ❌ | ✅ | ❌ | ❌ | +| | `edit_chain_remote_config` | ❌ | ✅ | ❌ | ❌ | +| | `append_remote_pool_addresses` | ❌ | ✅ | ❌ | ❌ | +| | `set_chain_rate_limit` | ❌ | ✅ | ✅ | ❌ | +| | `delete_chain_config` | ❌ | ✅ | ❌ | ❌ | +| **Cross-Chain** | `lock_or_burn_tokens` | ❌ | ❌ | ❌ | ✅ | +| | `release_or_mint_tokens` | ❌ | ❌ | ❌ | ✅ | + +**Notes:** + +- \* **Rate Limit Admin**: Optional role. Only useful if pool owner wants another address to manage rate limits +- \*\* **accept_ownership**: Must be the `proposed_owner` from `transfer_ownership` +- **Critical**: Pool Signer PDA MUST have mint capability (direct or via multisig) for minting operations +- **Critical**: Pool owner must create the [Associated Token Account (ATA)](https://www.solana-program.com/docs/associated-token-account) for the Pool Signer PDA before pool operations can begin + +#### When to Use + +**Key Characteristics:** + +- Requires mint authority control for initialization, then transfer to pool for operations +- Total supply can vary across chains during transfers +- No liquidity management needed +- Suitable for tokens designed to expand/contract supply + +**Choose BurnMint When:** + +- You control the `mint_authority` for your token (required for initialization) +- You are willing to transfer mint authority to the pool after CCIP registration +- Your token is designed to have variable supply across chains +- You want to avoid liquidity management complexity +- Your token participates in [Burn and Mint](/ccip/concepts/cross-chain-token/overview#burn-and-mint) or [Lock and Mint/Burn and Unlock](/ccip/concepts/cross-chain-token/overview#lock-and-mint) token handling mechanisms + +For detailed mint authority configuration options, see [Mint Authority for BurnMint](/ccip/concepts/cross-chain-token/svm/tokens#mint-authority-for-burnmint). ### LockRelease Token Pool -The [`lockrelease-token-pool`](https://github.com/smartcontractkit/chainlink-ccip/tree/contracts-ccip-release/1.6.0/chains/solana/contracts/programs/lockrelease-token-pool) token pool implements a program that: + + +The LockRelease token pool implements a lock-and-release strategy for cross-chain token transfers: + +#### How It Works + +**Outbound token transfer (when the SVM chain is the source chain):** + +- User transfers tokens to the pool's Associated Token Account (ATA) +- Pool program "locks" tokens by holding them in its account +- Tokens remain in circulation but are held by the pool as escrow +- No tokens are destroyed - total supply remains constant + +**Inbound token transfer (when the SVM chain is the destination chain):** + +- Pool program transfers tokens from its ATA to the user's ATA +- Pool must have sufficient token balance (liquidity) to fulfill transfers +- No minting occurs - only transfers of existing tokens from the pool's reserves + +#### Architecture Components + +**SVM Program Architecture Overview:** + +On SVM-based blockchains like Solana, applications consist of **programs** (executable code) and **accounts** (data storage). Programs are stateless and store their data in separate accounts. + +**Program-Derived Addresses (PDAs)** are special accounts with addresses [deterministically derived](https://solana.com/docs/core/pda) from seeds and a program ID. PDAs have no private keys, allowing programs to "sign" for them. This enables secure, predictable account management. + +**CCIP Token Pool Architecture:** + +The LockRelease token pool program uses the same PDA structure as BurnMint pools, organizing data into two categories: + +- **Global PDAs**: Shared configuration for all pools deployed from this program +- **Pool-Specific PDAs**: Individual configuration for each token's pool -1. **Locks Tokens**: +Each token has its own independent pool (one pool per mint), with pool-specific PDAs derived using the mint address as a seed. - - Users send tokens to the pool's ATA. - - The pool program "locks" these tokens (i.e., holds them in its account). +**Program-Derived Addresses (PDAs):** -1. **Releases Tokens**: +**Global Configuration:** - - The pool program transfers tokens from its ATA to the user's ATA, effectively "unlocking" them on the destination side. +- **Global Config PDA** (`seeds: ["config"]`): Program-wide settings including `self_served_allowed`, default router, and RMN remote addresses -In this scenario, **no mint authority** is needed. +**Pool-Specific Configuration (per mint):** -The Lock & Release token pool includes additional functionality for managing liquidity: +- **Pool State PDA** (`seeds: ["ccip_tokenpool_config", mint]`): Token-specific pool configuration, ownership, and operational settings +- **Pool Signer PDA** (`seeds: ["ccip_tokenpool_signer", mint]`): Signing authority for token operations (transfers, liquidity management) +- **Chain Config PDAs** (`seeds: ["ccip_tokenpool_chainconfig", chain_selector, mint]`): Per-destination chain configuration including rate limits and remote pool addresses -- **Rebalancer Role**: A designed public key that can move tokens in and out of the pool. -- **Liquidity Acceptance**: Controls whether the pool can receive additional liquidity. -- **Liquidity Operations**: Functions to add or withdraw liquidity from the pool. +#### Liquidity Management -**When to Use:** +**Pool Initialization:** -- Your token's mint authority is disabled or inaccessible. -- You want a fixed total supply on the blockchain where the token pool is deployed. -- Use it as part of the Lock and Mint/Burn and Unlock or Lock and Unlock token handling mechanisms. Read the [Token Handling Mechanism section](/ccip/concepts/cross-chain-token/svm/tokens#token-handling-mechanisms) for more information. +- Program upgrade authority can always initialize pools +- When self-serve is enabled (`self_served_allowed: true`), the token's mint authority can also initialize pools +- Pool is configured with liquidity acceptance settings during initialization +- Pool owner must create the [Associated Token Account (ATA)](https://www.solana-program.com/docs/associated-token-account) for the Pool Signer PDA before pool operations can begin + +**Ongoing Liquidity Operations:** + +- **Rebalancer Role**: Designated address that can provide or withdraw pool liquidity +- **Liquidity Acceptance**: Configurable setting (`can_accept_liquidity`) controls whether the pool accepts new liquidity +- **Liquidity Operations**: + - `provide_liquidity`: Rebalancer adds tokens to pool reserves + - `withdraw_liquidity`: Rebalancer removes tokens from pool reserves (can transfer to other pools) + +**Liquidity Requirements:** + +- Pool must maintain sufficient token balance to fulfill cross-chain transfers +- Insufficient liquidity will cause transfer failures +- Rebalancer responsible for maintaining adequate liquidity across all supported chains + +#### Access Control + +Understanding who can call which instructions is critical for secure pool operation and proper integration. This table shows the authorization model for all LockRelease token pool instructions, helping you understand the security boundaries and operational responsibilities. + +| Instruction Category | Instruction | Program Upgrade Authority | Pool Owner | Rate Limit Admin\* | Router Authority | Rebalancer | +| -------------------- | ------------------------------ | :-----------------------: | :--------: | :----------------: | :--------------: | :--------: | +| **Global Config** | `init_global_config` | ✅ | ❌ | ❌ | ❌ | ❌ | +| | `update_self_served_allowed` | ✅ | ❌ | ❌ | ❌ | ❌ | +| | `update_default_router` | ✅ | ❌ | ❌ | ❌ | ❌ | +| | `update_default_rmn` | ✅ | ❌ | ❌ | ❌ | ❌ | +| **Pool Lifecycle** | `initialize` | ✅ OR Mint Authority | ❌ | ❌ | ❌ | ❌ | +| **Ownership** | `transfer_ownership` | ❌ | ✅ | ❌ | ❌ | ❌ | +| | `accept_ownership` | ❌ | ✅\*\* | ❌ | ❌ | ❌ | +| **Security** | `configure_allow_list` | ❌ | ✅ | ❌ | ❌ | ❌ | +| | `remove_from_allow_list` | ❌ | ✅ | ❌ | ❌ | ❌ | +| **Liquidity Mgmt** | `set_rebalancer` | ❌ | ✅ | ❌ | ❌ | ❌ | +| | `set_can_accept_liquidity` | ❌ | ✅ | ❌ | ❌ | ❌ | +| | `provide_liquidity` | ❌ | ❌ | ❌ | ❌ | ✅ | +| | `withdraw_liquidity` | ❌ | ❌ | ❌ | ❌ | ✅ | +| **Chain Config** | `init_chain_remote_config` | ❌ | ✅ | ❌ | ❌ | ❌ | +| | `edit_chain_remote_config` | ❌ | ✅ | ❌ | ❌ | ❌ | +| | `append_remote_pool_addresses` | ❌ | ✅ | ❌ | ❌ | ❌ | +| | `set_chain_rate_limit` | ❌ | ✅ | ✅ | ❌ | ❌ | +| | `delete_chain_config` | ❌ | ✅ | ❌ | ❌ | ❌ | +| **Cross-Chain** | `lock_or_burn_tokens` | ❌ | ❌ | ❌ | ✅ | ❌ | +| | `release_or_mint_tokens` | ❌ | ❌ | ❌ | ✅ | ❌ | + +**Notes:** + +- \* **Rate Limit Admin**: Optional role. Only useful if pool owner wants another address to manage rate limits +- \*\* **accept_ownership**: Must be the `proposed_owner` from `transfer_ownership` +- **Critical**: Pool owner must create the [Associated Token Account (ATA)](https://www.solana-program.com/docs/associated-token-account) for the Pool Signer PDA before pool operations can begin + +#### When to Use + +**Key Characteristics:** + +- Program upgrade authority can always initialize pools; mint authority can self-initialize when accessible +- No mint authority required for ongoing operations (unlike BurnMint) +- Fixed total supply per chain - tokens are only transferred, never created or destroyed +- Requires active liquidity management and funding +- Suitable for tokens where you want to retain mint authority control OR where mint authority is no longer accessible + +**Choose LockRelease When:** + +- You want to retain control of the token's mint authority (not transfer it to the pool) +- Your token's mint authority is disabled/revoked (e.g., to cap token supply) or otherwise inaccessible +- You prefer not to delegate minting capabilities to the token pool +- You want to maintain fixed total supply on each blockchain +- You can manage liquidity requirements and rebalancing across chains +- You have operational capacity to monitor and maintain pool liquidity levels +- Your token participates in [Lock and Mint/Burn and Unlock](/ccip/concepts/cross-chain-token/overview#burn-and-unlock) or [Lock and Unlock](/ccip/concepts/cross-chain-token/overview#lock-and-unlock) token handling mechanisms + +Both pool types are built on the shared [`base-token-pool`](https://github.com/smartcontractkit/chainlink-ccip/tree/contracts-ccip-release/1.6.0/chains/solana/contracts/programs/base-token-pool) foundation, which provides common functionality including [rate limiting](/ccip/concepts/cross-chain-token/overview#token-pool-rate-limits), allowlists, cross-chain configuration, and event handling. + +## Next Steps: Pool Configuration + +After deploying your token pool using any of the approaches above, you'll need to configure it for cross-chain operations. This includes: + +- Setting up remote chain configurations +- Configuring rate limits for cross-chain transfers +- Managing allowlists and access controls +- Setting up liquidity management (for LockRelease pools) + +For detailed instructions on configuring your token pool parameters, see [Token Pool Configuration](/ccip/concepts/cross-chain-token/svm/registration-administration#token-pool-configuration-pool-side). ## Custom Token Pools -If the standard BurnMint and LockRelease token pool programs don't meet your requirements, you can create a custom token pool program that is compatible with CCIP. This typically involves integrating the `base-token-pool` library for core functionality (ownership, rate-limiting, cross-chain instructions) and extending it with your custom logic (e.g., handling rebasing tokens). +If the standard BurnMint and LockRelease token pool programs don't meet your requirements, you can create a custom token pool program that is compatible with CCIP. This advanced approach gives you complete control over token handling logic while maintaining CCIP compatibility. + +### When to Build Custom Token Pools + +**Consider building a custom token pool when:** + +- **Complex Token Mechanics**: Your token has unique behavior like rebasing, fee-on-transfer, or complex reward mechanisms +- **Specialized Business Logic**: You need custom validation, compliance checks, or integration with other protocols +- **Governance Requirements**: You need custom access control patterns + +**Standard pools are sufficient for:** + +- Basic SPL tokens with standard mint/burn/transfer functionality +- Tokens that don't require custom logic during cross-chain transfers +- SPL tokens and Token-2022 tokens + +### Technical Requirements + +All custom token pools must implement the following requirements to be CCIP-compatible: + +#### Required Program-Derived Addresses (PDAs) + +Your custom token pool **must** use these exact PDA seeds so the CCIP Router can correctly derive and interact with your pool accounts: + +**Required PDAs and Their Seeds:** + +1. **Global Config PDA** + + - Seeds: `["config"]` + - Purpose: Program-wide settings including `self_served_allowed`, default router, and RMN addresses + - Used by: Program admin for deployment configuration + +1. **Pool State PDA** + + - Seeds: `["ccip_tokenpool_config", mint_address]` + - Purpose: Token-specific pool configuration, ownership, and operational settings + - Used by: Pool management and cross-chain operations + +1. **Pool Signer PDA** + + - Seeds: `["ccip_tokenpool_signer", mint_address]` + - Purpose: Signing authority for token operations (burns, mints, transfers) + - Used by: Token transfer operations and mint authority control + +1. **Chain Config PDAs** + - Seeds: `["ccip_tokenpool_chainconfig", chain_selector, mint_address]` + - Purpose: Per-destination chain configuration including rate limits and remote pool addresses + - Used by: Cross-chain transfer validation and routing + + + +#### Mandatory Instructions + +When CCIP interacts with your custom token pools, it expects the presence of the following functions with exact signatures: + +1. **For source chain operations (locking or burning tokens):** + + - `lock_or_burn_tokens(ctx: Context, lock_or_burn: LockOrBurnInV1,) -> Result` + - This function handles token operations when your chain is the source of a cross-chain transfer + - Read the [API reference](/ccip/api-reference/svm) to learn more about the parameters + +1. **For destination chain operations (releasing or minting tokens):** + + - `release_or_mint_tokens(ctx: Context, release_or_mint: ReleaseOrMintInV1,) -> Result` + - This function handles token operations when your chain is the destination of a cross-chain transfer + - Read the [API reference](/ccip/api-reference/svm) to learn more about the parameters + +#### Integration with Base Token Pool + +All custom token pools should integrate the [`base-token-pool`](https://github.com/smartcontractkit/chainlink-ccip/tree/contracts-ccip-release/1.6.0/chains/solana/contracts/programs/base-token-pool) library for core functionality: + +- **Ownership management**: Pool ownership and proposed ownership transfers +- **Rate limiting**: Inbound and outbound rate limit controls per destination chain +- **Cross-chain configuration**: Remote pool addresses and chain-specific settings +- **Access control**: Allowlists and permission management +- **Event handling**: Standardized event emissions for monitoring +- **Decimal conversion**: Use `to_svm_token_amount` for proper decimal handling between chains + +#### Decimal Implementation Requirements + +All custom token pools **must** implement proper decimal conversion to handle tokens with different decimal configurations across blockchains. For strategic guidance on decimal compatibility decisions, see [Decimal Compatibility Considerations](#decimal-compatibility-considerations). + +**Required Implementation:** + +All standard token pools (BurnMint, LockRelease) automatically call `to_svm_token_amount` during the `release_or_mint_tokens` flow. If you build a custom token pool, you **must** use [`to_svm_token_amount`](https://github.com/smartcontractkit/chainlink-ccip/blob/contracts-ccip-release/1.6.0/chains/solana/contracts/programs/base-token-pool/src/common.rs#L536) from the base token pool library. + +**How `to_svm_token_amount` Works:** + +1. Reads the incoming amount from the source chain +1. Converts it from the source token decimals to the local token decimals +1. Returns a u64 amount or an error if the conversion exceeds u64::Max (maximum token supply on SVM-based blockchains) + + + +### Implementation Examples + +#### Example 1: Rebasing Token Pool + +**Use Case**: Rebasing tokens adjust their supply periodically based on external parameters (e.g., price, yield). These tokens require custom logic to handle rebasing events during cross-chain transfers. + +**Implementation Approach**: + +- **Source Blockchain**: Instead of burning or locking a specific amount of tokens, track "underlying shares" that represent proportional ownership. In `lock_or_burn_tokens`, convert the user's tokens into an internal share count and store that in `LockOrBurnOutV1.dest_pool_data` for the destination token pool. + +- **Destination Blockchain**: In `release_or_mint_tokens`, parse the share count from `ReleaseOrMintInV1.source_pool_data` and convert those shares back into the current token amount based on the latest rebase. If your token supply has been rebased upward/downward since the transfer initiated, recalculate the final amount before minting or transferring to the user's ATA. + +#### Example 2: Fee-on-Transfer Token Pool + +**Use Case**: Tokens that deduct fees during transfers need custom logic to ensure cross-chain transfer amounts are accurate. + +**Implementation Approach**: + +- **Source Blockchain**: In `lock_or_burn_tokens`, calculate the net amount after fees and ensure the correct amount is locked/burned. Store the original intended amount in `dest_pool_data`. + +- **Destination Blockchain**: In `release_or_mint_tokens`, use the original intended amount from `source_pool_data` to mint/release the correct amount, accounting for any destination-side fees. + +### Development Resources + +**Implementation References:** + +- [BurnMint Token Pool](https://github.com/smartcontractkit/chainlink-ccip/tree/contracts-ccip-release/1.6.0/chains/solana/contracts/programs/burnmint-token-pool) - Standard burn/mint implementation +- [LockRelease Token Pool](https://github.com/smartcontractkit/chainlink-ccip/tree/contracts-ccip-release/1.6.0/chains/solana/contracts/programs/lockrelease-token-pool) - Standard lock/release implementation +- [Base Token Pool Library](https://github.com/smartcontractkit/chainlink-ccip/tree/contracts-ccip-release/1.6.0/chains/solana/contracts/programs/base-token-pool) - Shared functionality foundation -Below is an example of a token rebasing use case that requires building your own custom token pool: +**Testing and Validation:** -- **Use Case**: - - Rebasing tokens are a unique type of token that adjusts their supply in response to specific parameters (e.g., price or yield distribution). These tokens require custom logic to handle rebasing events during cross-chain transfers. -- **Solution**: - - **Source Blockchain**: Instead of burning or locking a specific amount of tokens, you might track "underlying shares" that map to a rebase or a fee adjustment. In `lock_or_burn_tokens`, convert the user's tokens into an internal share count and store that in `LockOrBurnOutV1.dest_pool_data` for the destination token pool. - - **Destination Blockchain**: In `release_or_mint_tokens`, parse the share count from `ReleaseOrMintInV1.source_pool_data` and then convert those shares back into the appropriate number of tokens. If your token supply has been rebased upward/downward, recalculate before minting or transferring to the user's ATA. +- Test with CCIP Router integration to ensure proper PDA derivation +- Validate decimal conversion handling for cross-chain transfers +- Ensure rate limiting and access control functions work correctly +- Test both source and destination chain operations thoroughly diff --git a/src/content/ccip/concepts/cross-chain-token/svm/tokens.mdx b/src/content/ccip/concepts/cross-chain-token/svm/tokens.mdx index c4b2417c4fd..181d8d5408c 100644 --- a/src/content/ccip/concepts/cross-chain-token/svm/tokens.mdx +++ b/src/content/ccip/concepts/cross-chain-token/svm/tokens.mdx @@ -3,189 +3,110 @@ section: ccip date: Last Modified title: "Cross-Chain Token Standard - Tokens (SVM)" metadata: - description: "Learn CCIP integration requirements for SPL tokens on SVM chains. Covers compatibility (SPL Token, Token-2022), registration (mint authority), and transfer functions." + description: "Essential guide for integrating SPL tokens with CCIP on SVM chains like Solana. Covers token compatibility requirements, decimal considerations, registration using mint authority, pool type selection (BurnMint vs LockRelease), and Token-2022 support." + excerpt: "CCIP, SPL tokens, SVM, Solana, Token-2022, mint authority, token administrator, registration, self-registration, BurnMint, LockRelease, pool selection, token pools, cross-chain transfers, compatibility, associated token accounts, decimals, token programs" --- import { Aside } from "@components" import CcipCommon from "@features/ccip/CcipCommon.astro" - +This document provides essential guidance for integrating tokens with Chainlink CCIP on SVM-based blockchains, such as Solana, using the Cross-Chain Token (CCT) standard. It covers token compatibility requirements, decimal planning considerations, registration processes, and strategic guidance for selecting the right token pool type for your use case. -This document provides comprehensive guidance for integrating tokens with Chainlink CCIP on SVM-based blockchains, such as Solana, using the Cross-Chain Token (CCT) standard. It outlines the compatibility requirements, registration processes, and transfer functions essential for ensuring that tokens operate seamlessly with CCIP. + ## Compatibility Before implementing CCIP support for your token, it's crucial to understand the compatibility requirements. These requirements ensure proper functionality of your token within the CCIP ecosystem. -### Basic Compatibility Requirements - -1. **Supported Token Programs**: Only tokens managed by either the standard SPL Token program or the Token-2022 (Token Extensions) program are compatible with CCIP. -1. **Interface Requirements**: For all tokens, especially those using Token-2022 extensions, ensure: - - **Associated Token Accounts (ATA)**: The token program must support creation and use of ATAs - - **Decimals**: The token must provide decimal precision via `mint.decimals` - - **Program Identification**: The token program must be correctly referenced through `mint.to_account_info().owner` +### Mandatory Compatibility Requirements -### Token Pool Compatibility +All tokens must meet these requirements for CCIP compatibility: -When using standard CCIP Token Pool Program templates, your token must be compatible with one of the following token pool types: +1. **Supported Token Programs**: Must use either the standard SPL Token program or Token-2022 (Token Extensions) program +1. **Interface Requirements**: Must support standard token interfaces: + - **Associated Token Accounts (ATA)**: Required for all CCIP operations + - **Decimals**: Must provide decimal precision via `mint.decimals` + - **Program Identification**: Must be correctly referenced through `mint.to_account_info().owner` -#### BurnMint Token Pool +### Decimal Planning -For token pools that burn tokens during outbound transfers (via OnRamp) and mint tokens during inbound transfers (via OffRamp): +When deploying your token across multiple blockchains, **decimal configuration is a critical strategic decision** that affects cross-chain transfer behavior and token supply management: -- The token's mint authority must be delegateable -- The token program must support the `mint_to` instruction -- The token program must support the `burn` instruction +**Key Decision:** Deploy your token with the **same number of decimals across all blockchains** whenever possible. This eliminates precision loss during cross-chain transfers. -#### LockRelease Token Pool +**Impact on Token Pools:** -For token pools that lock tokens during outbound transfers and release them during inbound transfers: +- **Different decimals**: Can result in precision loss and permanently locked/burned tokens +- **Same decimals**: Enable perfect 1:1 cross-chain transfers -- The token program must support the `transfer_checked` instruction +For comprehensive guidance on decimal compatibility impacts, strategic recommendations, and technical implementation requirements, see [Decimal Compatibility Considerations](/ccip/concepts/cross-chain-token/svm/token-pools#decimal-compatibility-considerations). -### Custom Token Pool Implementation - -Token developers can alternatively implement their own custom Token Pool Programs to support additional Token-2022 extensions not supported by the standard token pools. Custom implementations must adhere to CCIP's interface specifications while allowing developers to control which instructions are called when handling tokens. +### Token Requirements by Pool Type -## Registration Functions +Your token's requirements depend on which token pool type you'll deploy, determined by your chosen [token handling mechanism](/ccip/concepts/cross-chain-token/svm/token-pools#token-handling-mechanisms). Refer to the token handling mechanisms table to understand which pool type you need for your SVM chain deployment. -To enable a CCT in CCIP, ensure you can assign or confirm the token administrator. On SVM-based blockchains (e.g., Solana), this typically means having control over the `mint_authority` of the token's Mint account. The CCIP Router program uses this authority to verify that you can set a "token administrator" in its onchain registry. +#### BurnMint Pool -### Self-Registration +**Token Requirements:** -To self-register your CCT under CCIP, you use the `owner_propose_administrator` instruction provided by the CCIP Router. It works as follows: +- Must support `mint_to` and `burn` instructions +- **Mint authority** must be transferable (either directly to pool or to SPL Token Multisig with pool as signer) -- **Mint Authority**: Only the signer holding the private key for the token's `mint_authority` can initiate the request. -- **Pending Administrator**: This instruction creates (or updates) a Token Admin Registry account and sets a pending administrator. -- **Accept Role**: The newly proposed administrator then calls `accept_admin_role_token_admin_registry` to complete the process. +#### LockRelease Pool -Once the registration is complete, the CCIP Router recognizes your token and lets its administrator configure a token pool (burnMint or lockRelease). +**Token Requirements:** -### Edge Cases +- Must support `transfer_checked` instruction +- **No mint authority requirements** (pool operates through transfers only) -If the token's `mint_authority` is no longer accessible—for example, if it was intentionally set to `None` to cap the total supply—and therefore token ownership cannot be verified using onchain data, a manual registration process can be performed on your behalf. This approach ensures that tokens remain eligible for CCIP integration even if their original `mint_authority` is permanently unavailable, while avoiding fragmentation and helping token developers remain in control of their CCTs. - - - -## Mint Authority for BurnMint +### Custom Token Pool Implementation -BurnMint token pools must hold the mint authority, which is required to mint tokens. On SVM-based blockchains, only a _single public key_ can serve as the mint authority. There are two approaches for managing mint authority, with the multisig approach being strongly recommended for production environments. +Token developers can alternatively implement their own custom Token Pool Programs to support additional Token-2022 extensions not supported by the standard token pools. Custom implementations must adhere to CCIP's interface specifications while allowing developers to control which instructions are called when handling tokens. -### Advanced Setup: Multisig as Mint Authority (Recommended for Production) +For technical requirements and implementation guidance for custom pools, see [Custom Token Pools](/ccip/concepts/cross-chain-token/svm/token-pools#custom-token-pools). -For production environments and complex use cases, implementing a multisig solution as the mint authority provides greater flexibility and security. +## Registration -#### Configuration details +To enable your token for CCIP cross-chain transfers, you must register it and establish a token administrator role. This process ensures secure assignment of administrative control over your token's CCIP integration. -- Implement a 1-of-N multisig where any authorized signer can initiate minting operations -- Include the token pool's Program Derived Address (PDA) as one of the authorized signers -- Ensure other signers remain under the exclusive control of the token owner +### Registration Requirements -#### Key benefits +- **Self-Registration**: If you control the token's `mint_authority`, you can complete registration automatically +- **Manual Registration**: If `mint_authority` is not accessible (e.g., set to `None` to cap supply), manual registration is available -- Enables multiple minters to interact with the token via a shared mint authority -- Provides centralized control for the token owner -- Maintains extensibility for future integrations +### Registration Process -#### Implementation Process for Multisig Setup +The registration follows a secure two-step process: -1. Initialize the token with a temporary mint authority -1. Deploy the BurnMint token pool program -1. Configure the Token Pool Signer PDA within the Token Pool Program -1. Register the token in the Token Admin Registry - - Set your desired account as the proposed administrator - - Verify the token's `mint_authority` matches the transaction signer -1. Establish the multisig - - Create a 1-of-N multisig configuration - - Include the Token Pool signer PDA as one of the authorized signers -1. Configure the administrator in the on-chain router registry -1. Set the multisig account as the token's `mint_authority` +1. **Propose Administrator**: Designate who will administer your token's CCIP integration +1. **Accept Role**: The proposed administrator must explicitly accept the role to complete registration -### Default Setup: Token Pool as Direct Mint Authority - -This configuration assigns the token pool's Program Derived Address (PDA) directly as the token's mint authority. - -#### Best suited for - -- Development environments -- Simple production deployments where the token exclusively integrates with CCIP -- Scenarios with a single trusted actor interacting with the token - -#### Implementation - -- The `mint_authority` of the token is directly set to the token pool signer PDA -- Simplifies deployment and initial configuration - -#### Limitations - -- Only the token pool can mint tokens -- Changes to mint authority may be constrained by the token pool program's capabilities - -## Token Handling Mechanisms - -To facilitate cross-chain token transfers, you need to choose the appropriate [token handling mechanism](/ccip/concepts/cross-chain-token/overview#token-handling-mechanisms) and deploy the correct combination of token pools for the source and destination blockchains. The table below summarizes the different token handling mechanisms and the [recommended token pools](https://github.com/smartcontractkit/chainlink-ccip/tree/contracts-ccip-release/1.6.0/chains/solana/contracts/programs) to deploy for each scenario, ensuring a seamless token transfer process. - -| Token Handling Mechanism | Source Blockchain Token Pool Type | Destination Blockchain Token Pool Type | How it Works | -| ------------------------ | --------------------------------- | -------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Burn & Mint | BurnMint | BurnMint | - Standard burn and mint mechanism for CCT transfers. | -| Lock & Mint | LockRelease | BurnMint | - The source blockchain is the issuing blockchain.
- The LockRelease token pool must be deployed on the issuing blockchain. | -| Burn & Unlock | BurnMint | LockRelease | - The destination blockchain is the issuing blockchain.
- The BurnMint token pool burns tokens on the source blockchain, and the LockRelease token pool unlocks tokens on the issuing blockchain. | -| Lock & Unlock | LockRelease | LockRelease | - Tokens are locked on the source blockchain and unlocked on the destination blockchain.
- Can result in fragmented liquidity and requires careful management of liquidity across multiple blockchains to avoid stuck token transfers due to insufficient liquidity locked in the token pool on the destination blockchain. | - -Below are the core requirements for SPL tokens to integrate with CCIP transfer operations. Depending on the token handling mechanism, you may use a BurnMint token pool on both blockchains or combine a LockRelease token pool on one chain with a BurnMint token pool on the other. - -### Burn and Mint Requirements - -In this token handling mechanism, the same token pool type (BurnMint) is used on both source and destination blockchains, so these requirements are similar for both blockchains. - -1. **Set the Token Pool as Mint Authority** - - - The token pool program must hold the mint authority to enable minting tokens. - - For further details on mint authority configurations, refer to the [Mint Authority for BurnMint](#mint-authority-for-burnmint) section. - -1. **Burning Tokens** - - - Solana's SPL Token Program has no separate "burn" permission. Instead, the token pool program must own the token account that holds the tokens to be burned. - - Users typically transfer their tokens to the token pool's associated token account (ATA), which the pool program controls. Once the tokens reside in that ATA, the pool program can execute burn as needed. - - Because the pool program does not automatically create this ATA, the token administrator must ensure it is initialized beforehand. This one-time setup guarantees that tokens can be safely sent to the token pool ATA. - -1. **Minting Tokens** - - Once the pool program is the mint authority, it can invoke `mint_to` via a CPI (cross-program invocation) into the SPL Token Program. - - This allows the program to call the token program to mint the corresponding tokens. - -### Lock and Mint Requirements - -Locking tokens is ideal for tokens that no longer have an accessible `mint_authority`. If the `mint_authority` has been disabled, you can still enable cross-chain functionality by locking tokens on the source blockchain and minting them on the destination blockchain. +For comprehensive guidance including detailed instructions, sequence diagrams, and administrator role management, see [Registration & Administration](/ccip/concepts/cross-chain-token/svm/registration-administration). -#### Lock and Mint +## Next Steps -1. **Source Blockchain: LockRelease token pool** +Once your token meets the compatibility requirements, you need to complete two key steps to enable cross-chain transfers: - - The token pool program has an Associated Token Account (ATA) where users send their tokens. - - Tokens received in this ATA are locked in escrow, meaning no `mint_authority` is required. - - The token administrator must create the token pool's ATA in advance to receive locked tokens. +### Register Your Token -1. **Destination Blockchain: BurnMint token pool** - - The BurnMint token pool holds the `mint_authority` on the destination blockchain. - - For further details on mint authority configurations, refer to the [Mint Authority for BurnMint](#mint-authority-for-burnmint) section. +Complete the token registration process to establish administrative control over your token's CCIP integration. -#### Burn and Unlock +For detailed instructions, sequence diagrams, and administrator role management, see [Registration & Administration](/ccip/concepts/cross-chain-token/svm/registration-administration). -1. **Source blockchain: BurnMint token pool** +### Deploy and Configure Token Pool - - Users send tokens to the token pool's ATA on the source blockchain. - - The token pool program then calls the SPL `burn` instruction on that account. +After registration, deploy and configure a token pool to enable cross-chain transfer operations. -1. **Destination blockchain: LockRelease token pool** - - On the destination blockchain, the token pool program holds locked tokens in an ATA. - - The token pool program transfers tokens from its ATA to the receiver's ATA. +For comprehensive implementation guidance including deployment approaches (self-serve, self-deployed, custom), detailed architecture requirements, and step-by-step configuration instructions, see [Token Pools documentation](/ccip/concepts/cross-chain-token/svm/token-pools). diff --git a/src/content/ccip/concepts/cross-chain-token/svm/upgradability.mdx b/src/content/ccip/concepts/cross-chain-token/svm/upgradability.mdx index 6cbb9548879..02c75fc0d1e 100644 --- a/src/content/ccip/concepts/cross-chain-token/svm/upgradability.mdx +++ b/src/content/ccip/concepts/cross-chain-token/svm/upgradability.mdx @@ -3,55 +3,148 @@ section: ccip date: Last Modified title: "Cross-Chain Token Standard - Upgradability (SVM)" metadata: - description: "Learn about upgrading CCIP token pools on SVM chains like Solana. Covers in-place upgrades, preserving mint authority, user workflow, and best practices." + description: "Learn about CCIP token pool upgrades on SVM chains like Solana. Covers the three deployment approaches: self-serve mode with governance-controlled updates (similar to SPL Token programs), self-deployed pools with user-controlled upgrades, and custom pool upgrade management." + excerpt: "CCIP, token pool upgrades, SVM, Solana, deployment approaches, self-serve mode, governance, multisig, timelock, node operators, SPL Token programs, self-deployed pools, custom pools, upgrade authority, in-place upgrades, mint authority, program ID, governance process, ManyChainMultiSig, MCMS, upgrade management" --- import { Aside } from "@components" import CcipCommon from "@features/ccip/CcipCommon.astro" - +Token pool upgradability on SVM-based blockchains (e.g., Solana) depends entirely on which [deployment approach](/ccip/concepts/cross-chain-token/svm/token-pools#deployment-approaches) you choose. Your upgrade responsibilities and capabilities vary significantly based on whether you use self-serve mode, deploy standard pools yourself, or build custom pools. -On SVM-based blockchains (e.g., Solana), token pools can be upgraded in place by token developers to preserve both the mint authority (for Burn and Mint pools) and the transaction workflow (for any token pool). Rather than deploying a brand-new program ID each time you change pool logic, you can push new code to the existing ID and maintain stability for all users referencing that pool. +## Upgrade Approaches by Deployment Type -## In-Place Upgrades +Your upgrade experience depends entirely on which deployment approach you chose when setting up your token pool: -1. **Retain Mint Authority (Burn and Mint Pools):** SPL tokens have a single `mint_authority`. When you delegate this authority to a Burn and Mint token pool program, that program holds the exclusive rights to mint tokens. As detailed in the [Mint Authority for BurnMint](/ccip/concepts/cross-chain-token/svm/tokens#mint-authority-for-burnmint) section of the Tokens page, while it is possible to deploy a new pool program and reassign the mint authority, doing so involves extra overhead. In-place upgrades allow you to: +### Approach 1: Self-Serve Mode (Recommended - No Action Required) + +**How it works:** + +This approach follows the same pattern as **SPL Token programs** on Solana: you create and manage your own token pools (like creating your own mints), but the underlying token pool programs are maintained by the program authority through established governance processes. + +**What it means for upgrades:** + +- **Governance-controlled upgrades**: The standard BurnMint and LockRelease programs are upgraded through CCIP's [governance process](/ccip/concepts/architecture/onchain/svm/upgradability) involving multisig approvals, timelock reviews, and node operator oversight +- **Seamless updates**: Security fixes and feature updates are deployed through the governance process without breaking your pool configuration or mint authority +- **No action required**: You don't manage program upgrades, similar to how you don't upgrade the SPL Token program when using standard Solana tokens +- **Preserved functionality**: Updates happen at the program level while your individual pool state and configuration remain intact + +**Your responsibilities:** + +- **None** - program upgrades are handled through CCIP governance +- Monitor CCIP announcements for new features or breaking changes +- Test your integration after major protocol updates + +**Benefits:** + +- Always up-to-date with latest security patches through proven governance +- No operational overhead for program upgrade management +- Professional maintenance through decentralized governance +- Immediate access to new CCIP features + + + +### Approach 2: Self-Deployed Standard Pools (User-Controlled Upgrades) + +**What it means for upgrades:** + +- **You control the upgrade authority** for your deployed standard pool programs +- **Manual upgrades**: You decide when to apply updates from the Chainlink repository +- **Full control**: You can customize timing, test extensively, and coordinate with your governance + +**Your responsibilities:** + +- Monitor Chainlink repository for new releases +- Test upgrades in development environments +- Execute upgrade transactions using Solana CLI or Anchor tooling +- Coordinate upgrades with your governance/operational processes + +### Approach 3: Custom Token Pools (User-Controlled Upgrades) + +**What it means for upgrades:** + +- **You control the upgrade authority** for your custom pool program +- **Custom development**: You develop your own upgrades and improvements +- **Complete responsibility**: All upgrade planning, development, and execution is your responsibility + +**Your responsibilities:** + +- Develop custom upgrade code +- Ensure CCIP compatibility after upgrades +- Test thoroughly with CCIP Router integration +- Execute upgrade transactions +- Monitor for breaking changes in CCIP protocol updates + +## In-Place Upgrades (Approaches 2 & 3 Only) + + + +When you control the upgrade authority, in-place upgrades provide significant benefits: + +### Benefits of In-Place Upgrades + +1. **Retain Mint Authority (Burn and Mint Pools):** SPL tokens have a single `mint_authority`. When you delegate this authority to a Burn and Mint token pool program, that program holds the exclusive rights to mint tokens. As detailed in the [Mint Authority for BurnMint](/ccip/concepts/cross-chain-token/svm/tokens#mint-authority-for-burnmint) section, in-place upgrades allow you to: - **Maintain Control:** Upgrade the pool code without reassigning the mint authority, which avoids the complexity of modifying the multisig membership or reconfiguring authorities. - **Reduce Overhead:** Avoid manual reassignments, such as adding a new pool to the multisig and removing the old one, thereby simplifying maintenance and reducing the risk of errors. -1. **Preserve User Workflow (All Pools):** On SVM-based blockchains, instructions require specifying all involved accounts, including the token pool program ID. If you redeploy your pool to a new Program ID, users and integrators must update their transaction code to reference it. In-place upgrades keep the original ID so that existing references and account parameters remain valid. +2. **Preserve User Workflow (All Pools):** On SVM-based blockchains, instructions require specifying all involved accounts, including the token pool program ID. If you redeploy your pool to a new Program ID, users and integrators must update their transaction code to reference it. In-place upgrades keep the original ID so that existing references and account parameters remain valid. -## Recommended Practices +## Best Practices for User-Controlled Upgrades -