Skip to content

Commit fc0836a

Browse files
committed
revisions
1 parent 02028b6 commit fc0836a

File tree

8 files changed

+39
-35
lines changed

8 files changed

+39
-35
lines changed

content/course/l1-tokenomics/03-multi-chain-ecosystems/02-interchain-token-transfers.mdx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@ icon: Book
99
**Interchain Token Transfers (ICTT)** allow assets, such as ERC-20 or native tokens, to move seamlessly between different Avalanche L1 blockchains. The system consists of a **TokenHome** contract, which lives on the source blockchain, and **TokenRemote** contracts, which reside on other Avalanche L1s that want to receive the asset.
1010

1111
---
12+
![](/course-images/ictt/ictt.png)
1213

14+
---
1315
### Overview of How It Works
1416

1517
- **Home and Remote Contracts**:
@@ -34,9 +36,11 @@ Assets can be transferred in multiple configurations:
3436

3537
This flexibility allows developers to choose how assets are represented and used across multiple Avalanche L1s.
3638

39+
Configurations of the `TokenHome` and `TokenRemote` contracts can be found [here](https://github.com/ava-labs/avalanche-interchain-token-transfer/tree/main/contracts/src)
40+
3741
- **Permissionless Registration**:
3842

39-
ICTT is designed to be permissionless. Anyone can register a compatible **TokenRemote** instance to a **TokenHome** contract, expanding the network of chains that can receive transferred tokens.
43+
ICTT is designed to be permissionless. Anyone can register a compatible `TokenRemote` instance to a `TokenHome` contract, expanding the network of chains that can receive transferred tokens.
4044

4145
- **Customizable Logic**:
4246

content/course/l1-tokenomics/03-multi-chain-ecosystems/03-use-erc20-as-native-token.mdx

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,18 +14,20 @@ In this section, you will learn how to transfer an ERC-20 token from Avalanche
1414
<Step>
1515
### Create a new blockchain and Deploy on Local Network
1616

17-
Use the `avalanche` CLI to create a new blockchain where you will deploy the ERC-20 as the native token.
17+
Use the **Avalanche CLI** to create a new blockchain where you will deploy the ERC-20 as the native token.
1818

1919

2020
```bash
2121
avalanche blockchain create myblockchain
22+
```
23+
```bash
2224
avalanche blockchain deploy myblockchain
2325
```
2426
</Step>
2527
<Step>
2628
### Deploy an ERC-20 Contract on C-Chain
2729

28-
Use the `avalanche` CLI to create a new blockchain where you will deploy the ERC-20 as the native token.
30+
Use the **Avalanche CLI** to create a new blockchain where you will deploy the ERC-20 as the native token.
2931

3032
You will deploy an ERC-20 token on the Avalanche C-Chain, which will later be transferred and used as the native token on the new L1.
3133

@@ -35,7 +37,7 @@ forge create --rpc-url local-c --private-key $PK lib/avalanche-interchain-token-
3537
</Step>
3638
<Step>
3739
### Deploy Interchain Token Transfer Contracts
38-
Set up the home and remote transferer contracts for transferring tokens between the C-Chain and the L".
40+
Set up the home and remote transferer contracts for transferring tokens between the C-Chain and the newly created L1.
3941

4042
- `ERC20TokenHome` Contract on C-Chain
4143
```bash
@@ -96,10 +98,11 @@ cast send --rpc-url local-c --private-key $PK $ERC20_HOME_C_CHAIN "approve(addre
9698
```
9799

98100
- **Add Collateral and Send Tokens**
99-
Add collateral to the transferer contract and send the tokens to the L1.
101+
Add collateral to the transferer contract.
100102
```bash
101103
cast send --rpc-url local-c --private-key $PK $ERC20_HOME_TRANSFERER_C_CHAIN "addCollateral(bytes32, address, uint256)" $L1_BLOCKCHAIN_ID_HEX $NATIVE_TOKEN_REMOTE_L1 100000000000000000000
102104
```
105+
Send tokens to the L1
103106
```bash
104107
cast send --rpc-url local-c --private-key $PK $ERC20_HOME_TRANSFERER_C_CHAIN "send((bytes32, address, address, address, uint256, uint256, uint256, address), uint256)" "(${L1_BLOCKCHAIN_ID_HEX}, ${NATIVE_TOKEN_REMOTE_L1}, ${FUNDED_ADDRESS}, ${ERC20_HOME_C_CHAIN}, 0, 0, 250000, 0x0000000000000000000000000000000000000000)" 1000000000000000000000
105108
```

content/course/l1-tokenomics/03-multi-chain-ecosystems/04-use-any-native-as-native-token.mdx

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ Use the `avalanche` CLI to create a new blockchain where you will deploy the ERC
1818

1919
```bash
2020
avalanche blockchain create myblockchain
21+
```
22+
```bash
2123
avalanche blockchain deploy myblockchain
2224
```
2325

@@ -49,7 +51,7 @@ Now, deploy the Interchain Token Transfer contracts on both the `C-Chain` and th
4951
forge create --rpc-url local-c --private-key $PK lib/avalanche-interchain-token-transfer/contracts/src/TokenHome/NativeTokenHome.sol:NativeTokenHome --constructor-args $TELEPORTER_REGISTRY_C_CHAIN $FUNDED_ADDRESS $WRAPPED_NATIVE_C_CHAIN
5052
```
5153

52-
- `NativeTokenRemote` Contract on C-Chain
54+
- `NativeTokenRemote` Contract on `myblockchain`
5355

5456
```bash
5557
forge create --rpc-url myblockchain --private-key $PK lib/avalanche-interchain-token-transfer/contracts/src/TokenRemote/NativeTokenRemote.sol:NativeTokenRemote --constructor-args "(${TELEPORTER_REGISTRY_L1}, ${FUNDED_ADDRESS}, ${C_CHAIN_BLOCKCHAIN_ID_HEX}, ${NATIVE_HOME_TRANSFERER_C_CHAIN})" "NATV" 700000000000000000000 0 false 0
@@ -67,7 +69,7 @@ export NATIVE_TOKEN_REMOTE_L1=<"Deployed to" address>
6769
<Step>
6870
### Grant Native Minting Rights to NativeTokenRemote
6971

70-
To ensure that the `NativeTokenRemote` contract can mint native tokens on the L1 when ERC-20 tokens are transferred from the `C-Chain`, the contract must be granted **minting rights**. This is done by adding the `NativeTokenRemote contract` address to the `Native Minter Precompile`.
72+
To ensure that the `NativeTokenRemote` contract can mint native tokens on the L1 when ERC-20 tokens are transferred from the `C-Chain`, the contract must be granted **minting rights**. This is done by adding the `NativeTokenRemote` contract address to the `Native Minter Precompile`.
7173

7274
1. You will need to interact with the `Native Minter Precompile`, which resides at a fixed address on all Avalanche L1s:
7375
**Native Minter Precompile Address**: `0x0200000000000000000000000000000000000001`
@@ -111,10 +113,11 @@ cast send --rpc-url local-c --private-key $PK $ERC20_HOME_C_CHAIN "approve(addre
111113
```
112114

113115
- **Add Collateral and Send Tokens**
114-
Add collateral to the transferer contract and send the tokens to the L1.
116+
Add collateral to the transferer contract.
115117
```bash
116118
cast send --rpc-url local-c --private-key $PK $ERC20_HOME_TRANSFERER_C_CHAIN "addCollateral(bytes32, address, uint256)" $L1_BLOCKCHAIN_ID_HEX $NATIVE_TOKEN_REMOTE_L1 100000000000000000000
117119
```
120+
Send tokens to the L1.
118121
```bash
119122
cast send --rpc-url local-c --private-key $PK $ERC20_HOME_TRANSFERER_C_CHAIN "send((bytes32, address, address, address, uint256, uint256, uint256, address), uint256)" "(${L1_BLOCKCHAIN_ID_HEX}, ${NATIVE_TOKEN_REMOTE_L1}, ${FUNDED_ADDRESS}, ${ERC20_HOME_C_CHAIN}, 0, 0, 250000, 0x0000000000000000000000000000000000000000)" 1000000000000000000000
120123
```

content/course/l1-tokenomics/03-multi-chain-ecosystems/06-quiz-time.mdx

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,14 @@ icon: Terminal
88

99
You've made it to the end of the section. Let's check your progress.
1010

11-
<Accordions>
12-
<Accordion title="Question 1">
11+
---
12+
1313
<Quiz quizId="205"/>
14-
</Accordion>
15-
<Accordion title="Question 2">
14+
---
1615
<Quiz quizId="206"/>
17-
</Accordion>
18-
<Accordion title="Question 3">
16+
---
1917
<Quiz quizId="207"/>
20-
</Accordion>
21-
<Accordion title="Question 4">
18+
---
2219
<Quiz quizId="208"/>
23-
</Accordion>
24-
<Accordion title="Question 5">
20+
---
2521
<Quiz quizId="209"/>
26-
</Accordion>
27-
</Accordions>

content/course/l1-tokenomics/index.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ This course is for people with some blockchain knowledge. Check out this [guide]
5353
This course is intended for people with knowledge about Cross-Chain communication protocols, and a solid understanding of the basic concepts of Avalanche. You should be familiar with these concepts:
5454

5555
1. Avalanche Architecture: Be familiar with Avalanche blockchains.
56-
2. Cross-Chain Messages: Know how to communicate 2 Avalanche blockchains with Teleporter.
56+
2. Cross-Chain Messages: Know how to communicate between two Avalanche blockchains with Teleporter.
5757

5858
If some of this is not clear, we strongly recommend taking the Avalanche Fundamentals, Multi-Chain Architecture, and Interchain Messaging courses first.
5959

content/courses.tsx

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ const officialCourses: Course[] = [
6565
icon: <ArrowLeftRight />,
6666
featured: true,
6767
duration: "2.5 hours",
68-
tools: ["Telepoter", "Foundry"],
68+
tools: ["ICM", "Foundry"],
6969
languages: ["Solidity"],
7070
instructors: ["Martin Eckardt", "Andrea Vargas", "Ash", "Owen Wahlgren", "Sarp"]
7171
},
@@ -99,7 +99,18 @@ const officialCourses: Course[] = [
9999
languages: ["Go"],
100100
instructors: ["Martin Eckardt", "Ash"] // + Usman
101101
},
102-
{
102+
{
103+
name:"L1 Tokenomics",
104+
description:"Learn how to design and deploy tokenomics for your Avalanche L1",
105+
slug:"l1-tokenomics",
106+
icon: <Coins />,
107+
duration: "2 hours",
108+
featured: true,
109+
tools: ["Avalanche-CLI", "ICM"],
110+
languages: ["Solidity"],
111+
instructors: ["Sarp"]
112+
},
113+
{
103114
name:"AvaCloud APIs",
104115
description:"Learn how to leverage AvaCloud APIs to build web apps on Avalanche",
105116
slug:"avacloudapis",
@@ -109,18 +120,7 @@ const officialCourses: Course[] = [
109120
tools: ["AvaCloudSDK", "AvaCloud API"],
110121
languages: ["Typescript"],
111122
instructors: ["Owen Wahlgren"]
112-
},
113-
{
114-
name:"L1 Tokenomics",
115-
description:"Learn how to leverage AvaCloud APIs to build web apps on Avalanche",
116-
slug:"l1-tokenomics",
117-
icon: <Coins />,
118-
duration: "2 hour",
119-
featured: true,
120-
tools: ["Avalanche-CLI", "Teleporter", "Solidity"],
121-
languages: ["Solidity"],
122-
instructors: ["Sarp"]
123-
}
123+
}
124124
];
125125

126126
const ecosystemCourses: Course[] = [
4.33 MB
Loading

public/course-images/ictt/ictt.png

292 KB
Loading

0 commit comments

Comments
 (0)