|
1 | 1 | ---
|
2 | 2 | section: ccip
|
3 | 3 | date: Last Modified
|
4 |
| -title: "Cross-Chain Token Setup: BurnMint with Production Multisig Configuration" |
| 4 | +title: "Cross-Chain Token Setup: BurnMint with SPL Token Multisig Tutorial" |
5 | 5 | isIndex: false
|
6 | 6 | metadata:
|
7 |
| - description: "Complete tutorial for implementing bidirectional cross-chain tokens using CCIP Path A with production-ready SPL token multisig configuration. Set up secure BurnMint pools between Solana Devnet and Ethereum Sepolia using self-service registration, multisig governance, and comprehensive security controls for production environments." |
8 |
| - excerpt: "ccip cross-chain token tutorial solana ethereum burnmint pools path-a production multisig spl token multisig governance self-service registration svm evm bidirectional token pools address lookup tables transaction monitoring production security solana devnet ethereum sepolia pool signer pda token admin registry multisig threshold governance" |
| 7 | + description: "Educational tutorial demonstrating how to implement bidirectional cross-chain tokens using CCIP Path A with SPL token multisig concepts. Learn to set up BurnMint pools between Solana Devnet and Ethereum Sepolia while understanding multisig architecture, self-service registration, and preparing for production deployment." |
| 8 | + excerpt: "ccip cross-chain token tutorial solana ethereum burnmint pools path-a multisig educational spl token multisig architecture learning self-service registration svm evm bidirectional token pools address lookup tables transaction monitoring solana devnet ethereum sepolia pool signer pda token admin registry multisig concepts tutorial governance foundation" |
9 | 9 | ---
|
10 | 10 |
|
11 | 11 | import { Aside, ClickToZoom } from "@components"
|
12 | 12 | import { Tabs } from "@components/Tabs"
|
13 | 13 | import CcipCommon from "@features/ccip/CcipCommon.astro"
|
14 | 14 |
|
15 |
| -This comprehensive tutorial demonstrates how to create and configure cross-chain tokens using Chainlink's Cross-Chain Interoperability Protocol (CCIP) between Solana Devnet and Ethereum Sepolia with **production-ready multisig governance**. You will implement the **SPL token multisig** approach within **Path A** from the [CCIP Cross-Chain Token Integration Guide](/ccip/concepts/cross-chain-token/svm/integration-guide#path-a-full-self-service-mint-authority-controlled). |
| 15 | +This educational tutorial demonstrates how to create and configure cross-chain tokens using Chainlink's Cross-Chain Interoperability Protocol (CCIP) between Solana Devnet and Ethereum Sepolia using **SPL token multisig concepts**. You will learn to implement the **SPL token multisig** approach within **Path A** from the [CCIP Cross-Chain Token Integration Guide](/ccip/concepts/cross-chain-token/svm/integration-guide#path-a-full-self-service-mint-authority-controlled). |
16 | 16 |
|
17 | 17 | **Path A Mint Authority Options:**
|
18 | 18 |
|
19 | 19 | - **Direct Transfer**: Transfer mint authority directly to Pool Signer PDA - suitable for development and testing ([see tutorial](/ccip/tutorials/svm/cross-chain-tokens/direct-mint-authority))
|
20 |
| -- **Multisig Setup** (this tutorial): Create SPL token multisig with Pool Signer PDA as a member - recommended for production |
| 20 | +- **Multisig Setup** (this tutorial): Learn SPL token multisig concepts with Pool Signer PDA as a member - foundation for production systems |
21 | 21 |
|
22 |
| -This tutorial focuses on the production-ready multisig approach, implementing proper governance controls while maintaining autonomous cross-chain token transfers through BurnMint token pools. |
| 22 | +This tutorial focuses on demonstrating multisig architecture concepts, helping you understand governance controls while maintaining autonomous cross-chain token transfers through BurnMint token pools. |
23 | 23 |
|
24 |
| -<Aside type="note" title="Production-Ready Approach"> |
25 |
| - **Important**: This tutorial implements **production-ready multisig governance** for mint authority control. This |
26 |
| - approach provides enhanced security through distributed control while enabling autonomous CCIP operations. For |
27 |
| - development and testing environments, consider the simpler [Direct Mint Authority Transfer |
28 |
| - tutorial](/ccip/tutorials/svm/cross-chain-tokens/direct-mint-authority). This tutorial uses M=1 for simplicity, but |
29 |
| - production deployments should consider higher thresholds based on security requirements. |
| 24 | +<Aside type="note" title="Educational Multisig Tutorial"> |
| 25 | + **Important**: This tutorial demonstrates **SPL token multisig concepts** for learning purposes, using simplified |
| 26 | + configurations (1-of-2 with single admin wallet). While the multisig architecture shown provides a foundation for |
| 27 | + production systems, **real production deployments require additional considerations**: proper governance multisig |
| 28 | + (like Squads), higher signature thresholds, and comprehensive security audits. For development and testing |
| 29 | + environments, consider the simpler [Direct Mint Authority Transfer |
| 30 | + tutorial](/ccip/tutorials/svm/cross-chain-tokens/direct-mint-authority). |
30 | 31 | </Aside>
|
31 | 32 |
|
32 | 33 | <Aside type="caution" title="SPL Token Multisig Limitations">
|
@@ -147,8 +148,13 @@ The Pool Signer PDA remains the same in both cases.
|
147 | 148 | In this step, you will use Hardhat tasks to deploy an ERC20 token contract and a corresponding burn and mint token pool on Ethereum Sepolia. The tasks interact with the `BurnMintERC20` contract for token deployment and the `BurnMintTokenPool` contract for pool creation.
|
148 | 149 |
|
149 | 150 | <Aside type="note" title="Terminal Check">
|
150 |
| - **Ensure you are in Terminal 2** (Smart Contract Examples - Hardhat directory): ```bash pwd # Should show: |
151 |
| - .../smart-contract-examples/ccip/cct/hardhat ``` |
| 151 | + **Ensure you are in Terminal 2** (Smart Contract Examples - Hardhat directory): |
| 152 | + |
| 153 | + ```bash |
| 154 | + pwd # Should show: |
| 155 | + .../smart-contract-examples/ccip/cct/hardhat |
| 156 | + ``` |
| 157 | + |
152 | 158 | </Aside>
|
153 | 159 |
|
154 | 160 | ### Deploy ERC20 Token
|
@@ -320,7 +326,13 @@ npx hardhat acceptAdminRole \
|
320 | 326 | In this phase, you will create an SPL token, initialize the CCIP token pool, and complete CCIP registration BEFORE setting up the production multisig. This sequence is critical because the self-service registration requires you to hold the mint authority.
|
321 | 327 |
|
322 | 328 | <Aside type="note" title="Terminal Switch">
|
323 |
| - **Switch to Terminal 1** (Solana Starter Kit directory): ```bash pwd # Should show: .../solana-starter-kit ``` |
| 329 | + **Switch to Terminal 1** (Solana Starter Kit directory): |
| 330 | + |
| 331 | + ```bash |
| 332 | + pwd |
| 333 | + # Should show: .../solana-starter-kit |
| 334 | + ``` |
| 335 | + |
324 | 336 | </Aside>
|
325 | 337 |
|
326 | 338 | ### Create SPL Token
|
@@ -1489,7 +1501,8 @@ Test the complete cross-chain token transfer functionality in both directions us
|
1489 | 1501 | ### Transfer Direction 1: Solana → Ethereum
|
1490 | 1502 |
|
1491 | 1503 | <Aside type="note" title="Terminal Environment">
|
1492 |
| - **Ensure you are in Terminal 1** (Solana Starter Kit directory) for Solana → Ethereum transfers. |
| 1504 | + **Stay in Terminal 1** (Solana Starter Kit directory) for all transfer directions. The Solana Starter Kit supports |
| 1505 | + both Solana → Ethereum and Ethereum → Solana transfers, so you can execute all commands from the same terminal. |
1493 | 1506 | </Aside>
|
1494 | 1507 |
|
1495 | 1508 | #### Prepare for Testing
|
@@ -1720,6 +1733,11 @@ https://explorer.solana.com/tx/5iq6ZVF7TePnaM4SZmo5xFkGpawmqsp6racfECqsbEzeXQJfm
|
1720 | 1733 |
|
1721 | 1734 | ### Transfer Direction 2: Ethereum → Solana
|
1722 | 1735 |
|
| 1736 | +<Aside type="note" title="Terminal Environment"> |
| 1737 | + **Continue in Terminal 1** (Solana Starter Kit directory). No need to switch terminals - the Solana Starter Kit |
| 1738 | + handles Ethereum → Solana transfers as well. |
| 1739 | +</Aside> |
| 1740 | +
|
1723 | 1741 | #### Execute Transfer
|
1724 | 1742 |
|
1725 | 1743 | <Tabs client:visible>
|
@@ -1899,10 +1917,10 @@ solana config get
|
1899 | 1917 |
|
1900 | 1918 | <Aside type="tip" title="Understanding This Demonstration">
|
1901 | 1919 | **What This Proves**: Successfully minting tokens through the multisig confirms that:
|
1902 |
| -- ✅ Mint authority transfer was successful |
1903 |
| -- ✅ The multisig is properly configured (1-of-2 with Pool Signer PDA + Admin Wallet) |
1904 |
| -- ✅ You retain administrative control through your Admin Wallet |
1905 |
| -- ✅ The Pool Signer PDA can autonomously handle CCIP operations |
| 1920 | +- Mint authority transfer was successful |
| 1921 | +- The multisig is properly configured (1-of-2 with Pool Signer PDA + Admin Wallet) |
| 1922 | +- You retain administrative control through your Admin Wallet |
| 1923 | +- The Pool Signer PDA can autonomously handle CCIP operations |
1906 | 1924 |
|
1907 | 1925 | **Key Insight**: Since you're one of the multisig signers, you can still perform administrative mints. The Pool Signer PDA handles CCIP burns/mints automatically, while you handle manual operations.
|
1908 | 1926 |
|
|
0 commit comments