這邊很多人應該跟當初的我一樣,搞不懂什麼是原生貨幣(Crypto Coin)以及智能合約幣(Token),這邊有個簡單的解釋
在原生鏈上產生的資產即是Crypto Coin,一條鏈上只能有一個Coin,但可以有無數個Token
簡單的舉例
Ethereum的Coin是ETH
BNB Chain的Coin是BNB
BNB Chain有相容於EVM可以發行智能合約,所以在BNB Chain上也有ETH但它在BNB Chain上不屬於Coin而是Token,這是在BNB Chain上的ETH智能合約地址,當然也有其他的鏈上會發行ETH token
HECO ETH
AVAX ETH
TOMO ETH
SOLANA ETH
還有其他鏈上發行的就不一一列舉。
這篇文章講述Coin與Token的差異我覺得講得不錯: Demystified: The Difference Between Crypto Coins And Crypto Tokens. Read Here For Details
有關於鑄造智能合約代幣(Token)的步驟就不多做介紹,網路上很多高手們都有分享教學,可以找一個風格適合自己的去看,或者是可以參考我寫的Medium
BSC testnet create new token
Tron 如何發行TRC20代幣(Shasta testnet)
BSC因為是相容於Ethereum,所以可以參考這一篇,而Tron則是他有自己的錢包而MetaMask沒有,在發行智能合約代幣時,需注意該鏈的錢包以及怎麼去發行智能合約有的並不能在Remix發行。
懶人包:
Remix 新增合約.sol
裡面貼上
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
contract OM is ERC20 {
constructor() ERC20("智能合約代幣名稱", "智能合約代幣縮寫") {
_mint(msg.sender, 100000000 * (10 ** uint256(decimals())));
}
// decimals setting here
function decimals() public view virtual override returns (uint8) {
return 這邊是要設定小數位數;
}
}
範例
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
contract OM is ERC20 {
constructor() ERC20("Optimism", "OP") {
_mint(msg.sender, 100000000 * (10 ** uint256(decimals())));
}
// decimals setting here
function decimals() public view virtual override returns (uint8) {
return 18;
}
}
再來就是