Array
(
[fid] => 6974
[description] => 专注于币圈最新最快资讯,数字货币应用及知识普及
[password] =>
[icon] => b1/common_6974_icon.png
[redirect] =>
[attachextensions] =>
[creditspolicy] => Array
(
[post] => Array
(
[usecustom] => 1
[cycletype] => 1
[cycletime] => 0
[rewardnum] => 5
[extcredits1] => 1
[extcredits2] => 1
[extcredits3] => 0
[extcredits4] => 0
[extcredits5] => 0
[extcredits6] => 0
[extcredits7] => 0
[extcredits8] => 0
[rid] => 1
[fid] => 6974
[rulename] => 发表主题
[action] => post
[fids] => 32,52,67,447,1120,1151,1156,6750,6762,6763,6766,6769,6772,6773,6787,6796,6808,6809,6810,6813,6814,6820,6829,6830,6846,6856,6864,6865,6827,6930,6931,6776,6858,6880,6764,6932,6871,6758,6905,1116,6788,6812,6798,6736,6759,6842,6966,6767,6828,6924,6935,6936,6938,6940,6941,6826,6909,6803,6919,6911,6908,6881,6920,6912,6913,6921,6925,6922,6789,6818,6819,6872,6928,6969,6889,6888,6917,6939,6947,6961,6937,6943,6970,6869,6900,6902,6783,6817,1111,6870,6821,6876,6952,6954,6960,6942,6910,6949,6962,6963,6964,6927,6926,6973,6728,6929,6874,6894,6896,6885,6857,6868,1113,6778,56,6844,6878,6802,6933,6811,6923,6877,6875,6918,6892,6757,6832,6833,6795,6793,6848,6837,6849,6850,6851,6852,6853,6854,6863,6882,6836,6790,6838,6794,6791,6873,555,6934,6958,6944,6945,6907,6779,6886,6950,6904,6956,6862,6957,6855,6955,6959,6914,6965,6971,6972,6953,6976,6824,6815,6891,6866,6979,6977,6765,6903,6948,6980,6981,6983,6799,6982,6951,6984,6975,6895,6845,6879,1121,6974
)
[reply] => Array
(
[usecustom] => 1
[cycletype] => 1
[cycletime] => 0
[rewardnum] => 0
[extcredits1] => 0
[extcredits2] => 1
[extcredits3] => 10
[extcredits4] => 0
[extcredits5] => 0
[extcredits6] => 0
[extcredits7] => 0
[extcredits8] => 0
[rid] => 2
[fid] => 6974
[rulename] => 发表回复
[action] => reply
[fids] => 32,52,67,447,1120,1151,1156,6750,6763,6766,6769,6772,6773,6787,6796,6808,6809,6810,6813,6814,6820,6829,6830,6846,6856,6864,6865,6827,6930,6931,6776,6858,6880,6764,6932,6871,6758,1116,6788,6812,6798,6736,6759,6842,6966,6767,6828,6924,6935,6936,6938,6940,6941,6826,6909,6803,6919,6911,6908,6881,6920,6912,6913,6921,6925,6922,6789,6818,6819,6872,6928,6969,6889,6888,6917,6939,6947,6961,6937,6943,6970,6869,6900,6902,6783,6817,1111,6870,6821,6876,6952,6954,6960,6942,6910,6949,6962,6963,6964,6927,6926,6973,6728,6929,6874,6894,6896,6885,6857,6868,1113,6778,56,6844,6878,6802,6933,6811,6923,6877,6875,6918,6892,6757,6832,6833,6795,6793,6848,6837,6849,6850,6851,6852,6853,6854,6863,6836,6790,6838,6794,6791,6873,555,6934,6958,6944,6945,6907,6779,6886,6950,6904,6956,6862,6957,6855,6955,6959,6914,6965,6971,6972,6953,6976,6824,6815,6891,6866,6979,6977,6765,6903,6948,6980,6981,6983,6799,6982,6951,6984,6975,6895,6845,6879,1121,6974
)
)
[formulaperm] => a:5:{i:0;s:0:"";i:1;s:0:"";s:7:"message";s:0:"";s:5:"medal";N;s:5:"users";s:0:"";}
[moderators] => 实习版主1
[rules] =>
[threadtypes] => Array
(
[required] => 1
[listable] => 1
[prefix] => 1
[types] => Array
(
[1590] => 论坛公告
[1752] => 公司优惠
[1603] => 虚拟币交流
[1753] => 数字钱包
[1754] => 虚拟币存提
[1755] => 交易所
[1655] => 虚拟币资讯
[1756] => 银行卡
[1757] => 第三方支付
[1760] => 币圈大佬
[1758] => 科技前沿
[1759] => 天策嗨聊
[1661] => 入驻合作
)
[icons] => Array
(
[1590] =>
[1752] =>
[1603] =>
[1753] =>
[1754] =>
[1755] =>
[1655] =>
[1756] =>
[1757] =>
[1760] =>
[1758] =>
[1759] =>
[1661] =>
)
[moderators] => Array
(
[1590] => 1
[1752] =>
[1603] =>
[1753] =>
[1754] =>
[1755] =>
[1655] =>
[1756] =>
[1757] =>
[1760] =>
[1758] =>
[1759] => 1
[1661] =>
)
)
[threadsorts] => Array
(
)
[viewperm] => 9 26 22 11 12 13 14 15 27 43 44 60 61 62 63 64 19 31 67 68 69 73 75 76 83 84 87 90 91 92 33 38 57 58 65 66 74 77 79 80 85 86 1 2 3 7 8
[postperm] => 22 11 12 13 14 15 27 43 44 60 61 62 63 64 19 67 68 69 73 75 76 83 84 87 90 91 92 33 38 57 58 65 66 74 77 79 80 85 86 1 2 3
[replyperm] => 26 22 11 12 13 14 15 27 43 44 60 61 62 63 64 19 67 68 69 73 75 76 83 84 87 90 91 92 33 38 57 58 65 66 74 77 79 80 85 86 1 2 3
[getattachperm] => 26 22 11 12 13 14 15 27 43 44 60 61 62 63 64 19 67 68 69 73 75 76 83 84 87 90 91 92 33 38 57 58 65 66 74 77 79 80 85 86 1 2 3
[postattachperm] => 26 22 11 12 13 14 15 27 43 44 60 61 62 63 64 19 67 68 69 73 75 76 83 84 87 90 91 92 33 38 57 58 65 66 74 77 79 80 85 86 1 2 3
[postimageperm] => 26 22 11 12 13 14 15 27 43 44 60 61 62 63 64 19 67 68 69 73 75 76 83 84 87 90 91 92 33 38 57 58 65 66 74 77 79 80 85 86 1 2 3
[spviewperm] =>
[seotitle] =>
[keywords] =>
[seodescription] =>
[supe_pushsetting] =>
[modrecommend] => Array
(
[open] => 0
[num] => 10
[imagenum] => 0
[imagewidth] => 300
[imageheight] => 250
[maxlength] => 0
[cachelife] => 0
[dateline] => 0
)
[threadplugin] => Array
(
)
[replybg] =>
[extra] => a:2:{s:9:"namecolor";s:0:"";s:9:"iconwidth";s:2:"60";}
[jointype] => 0
[gviewperm] => 0
[membernum] => 0
[dateline] => 0
[lastupdate] => 0
[activity] => 0
[founderuid] => 0
[foundername] =>
[banner] =>
[groupnum] => 0
[commentitem] =>
[relatedgroup] =>
[picstyle] => 0
[widthauto] => 0
[noantitheft] => 0
[noforumhidewater] => 0
[noforumrecommend] => 0
[livetid] => 0
[price] => 0
[fup] => 6729
[type] => forum
[name] => 虚拟币讨论大厅
[status] => 1
[displayorder] => 3
[styleid] => 0
[threads] => 29627
[posts] => 482135
[todayposts] => 79
[yesterdayposts] => 116
[rank] => 2
[oldrank] => 2
[lastpost] => 2806217 从长期来看 以太坊这个价位一定套不住(转) 1770915480 人生如赌
[domain] =>
[allowsmilies] => 1
[allowhtml] => 1
[allowbbcode] => 1
[allowimgcode] => 1
[allowmediacode] => 0
[allowanonymous] => 0
[allowpostspecial] => 21
[allowspecialonly] => 0
[allowappend] => 0
[alloweditrules] => 1
[allowfeed] => 0
[allowside] => 0
[recyclebin] => 1
[modnewposts] => 2
[jammer] => 1
[disablewatermark] => 0
[inheritedmod] => 0
[autoclose] => 0
[forumcolumns] => 3
[catforumcolumns] => 0
[threadcaches] => 0
[alloweditpost] => 1
[simple] => 16
[modworks] => 1
[allowglobalstick] => 1
[level] => 0
[commoncredits] => 0
[archive] => 0
[recommend] => 0
[favtimes] => 0
[sharetimes] => 0
[disablethumb] => 0
[disablecollect] => 0
[ismoderator] => 0
[threadtableid] => 0
[allowreply] =>
[allowpost] =>
[allowpostattach] =>
)
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 347 小时
本月在线: 17 小时
|
|
本文章详细的讲解一个最基础的链上加密货币发行过程,期间也需要利用到几个工具(当然本文章最后有一键发行的工具,嫌麻烦的可以直接翻到最后使用工具)标准流程全解析5 }( }0 T: S1 h- ?
以太坊代币(ERC‑20)从开发到上链的最简标准流程(只讲开发与发行)示例使用以太坊兼容链 + Hardhat + OpenZeppelin,先部署到测试网(Sepolia),确认无误后再部署主网。
. S7 W1 \! R3 D! E一、环境准备
8 \. C# A' _' C d- 必备
: v' {2 c6 c5 `; ^3 k- ≥ 18 与 npm
( n& V. K- ^8 d- 一个以太坊钱包(如 MetaMask)
) ]. J) V: O* A1 E$ e% c6 B* t- 测试网 ETH(Sepolia Faucet 获取),主网部署需主网 ETH% E+ v" O& G0 P S" n! E( E$ z
- RPC 节点(Alchemy/Infura/Ankr 等均可)% U- v5 a: |+ ~5 Z. J: J3 [2 c& r
- 新建项目目录,例如:erc20-token,并进入该目录& E$ j; o7 ? R% O/ } r
二、安装与初始化
) ]8 d2 x3 k9 @$ h- 初始化项目% r5 m/ j: s$ W9 U
- npm init -y
! j2 D2 L3 J) Q, k. S- 安装依赖5 T5 E C4 g; ~! X
- 开发工具:npm i -D hardhat @0 u7 C7 F: x/ t' d7 Q% D! k' a6 t
nomicfoundation/hardhat-toolbox dotenv
0 a( t% C, m. ] K; `- 合约库:npm i @openzeppelin/contracts( N' u- ~. y' M: o
- 初始化 Hardhat(可交互,也可手动建文件): U3 Q8 e) k1 o6 t0 @+ G. H: x
- 交互方式:npx hardhat(选择 JavaScript 项目)( B5 a3 ?' N& W" A) O- G
- 或手动创建以下文件(见下一步)0 S) N$ l2 _" h
三、最小化项目结构与配置; g8 Y, G! L8 u) U; d& s4 n
- 新建 (最小可用配置)
) y' p- y/ f, X* V/ B- 内容示例:
w6 P5 F5 ~( c/ \0 F, ?- require("@nomicfoundation/hardhat-toolbox");3 C; g- @2 |5 c4 q* y
- require("dotenv").config();
! H9 d* q9 t! ^# z- = {/ P, C$ b6 W4 w5 ~3 X
solidity: "0.8.24",) W2 Y+ i# |" A# n$ _5 i
networks: {$ m. [8 N7 {6 W& }
sepolia: {
$ o( v4 {; E- Curl: .SEPOLIA_RPC_URL,, d4 A$ M; S% D$ N( V# L7 C( g
accounts: [.PRIVATE_KEY].filter(Boolean),
% P- x# k! j5 j" ]},' p% S& s% j* K2 M' a# T' q. T! M+ j
// mainnet: { url: .MAINNET_RPC_URL, accounts: [.PRIVATE_KEY].filter(Boolean) }9 j; _& G: v' c. i& Z5 e3 [
},
( a( _1 K1 O; metherscan: {
" g2 _9 b: G$ ^* U- XapiKey:
# t9 S9 B- I* b7 n.ETHERSCAN_API_KEY, // 可选:用于合约校验- \; r! p3 V& }1 n4 J" C
},
. @' P8 T' I! \( I! n4 D0 N/ R/ x};
1 {: J$ f* L; N0 c3 a/ W' T- 在项目根目录创建 .env,示例(请替换为你自己的值):
6 d- { K3 q! g. d( @- SEPOLIA_RPC_URL=: j+ g4 i5 M$ K9 q: `. W2 D+ `
- MAINNET_RPC_URL=" a* X$ J" w8 C
- PRIVATE_KEY=你的私钥(0x开头,无空格)6 q4 @3 e: U" v2 R, S" A4 X/ V2 j' J
- ETHERSCAN_API_KEY=你的Etherscan API Key(可选,用于校验)
1 A! [0 e0 H; x) T/ ?) o4 I; a3 B四、编写标准 ERC‑20 合约
, ~3 R5 P. E5 `7 f4 O- 在 contracts/ 目录下创建 ,示例代码:5 L$ M7 V) V/ ~/ `+ O
- pragma solidity ^0.8.20;
, g* f! `. F" x' q& U. ^- import "@openzeppelin/contracts/token/ERC20/";
- l! @# M$ n# C/ X* D+ j- contract MyToken is ERC20 {. E/ w( t8 s& |7 @- b
constructor(uint256 initialSupply) ERC20("MyToken", "MTK") {* {# Y& a9 U- ^% Z, U2 P
_mint(, initialSupply);' W) ]* h. O* Y+ b ]! ^7 _ j
}
. ?) E& @; _, \( u( W. Z0 [} Z1 ?" ?7 [9 V" c
- 说明! ^+ T4 h( H3 d# I$ X
- 名称与符号可自定义(如 "MyToken" / "MTK")
6 |. O0 E$ J- a6 G- initialSupply 为初始发行量(单位为最小单位 Wei,例如 18 位小数的代币需乘 10^18)
& G) `) x! A! V0 j7 D. t) ^; A五、编写部署脚本7 V, F" [# M0 ~, ^# m9 ^/ U& ?
- 在 scripts/ 目录下创建 ,示例代码:
! k N2 P' M8 l2 W/ e/ [' P( m8 Q- const { ethers } = require("hardhat");9 S8 B" Q" M4 g3 g" x2 {; v7 O
- async function main() {
5 b% n/ y8 O8 B3 wconst initialSupply = ("100000000", 18); // 1亿枚,18位小数
( U& Y3 s& F1 d; U( U9 Aconst token = await ("MyToken", [initialSupply]);
: B8 l _; S C8 V0 t6 ?4 ]5 b- ^await ();5 O- V5 z: a! u# {( T7 c
("MyToken deployed to:", );9 ]3 b" I$ u6 T+ U, N7 [
}3 {9 C% g+ r* U4 t5 v$ P. g6 N
- main().catch((error) => {
6 X% k% Y6 {/ U9 f" [6 l2 L(error);- U9 p+ a" U9 K% U& V- u
= 1;
9 c5 n2 U! L$ h ]/ D* k& w});
3 d6 s" I* S% i/ E/ G( \1 D; b' K六、编译与部署到测试网(Sepolia)
: R; U' G* F- X0 d Q- 编译:npx hardhat compile
/ `3 C, M2 U; t6 J- 部署:npx hardhat run scripts/ --network sepolia
. G; Q) @: h/ V- `- 运行成功会输出合约地址(MyToken deployed to: 0x...)
4 d" s- `& G* A- 在区块浏览器()查询该地址,确认合约已上链
6 F6 p0 N( v d" m8 S; y. E( P七、可选:合约源码校验(便于他人查看源码与构造参数)
$ h* X7 q& C7 a) _3 K- 命令:npx hardhat verify --network sepolia 合约地址 初始发行量(Wei)
- N: v9 v8 ?. |0 k- 例:npx hardhat verify --network sepolia 0xYourTokenAddress: e6 h0 i( }& k
100000000000000000000000000
7 R9 l) E# s8 V) M- 注意:这里的初始发行量需与部署脚本中的 initialSupply 完全一致(单位为 Wei)
& D2 [; I- O$ I5 [4 {2 B* g+ u八、在钱包中查看代币
: T/ ~- N" v( W' D, |% O. U1 r- 打开 MetaMask,选择对应网络(Sepolia 或主网)
+ S0 b' i* @+ D" [- 选择“导入代币”,粘贴合约地址,确认代币符号与小数位(18), u* |: H. ?9 c2 v0 `
- 即可在钱包中看到初始发行的代币余额(在部署账户下)! K# E# M5 \) l; A
九、部署到主网(可选), ]2 ~. R% Y' g' m$ S6 {$ u
- 确保 .env 中配置 MAINNET_RPC_URL、PRIVATE_KEY,且钱包内有主网 ETH! |8 O' l" A5 H: e. [
- 命令:npx hardhat run scripts/ --network mainnet1 c* E! F( H/ b+ k# h; R
- 可用 Etherscan 校验:npx hardhat verify --network mainnet 合约地址 初始发行量(Wei). F* s- C& v6 M( U$ Y
十、常见问题与排查
( ?! L2 k: g7 l$ t e& C4 e, {; M- 部署报“insufficient funds for gas”:
$ g; g7 q5 S8 N9 N1 K/ i- 账户没有足够 ETH(测试网/主网),先充值再部署
& ?, A* h( p! r$ t3 R, Z- Ethers 版本导致的方法差异:
" B/ Y5 U. |* ^- 本教程基于 ethers v6(Hardhat Toolbox 默认),使用 % d2 N! a/ O4 e. ]+ v! A
- 私钥与 .env:
- C( c! A" C& h# d$ f) y* J4 A- PRIVATE_KEY 必须以 0x 开头,无引号与空格
8 S% W. f ?6 I- 确保 .gitignore 排除 .env,切勿泄露私钥
# I, K; W2 r; b! Y3 T5 H- 构造参数不一致导致校验失败:
) v1 a$ I! l6 W9 q- verify 命令的初始发行量(Wei)必须与部署时完全一致/ t/ S+ O1 O+ N) w: N
到这里,你已经完成了一个标准 ERC‑20 代币从“编写 → 编译 → 部署 →(可选)校验 → 钱包查看”的完整最小流程。若你需要把名称/符号/小数位做成可配置,或加入可增发/销毁、暂停等扩展权限。
$ A" U. V8 Z& |6 h9 |7 c6 ^2 x下面是一键发币的工具;
' p6 O2 b* @. T0 Q( N6 v6 q这个星辰发币是目前最好用的一个一键发币的工具( ),不需要授权,代码干净;最推荐。7 C0 f. g$ ?1 u3 e+ G
这个dajgh也还可以但是需要授权( ),授权会带来一些安全方面的风险。3 N" p" ]& p, a4 f! {* K
|
|
|
|
|
|
|
|
|
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 10415 小时
本月在线: 15 小时
|
|
|
|
|
|
|
|
|
|
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 19657 小时
本月在线: 26 小时
|
|
|
|
|
|
|
|
|
|
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 3066 小时
本月在线: 16 小时
|
|
|
|
|
|
|
|
|
|
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 13697 小时
本月在线: 23 小时
|
|
|
|
|
|
|
|
|
|
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 137 小时
本月在线: 0 分钟
|
|
|
|
|
|
|
|
|
|
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 11 小时
本月在线: 0 分钟
|
|
|
|
|
|
|
|
|
|
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 19 小时
本月在线: 0 分钟
|
|
|
|
|
|
|
|
|
|
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 45 分钟
本月在线: 0 分钟
|
|
|
|
|
|
|
|
|
|
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 1 小时
本月在线: 0 分钟
|
|
|
|
|
|
|
|
|
|
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 11 小时
本月在线: 0 分钟
|
|
|
|
|
|
|
|
|
|
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 4 小时
本月在线: 0 分钟
|
|
|
|
|
|
|
|
|
|
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 358 小时
本月在线: 0 分钟
|
|
|
|
|
|
|
|
|
|
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 19 小时
本月在线: 0 分钟
|
|
|
|
|
|
|
|
|
|
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 45 分钟
本月在线: 0 分钟
|
|
|
|
|
|
|
|
|
|
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 45 分钟
本月在线: 0 分钟
|
|
|
|
|
|
|
|
|
|
当前离线
经验:
天策币:
活跃币:
策小分:
总在线: 2 小时
本月在线: 0 分钟
|
|
|
|
|
|
|
|
|
|