Skip to content

Commit a09ff14

Browse files
committed
update
1 parent fd48e40 commit a09ff14

File tree

5 files changed

+39
-5
lines changed

5 files changed

+39
-5
lines changed

src/content/ccip/api-reference/svm/v1.6.0/router.mdx

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -424,3 +424,37 @@ fn set_pool(
424424

425425
- **Enable Token**: Set `pool_lookuptable` to a valid Address Lookup Table with required pool accounts
426426
- **Disable Token**: Set `pool_lookuptable` to zero address (`Pubkey::default()`) to delist from CCIP
427+
428+
##### Address Lookup Table Requirements
429+
430+
The `pool_lookuptable` must contain exactly these accounts in the specified order for proper CCIP token pool operations:
431+
432+
| Index | Account | Derivation | Description |
433+
| ----- | --------------------------- | ------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------- |
434+
| 0 | **Lookup Table Address** | N/A | The Address Lookup Table itself |
435+
| 1 | **Token Admin Registry** | `["token_admin_registry", mint]` under Router program | Registry PDA for this token |
436+
| 2 | **Pool Program** | N/A | The token pool program ID (e.g., BurnMint or LockRelease Token Pool program) |
437+
| 3 | **Pool Config** | `["ccip_tokenpool_config", mint]` under pool program | Token-specific pool configuration and settings |
438+
| 4 | **Pool Token Account** | ATA of (pool_signer, mint, token_program) | Associated Token Account holding pool's tokens |
439+
| 5 | **Pool Signer** | `["ccip_tokenpool_signer", mint]` under pool program | PDA with authority for token operations |
440+
| 6 | **Token Program** | N/A | SPL Token program (`TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA`) or Token-2022 program (`TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb`) |
441+
| 7 | **Token Mint** | N/A | The SPL token mint address |
442+
| 8 | **Fee Token Config** | `["fee_billing_token_config", mint]` under Fee Quoter | Fee token billing configuration PDA |
443+
| 9 | **CCIP Router Pool Signer** | `["external_token_pools_signer", pool_program]` under Router | Router's signer PDA for the pool |
444+
445+
**Notes:**
446+
447+
- The ALT contains exactly 10 accounts as shown above
448+
- Custom token pools may require additional accounts beyond these core 10
449+
- All PDA derivations must use the correct program IDs
450+
- Pool Token Account must be the proper Associated Token Account for the Pool Signer
451+
- Writable permissions are specified via the `writable_indexes` parameter
452+
453+
**Creating the ALT:**
454+
455+
1. Create a new Address Lookup Table
456+
1. Add accounts in the exact order specified above
457+
1. Ensure all PDA derivations are correct for your specific token and pool program
458+
1. Call `set_pool` with the ALT address and appropriate `writable_indexes`
459+
460+
For PDA derivation examples and account validation details, see the [Token Pool documentation](/ccip/concepts/cross-chain-token/svm/token-pools).

src/content/ccip/concepts/cross-chain-token/svm/architecture.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ The CCIP Router program is central to cross-chain token management. It has two f
8686
1. **Token Administration**
8787

8888
- **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.
89-
- **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.
89+
- **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. For the complete list of required accounts and their exact order, see the [`set_pool` ALT requirements](/ccip/api-reference/svm/v1.6.0/router#address-lookup-table-requirements).
9090
- **Administrator Methods:** The token administrator can register or update cross-chain support for their mint through a sequence of instructions:
9191

9292
1. [`owner_propose_administrator`](/ccip/api-reference/svm/v1.6.0/router#owner_propose_administrator): Initiated by the mint authority to designate a token administrator.

src/content/ccip/concepts/cross-chain-token/svm/integration-guide.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -190,8 +190,8 @@ See [Mint Authority Management](/ccip/concepts/cross-chain-token/svm/token-pools
190190
### Step 5: Create Address Lookup Table (ALT)
191191

192192
- Create an ALT containing all required accounts for your pool operations
193-
- Must include minimum 9 required accounts in specific order
194-
- See [Pool Configuration requirements](/ccip/concepts/cross-chain-token/svm/registration-administration#token-pool-configuration-pool-side) for account list
193+
- Must include required accounts in specific order as detailed in the [`set_pool` API reference](/ccip/api-reference/svm/v1.6.0/router#address-lookup-table-requirements)
194+
- See the complete [ALT requirements table](/ccip/api-reference/svm/v1.6.0/router#address-lookup-table-requirements) for exact account order and derivations
195195

196196
### Step 6: Link Pool to Token Registry
197197

src/content/ccip/concepts/cross-chain-token/svm/registration-administration.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ On SVM-based blockchains (e.g., Solana), the [`set_pool`](/ccip/api-reference/sv
153153
- Resets the old permission bits, then enables the specified "writable indexes."
154154
- This ensures the new token pool has the correct set of PDAs with the correct writable permissions.
155155
1. **Validate or Delist:**
156-
- If the new `pool_lookuptable` is not the zero address, the Router checks that this lookup table has at least the minimal set of addresses required for cross-chain transfers. This includes the token mint, pool program, token program, pool configuration PDA, and any other mandatory accounts specified by the pool implementation. If valid, the token becomes enabled for cross-chain transfers.
156+
- If the new `pool_lookuptable` is not the zero address, the Router checks that this lookup table has at least the minimal set of addresses required for cross-chain transfers. For the complete list of required accounts and their exact order, see the [`set_pool` ALT requirements](/ccip/api-reference/svm/v1.6.0/router#address-lookup-table-requirements). If valid, the token becomes enabled for cross-chain transfers.
157157
- If the `pool_lookuptable` is the zero address, the token is effectively delisted from CCIP, meaning no new cross-chain transfers can occur.
158158

159159
The sequence diagram below explains how the [`set_pool`](/ccip/api-reference/svm/v1.6.0/router#set_pool) instruction updates the `TokenAdminRegistry` PDA and either enables or delists the token for cross-chain transfers.

src/content/ccip/concepts/cross-chain-token/svm/tokens.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ Your token's requirements depend on which token pool type you'll deploy, determi
5454
**Token Requirements:**
5555

5656
- Must support `mint_to` and `burn` instructions
57-
- **Mint authority** must be transferable (directly to pool signer PDA or via SPL Token Multisig). See [BurnMint Pool mint authority configuration](/ccip/concepts/cross-chain-token/svm/token-pools#option-2-multisig-configuration-recommended-for-production) for detailed multisig requirements
57+
- **Mint authority** must be transferable (directly to pool signer PDA or via SPL Token Multisig). See [BurnMint Pool mint authority configuration](/ccip/concepts/cross-chain-token/svm/token-pools#mint-authority-management) for detailed multisig requirements
5858

5959
#### LockRelease Pool
6060

0 commit comments

Comments
 (0)