简介

入门指南

Last updated March 4, 2026

在开始构建之前,请先了解 Genesis 代币发行流程。无论您计划在 Solana 上进行预售、公平发射还是代币销售,本指南解释从 SPL 代币创建到分发的每个步骤。

无代码选项

如果您想不编写代码就发行代币,请使用 Metaplex 代币发射台。以下指南适用于希望构建自定义发射台平台或在自己网站上托管代币销售的开发者。

准备好开始构建了吗?

一旦您了解了流程:

Genesis 流程

每个 Genesis 发行都遵循以下生命周期:

┌─────────────────────────────────────────────────────────────────┐
│ 1. INITIALIZE │
│ Create Genesis Account → Mint token → Hold supply in escrow │
└─────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────┐
│ 2. ADD BUCKETS │
│ Configure distribution (Launch Pool, Presale, Treasury) │
└─────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────┐
│ 3. FINALIZE │
│ Lock configuration → Activate time conditions │
└─────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────┐
│ 4. DEPOSIT PERIOD │
│ Users deposit SOL based on bucket type │
└─────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────┐
│ 5. TRANSITION │
│ Execute end behaviors → Route funds to treasury │
└─────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────┐
│ 6. CLAIM PERIOD │
│ Users claim tokens → Team claims raised funds │
└─────────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────────┐
│ 7. POST-LAUNCH (Optional) │
│ Revoke mint/freeze authorities for security │
└─────────────────────────────────────────────────────────────────┘

第 1 步:Initialize

发生的事情: 您创建一个 Genesis Account,它会铸造您的代币并将全部供应量托管。

您需要提供:

  • 代币元数据(名称、符号、URI)
  • 总供应量(含小数位)
  • 报价代币(通常是 wSOL)

结果: 一个新的 SPL 代币被创建,由 Genesis Account 控制直到分发。

代币供应量规划

SPL 代币默认使用 9 位小数:

期望供应量使用 9 位小数
1 个代币1,000,000,000
1,000 个代币1,000,000,000,000
100 万个代币1,000,000,000,000,000
10 亿个代币1,000,000,000,000,000,000

重要提示: 您的总供应量必须等于所有 Bucket 分配的总和。

第 2 步:添加 Bucket

发生的事情: 您通过添加 Bucket 来配置代币的分发方式。

Bucket 类型

Bucket类型用途
Launch PoolInflow根据存款按比例分发
PresaleInflow有上限的固定价格销售
UnlockedOutflow接收募集资金的国库

配置示例

一个典型的发行使用:

  1. Inflow Bucket(Launch Pool 或 Presale)- 从参与者处收集 SOL
  2. Outflow Bucket(Unlocked)- 接收收集的 SOL 用于团队/国库
Token Allocation Example (1 million tokens):
├── Launch Pool: 800,000 tokens (80%)
└── Unlocked: 200,000 tokens (20% team allocation)
Fund Flow:
Users deposit SOL → Launch Pool → End Behavior → Unlocked Bucket → Team claims

时间条件

每个 Bucket 有四个时间条件:

条件控制内容
Deposit Start用户何时可以开始存款
Deposit End存款何时关闭
Claim Start用户何时可以领取代币
Claim End领取何时关闭

使用 Unix 时间戳(秒,而非毫秒)。

第 3 步:Finalize

发生的事情: 配置永久锁定。发行活动根据时间条件激活。

Finalize 前后对比

之前之后
可以添加 Bucket不能再添加 Bucket
可以修改设置设置已锁定
发行未激活发行已激活(根据时间条件)

Finalize 是不可逆的。 在 Finalize 之前,请仔细检查您的 Bucket 分配、时间条件和结束行为。

第 4 步:存款期

发生的事情: 用户向您的 inflow Bucket 存入 SOL。

  • Launch Pool: 用户存入 SOL,可以支付 0% 费用后提取
  • Presale: 用户以固定价格存入 SOL,有每用户存款上限(每个用户可贡献的最大金额)。预售费用详见 Presale。

