Web-3.0(Solidity)ERC-20

🚀 发行自己的加密货币(ERC-20 代币)

你可以使用 Solidity 编写 ERC-20 智能合约 来发行自己的加密货币,然后部署到 以太坊(Ethereum)BNB/Polygon 等 EVM 兼容链

📌 1. ERC-20 代币是什么?

ERC-20 是 以太坊标准代币协议 ,适用于 DApp、DeFi、ICO 等应用

它定义了一些标准函数,例如:

  • totalSupply() 👉 代币总供应量
  • balanceOf(address) 👉 查询地址余额
  • transfer(address, amount) 👉 代币转账
  • approve() & transferFrom() 👉 允许代理转账(如 DEX、质押)

ERC-20 适用于创建自己的 Token,如 USDT、UNI、SHIBA

📌 2. 编写 ERC-20 代币智能合约

创建 MyToken.sol,粘贴以下代码:

复制代码
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";

contract MyToken is ERC20 {
    constructor(uint256 initialSupply) ERC20("MyToken", "MTK") {
        _mint(msg.sender, initialSupply * (10 ** uint256(decimals())));
    }
}

🔹 代码解析

  • import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; 👉 使用 OpenZeppelin ERC-20 标准库
  • ERC20("MyToken", "MTK") 👉 代币名称 MyToken,符号 MTK
  • _mint(msg.sender, initialSupply * (10 ** uint256(decimals()))); 👉 生成 initialSupply 数量的代币

📌 3. 在 Remix IDE 部署(测试网 & 主网)

✅ 方法 1:本地测试(免费)

  1. 打开 Remix IDE
  2. 新建 MyToken.sol,粘贴 Solidity 代码
  3. 编译合约
    • 选择 Solidity Compiler(🛠️)
    • 版本 0.8.0+
    • 点击 Compile
  4. 部署合约
    • 选择 "JavaScript VM (London)"(本地虚拟机,免费)
    • 输入初始供应量 (如 1000000
    • 点击 "Deploy"
  5. 测试代币
    • 运行 totalSupply(),查看总供应量
    • 运行 balanceOf(你的地址),查看余额

本地测试,不消耗 ETH!


✅ 方法 2:以太坊测试网(Goerli / Sepolia)

  1. 获取测试 ETH
  2. MetaMask 连接测试网
    • 切换到 Goerli / Sepolia
  3. 在 Remix 选择 Injected Provider
    • 选择 Injected Provider - MetaMask
    • 点击 Deploy
    • MetaMask 确认交易
  4. 获取代币地址
    • 在 Remix 终端找到合约地址
    • 添加到 MetaMask,查看你的代币

测试网部署,使用测试 ETH,完全免费!


✅ 方法 3:以太坊主网 / BNB / Polygon(需要 ETH 交 Gas 费)

  1. 准备 ETH / BNB / MATIC
    • 以太坊(Ethereum):需要 ETH
    • BNB Chain(BSC):需要 BNB
    • Polygon(MATIC):需要 MATIC
  2. 选择 Injected Provider
    • 连接 MetaMask(主网)
  3. 部署合约
    • Deploy 合约(需要 Gas 费)
    • 交易完成后,查看合约地址
  4. 添加代币到 MetaMask
    • 复制合约地址
    • 在 MetaMask "导入代币" 并粘贴地址
    • 你的代币将出现在 MetaMask 钱包中

适用于正式上线,但需要真 ETH / BNB!

📌 4. 交互 & 空投代币

如果你想给别人发送你的代币 ,可以调用 transfer()

复制代码
contract MyToken is ERC20 {
    constructor(uint256 initialSupply) ERC20("MyToken", "MTK") {
        _mint(msg.sender, initialSupply * (10 ** uint256(decimals())));
    }

    // 空投代币
    function airdrop(address recipient, uint256 amount) public {
        require(balanceOf(msg.sender) >= amount, "Not enough tokens");
        _transfer(msg.sender, recipient, amount);
    }
}

调用:

复制代码
await contract.airdrop("0xRecipientAddress", ethers.utils.parseUnits("100", 18));
方式 环境 是否收费

|--------------------|---------------|----------|
| 本地测试(Remix VM) | JavaScript VM | 免费 ✅ |

|------------------------------|-----|-------------------|
| 以太坊测试网(Goerli / Sepolia) | 测试网 | 免费(需测试 ETH) ✅ |

|---------------------------|-------|----------------------------|
| 以太坊主网 / BSC / Polygon | 真实区块链 | 需要 ETH / BNB 交 Gas 费 ❌ |

相关推荐
元宇宙时间8 小时前
Playfun即将开启大型Web3线上活动,打造沉浸式GameFi体验生态
人工智能·去中心化·区块链
Ashlee_code15 小时前
什么是Web3?金融解决方案
开发语言·金融·架构·eclipse·web3·区块链·php
boyedu16 小时前
物联网技术的关键技术与区块链发展趋势的深度融合分析
物联网·区块链
搞笑的秀儿2 天前
信息新技术
大数据·人工智能·物联网·云计算·区块链
YSGZJJ2 天前
股指期货贴水时,替代现货有啥好处?
区块链
小赖同学啊3 天前
物联网数据安全区块链服务
开发语言·python·区块链
CN-Dust3 天前
【FMZ】数字货币程序化交易简介
区块链
数据与人工智能律师4 天前
数字资产革命中的信任之锚:RWA法律架构的隐形密码
大数据·网络·人工智能·云计算·区块链
小赖同学啊4 天前
区块链技术在物联网(IoT)中的核心应用场景
物联网·区块链
YSGZJJ4 天前
股指期货空头减仓说明了什么?
区块链