You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/content/ccip/tutorials/svm/cross-chain-tokens/direct-mint-authority.mdx
+55-21Lines changed: 55 additions & 21 deletions
Original file line number
Diff line number
Diff line change
@@ -69,11 +69,11 @@ In this tutorial, you will:
69
69
70
70
This tutorial implements the **direct mint authority transfer** variant of **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):
71
71
72
-
-✅ **Mint Authority Control**: You control the token mint authority
73
-
-✅ **Self-Service Registration**: Use `owner_propose_administrator` directly
74
-
-✅ **Self-Serve Mode**: Initialize from Chainlink-deployed programs
75
-
-✅ **BurnMint Pools**: Burn tokens on source, mint on destination
76
-
-✅ **Direct Transfer**: Complete mint authority transferred to Pool Signer PDA
72
+
-**Mint Authority Control**: You control the token mint authority
73
+
-**Self-Service Registration**: Use `owner_propose_administrator` directly
74
+
-**Self-Serve Mode**: Initialize from Chainlink-deployed programs
75
+
-**BurnMint Pools**: Burn tokens on source, mint on destination
76
+
-**Direct Transfer**: Complete mint authority transferred to Pool Signer PDA
77
77
- ⚠️ **Development Focus**: Suitable for development and testing environments
78
78
79
79
</Aside>
@@ -98,8 +98,13 @@ The critical component for this tutorial is the **Chainlink-deployed Pool Progra
98
98
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.
99
99
100
100
<Asidetype="note"title="Terminal Check">
101
-
**Ensure you are in Terminal 2** (Smart Contract Examples - Hardhat directory): ```bash pwd # Should show:
102
-
.../smart-contract-examples/ccip/cct/hardhat ```
101
+
**Ensure you are in Terminal 2** (Smart Contract Examples - Hardhat directory):
102
+
103
+
```bash
104
+
pwd
105
+
# Should show: .../smart-contract-examples/ccip/cct/hardhat
In this step, you will use the `spl-token` CLI tool to create an SPL token mint on Solana Devnet and then use Solana Starter Kit scripts to initialize the CCIP pool configuration and deploy the token pool program.
272
277
273
278
<Asidetype="note"title="Terminal Switch">
274
-
**Switch to Terminal 1** (Solana Starter Kit directory): ```bash pwd # Should show: .../solana-starter-kit ```
279
+
280
+
**Switch to Terminal 1** (Solana Starter Kit directory):
281
+
282
+
```bash
283
+
pwd
284
+
# Should show: .../solana-starter-kit
285
+
```
286
+
275
287
</Aside>
276
288
277
289
### Create SPL Token
@@ -295,8 +307,15 @@ yarn svm:token:create
295
307
```
296
308
297
309
<Asidetype="note"title="Custom Configuration">
298
-
You can customize the token by adding parameters: ```bash yarn svm:token:create \ --name "Cross Chain Token" \
@@ -391,10 +410,7 @@ Mint Address: EL4xtGMgYoYtM4FcFnehiQJZFM2AsfqdFikgZK2y9GCo
391
410
</Fragment>
392
411
</Tabs>
393
412
394
-
<Asidetype="note"title="Token Mint Address">
395
-
Save your token mint address from the output. For this tutorial, we will use:
396
-
`EL4xtGMgYoYtM4FcFnehiQJZFM2AsfqdFikgZK2y9GCo`
397
-
</Aside>
413
+
Save your token mint address from the output.
398
414
399
415
```bash
400
416
# Set your token mint address (replace with your actual mint address)
@@ -1001,8 +1017,13 @@ Last Updated: 1970-01-01T00:00:00.000Z
1001
1017
### Configure Ethereum → Solana
1002
1018
1003
1019
<Aside type="note" title="Terminal Switch">
1004
-
**Switch to Terminal 2** (Smart Contract Examples - Hardhat directory): ```bash pwd # Should show:
1005
-
.../smart-contract-examples/ccip/cct/hardhat ```
1020
+
**Switch to Terminal 2** (Smart Contract Examples - Hardhat directory):
1021
+
1022
+
```bash
1023
+
pwd
1024
+
# Should show: .../smart-contract-examples/ccip/cct/hardhat
1025
+
```
1026
+
1006
1027
</Aside>
1007
1028
1008
1029
First, set the environment variables needed for this terminal session:
@@ -1138,8 +1159,13 @@ Pool registration works differently on each platform:
1138
1159
### Ethereum Sepolia Pool Registration
1139
1160
1140
1161
<Aside type="note" title="Terminal Check">
1141
-
**Ensure you are in Terminal 2** (Smart Contract Examples - Hardhat directory): ```bash pwd # Should show:
1142
-
.../smart-contract-examples/ccip/cct/hardhat ```
1162
+
**Ensure you are in Terminal 2** (Smart Contract Examples - Hardhat directory):
1163
+
1164
+
```bash
1165
+
pwd
1166
+
# Should show: .../smart-contract-examples/ccip/cct/hardhat
1167
+
```
1168
+
1143
1169
</Aside>
1144
1170
1145
1171
In this step, you will use the `setPool` Hardhat task to register the BurnMint token pool with the token in Ethereum's TokenAdminRegistry contract. This functionsets the pool contract address for the token, enabling it for CCIP cross-chain transfers. Only the token administrator can call this function.
@@ -1178,7 +1204,13 @@ npx hardhat setPool \
1178
1204
### Solana Devnet Pool Registration
1179
1205
1180
1206
<Aside type="note" title="Terminal Switch">
1181
-
**Switch to Terminal 1** (Solana Starter Kit directory): ```bash pwd# Should show: .../solana-starter-kit ```
1207
+
**Switch to Terminal 1** (Solana Starter Kit directory):
1208
+
1209
+
```bash
1210
+
pwd
1211
+
# Should show: .../solana-starter-kit
1212
+
```
1213
+
1182
1214
</Aside>
1183
1215
1184
1216
Solana pool registration is a multi-step process: create an Address Lookup Table (ALT), transfer mint authority, and register the pool. The ALT contains all necessary accounts forCCIP operations, and the `set_pool` instruction links this ALT to the tokenin the Router's TokenAdminRegistry.
@@ -1446,7 +1478,8 @@ This phase demonstrates bidirectional token transfers using the burn-mint mechan
1446
1478
### Transfer Direction 1: Solana → Ethereum
1447
1479
1448
1480
<Aside type="note" title="Terminal Environment">
1449
-
**Ensure you are in Terminal 1** (Solana Starter Kit directory) for Solana → Ethereum transfers.
1481
+
**Stay in Terminal 1** (Solana Starter Kit directory) for all transfer directions. The Solana Starter Kit supports
1482
+
both Solana → Ethereum and Ethereum → Solana transfers, so you can execute all commands from the same terminal.
0 commit comments