第 5 步:Transition

发生的事情: 存款关闭后,执行结束行为以路由资金。

常见的结束行为:将 100% 收集的 SOL 发送到 Unlocked Bucket(国库)。

您可以将资金分配到多个目的地:

  • 80% 到国库
  • 20% 到流动性池 Bucket

第 6 步:领取期

发生的事情:

  • 用户根据其存款领取代币
  • 团队从 Unlocked Bucket 领取募集的 SOL

代币分发

Launch Pool: 用户代币 = (用户存款 / 总存款) × Bucket 分配

Presale: 用户代币 = 用户存款 / 每代币价格

第 7 步:发行后(可选)

发生的事情: 为安全起见撤销代币权限。

  • 铸币权限 - 撤销后将无法再铸造更多代币
  • 冻结权限 - 撤销后代币将永远无法被冻结

这向持有者和 rug checker 表明代币供应量是固定的。

权限撤销是不可逆的。只有在您的发行活动完成后才执行此操作。

常见错误

错误原因解决方案
already finalized尝试在 Finalize 后修改创建新的 Genesis Account
invalid total supplyBucket 分配与供应量不匹配确保分配总和等于总量
time conditions overlap时间戳冲突使用顺序时间窗口
deposit period not active在存款窗口外检查时间戳

规划清单

在开始构建之前:

  • [ ] 决定发行机制(Launch Pool 适合公平发射/众筹,Presale 适合固定价格)
  • [ ] 计算带小数位的总代币供应量
  • [ ] 规划 Bucket 分配(必须等于总供应量)
  • [ ] 设置时间窗口(存款开始/结束,领取开始/结束)
  • [ ] 决定结束行为(资金流向何处?)
  • [ ] 准备代币元数据(名称、符号、图片 URI)

常见问题

初始化 Genesis Account 会创建什么?

它会创建一个带有元数据的新 SPL 代币、一个主协调账户(Genesis Account PDA),并铸造总供应量托管以便分发。

Finalize 后还能添加更多 Bucket 吗?

不能。Finalize 是永久性的。您无法添加更多 Bucket 或更改配置。在 Finalize 之前规划好您完整的 Bucket 结构。

inflow 和 outflow Bucket 有什么区别?

Inflow Bucket 从用户处收集 SOL(Launch Pool、Presale)。Outflow Bucket 通过结束行为接收代币或 SOL——通常是用于团队/国库领取的 Unlocked Bucket。

发行活动何时激活?

Finalize 后,发行活动根据您的 Bucket 时间条件激活。当前时间在 Bucket 的存款窗口内时,用户可以参与。

如何计算带小数位的代币供应量?

将您想要的供应量乘以 10^decimals。对于 100 万个带 9 位小数的代币:1,000,000 × 1,000,000,000 = 1,000,000,000,000,000。

我可以使用 SOL 以外的代币进行存款吗?

可以。将 quoteMint 设置为任何 SPL 代币。但是,wSOL 是以 SOL 计价的发行活动的标准选择。

术语表

术语定义
Genesis Account协调发行并持有代币的 PDA
Inflow Bucket从用户处收集存款的 Bucket
Outflow Bucket通过结束行为接收资金的 Bucket
发行类型发行的底层机制(launchpool 或 presale)。创建后由后端 crank 追溯设置在链上。可通过 SDK 或 REST API 查询
Finalize锁定配置并激活发行
Time Condition控制 Bucket 阶段的 Unix 时间戳
End Behavior存款期结束时的自动操作
Transition执行结束行为的指令
Quote Token用户存入的代币(通常是 wSOL)

下一步

准备好开始构建了吗?选择您的代币发行类型:

  1. 发行代币 - 端到端代币发行指南
  2. JavaScript SDK - 安装和配置
  3. Launch Pool 教程 - 公平发射与按比例分发
  4. Presale 教程 - 固定价格代币销售
Previous
概述