发行类型

Genesis 联合曲线创作者费

Last updated April 9, 2026

创作者费是 Genesis 联合曲线上的可选每次兑换费用,在每次买入和卖出时累积到配置的钱包。

本指南涵盖内容

  • 发行时配置创作者费钱包
  • 将费用重定向到特定钱包或 Agent PDA
  • 检查 bucket 中累积了多少费用
  • 在活跃曲线期间认领累积费用
  • 从 Raydium CPMM 池认领毕业后的费用

摘要

创作者费是 Genesis 联合曲线上的可选每次兑换费用,应用于每次买入和卖出的 SOL 侧。费用累积在 bucket 账户(creatorFeeAccrued)中而非立即转账——通过两个无需许可的指令收取。

  • 配置 — 在曲线创建时的 launch 对象中设置 creatorFeeWallet;省略时默认为发行钱包
  • 累积creatorFeeAccrued 在每次兑换时增加;费用不按次转账
  • 活跃曲线认领claimBondingCurveCreatorFeeV2 在曲线活跃时收取累积费用
  • 毕业后认领claimRaydiumCreatorFeeV2 在曲线毕业后从 Raydium CPMM 池收取费用

关于创作者费如何与兑换定价和协议兑换费交互,请参阅运作原理——手续费结构

快速开始

跳转至: 发行时配置 · 重定向到钱包 · Agent PDA · 与首次购买组合 · 检查累积费用 · 活跃曲线期间认领 · 毕业后认领

  1. 调用 createAndRegisterLaunch 时在 launch 对象中设置 creatorFeeWallet
  2. 发行后读取 bucket.creatorFeeAccrued 监控累积费用
  3. 调用 claimBondingCurveCreatorFeeV2 在曲线活跃时收取费用
  4. 毕业后调用 claimRaydiumCreatorFeeV2 收取 Raydium LP 费用

前置条件

发行时配置创作者费

创作者费在传递给 createAndRegisterLaunch(或 createLaunch)的 launch 对象中配置。creatorFeeWallet 字段是可选的——省略时发行钱包默认接收所有费用。完整发行流程请参阅通过 Metaplex API 发行联合曲线

将创作者费重定向到特定钱包

creatorFeeWallet 设置为任意钱包地址,将累积费用引导到发行钱包以外的地址。

launch-with-creator-fee.ts
1import { createAndRegisterLaunch } from '@metaplex-foundation/genesis/api';
2
3const result = await createAndRegisterLaunch(umi, {}, {
4 wallet: umi.identity.publicKey,
5 launchType: 'bondingCurve',
6 token: {
7 name: 'My Token',
8 symbol: 'MTK',
9 image: 'https://gateway.irys.xyz/your-image-id',
10 },
11 launch: {
12 creatorFeeWallet: 'FeeRecipientWalletAddress...',
13 },
14});

创作者费钱包在曲线创建时设定,曲线上线后无法更改。

Agent 发行——自动 PDA 路由

代表 Metaplex Agent 发行时,创作者费自动路由到 Agent 的 PDA,无需手动设置 creatorFeeWallet。完整 Agent 发行流程——Core execute 封装和 setToken 关联——请参阅创建 Agent 代币

将创作者费与首次购买组合

可以同时配置创作者费钱包和首次购买。首次购买始终免费——不收取协议费或创作者费。之后所有兑换正常收取创作者费。

launch-with-fee-and-first-buy.ts
launch: {
creatorFeeWallet: 'FeeRecipientWalletAddress...',
firstBuyAmount: 0.5, // 0.5 SOL, fee-free for the first buyer
},

检查累积的创作者费

BondingCurveBucketV2 账户上的 creatorFeeAccrued 字段追踪自上次认领以来累积的 SOL 总量。使用 fetchBondingCurveBucketV2 读取:

check-creator-fees.ts
1import {
2 findBondingCurveBucketV2Pda,
3 fetchBondingCurveBucketV2,
4} from '@metaplex-foundation/genesis';
5import { isSome, publicKey } from '@metaplex-foundation/umi';
6
7const genesisAccount = publicKey('YOUR_GENESIS_ACCOUNT_PUBKEY');
8const baseMint = publicKey('TOKEN_MINT_PUBKEY');
9
10const [bucketPda] = findBondingCurveBucketV2Pda(umi, {
11 genesisAccount,
12 bucketIndex: 0,
13});
14
15const bucket = await fetchBondingCurveBucketV2(umi, bucketPda);
16console.log('Creator fees accrued (lamports):', bucket.creatorFeeAccrued);
17console.log('Creator fees claimed to date (lamports):', bucket.creatorFeeClaimed);
18
19// Read the configured creator fee wallet from the bucket extension
20const creatorFeeExt = bucket.extensions.creatorFee;
21const creatorFeeWallet = isSome(creatorFeeExt) ? creatorFeeExt.value.wallet : null;
22console.log('Creator fee wallet:', creatorFeeWallet?.toString() ?? 'none configured');

在活跃曲线期间认领创作者费

claimBondingCurveCreatorFeeV2 将所有累积的创作者费从 bucket 转移到配置的创作者费钱包。可在曲线活跃期间任何时间调用。

claim-creator-fees.ts
1import { claimBondingCurveCreatorFeeV2 } from '@metaplex-foundation/genesis';
2import { isSome } from '@metaplex-foundation/umi';
3
4// Read the creator fee wallet from the bucket extension before claiming.
5const creatorFeeExt = bucket.extensions.creatorFee;
6if (!isSome(creatorFeeExt)) throw new Error('No creator fee configured on this bucket');
7const creatorFeeWallet = creatorFeeExt.value.wallet;
8
9const result = await claimBondingCurveCreatorFeeV2(umi, {
10 genesisAccount,
11 bucket: bucketPda,
12 baseMint,
13 creatorFeeWallet,
14}).sendAndConfirm(umi);
15
16console.log('Creator fees claimed:', result.signature);

claimBondingCurveCreatorFeeV2 是无需许可的——任何钱包都可以调用它,但 SOL 始终发送到配置的创作者费钱包,而非调用方。

毕业后认领创作者费

联合曲线毕业后,流动性迁移到 Raydium CPMM 池,创作者费继续从 LP 交易活动中累积。RaydiumCpmmBucketV2 账户暴露了类似于 BondingCurveBucketV2creatorFeeAccruedcreatorFeeClaimed 字段。使用 claimRaydiumCreatorFeeV2 收取毕业后的费用。

claim-raydium-creator-fees.ts
1import { claimRaydiumCreatorFeeV2 } from '@metaplex-foundation/genesis';
2
3const result = await claimRaydiumCreatorFeeV2(umi, {
4 genesisAccount,
5 // ... Raydium pool accounts
6}).sendAndConfirm(umi);

与联合曲线对应物一样,claimRaydiumCreatorFeeV2 是无需许可的——任何钱包都可以触发认领,但 SOL 始终发送到配置的创作者费钱包。

注意事项

  • 创作者费在每次兑换时累积到 bucket(creatorFeeAccrued),不会立即转账——需显式调用认领指令才能收取;creatorFeeClaimed 追踪迄今累积认领的总额
  • 两个认领指令均无需许可:任何钱包都可以触发,但 SOL 始终流向配置的创作者费钱包,而非调用方
  • creatorFeeWallet 未设置时默认为发行钱包;曲线创建后无法更改
  • 首次购买机制仅对指定的初始购买豁免所有费用(协议费和创作者费);之后所有兑换正常收取创作者费
  • 创作者费应用于每次兑换的 SOL 侧,无论方向(买入或卖出);不与协议兑换费复利
  • 当前费率请参阅 Genesis 协议费用页面
  • 兑换侧上下文——读取 bucket 状态、计算报价和执行交易——请参阅联合曲线兑换集成

FAQ

未设置 creatorFeeWallet 时默认的创作者费钱包是什么?

默认的创作者费钱包是发行钱包——签署 createLaunch 调用的钱包。在 launch 对象中显式设置 creatorFeeWallet 可将费用重定向到任何其他地址。

创作者费是在每次兑换时转账的吗?

不是。创作者费在每次兑换时累积到 bucket(creatorFeeAccrued),不会立即转账。在活跃曲线期间调用 claimBondingCurveCreatorFeeV2 认领,毕业后调用 claimRaydiumCreatorFeeV2 认领。

任何人都可以调用 claimBondingCurveCreatorFeeV2 吗?

是的。claimBondingCurveCreatorFeeV2claimRaydiumCreatorFeeV2 都是无需许可的——任何钱包都可以触发认领,但 SOL 始终发送到配置的创作者费钱包,而非调用方。

首次购买需要支付创作者费吗?

不需要。配置首次购买时,协议兑换费和创作者费均对该一次性初始购买豁免。之后所有兑换正常支付创作者费。

如何检查已累积了多少创作者费?

使用 fetchBondingCurveBucketV2 从 bucket 账户读取 creatorFeeAccrued 字段。详见检查累积的创作者费

发行后可以更改创作者费钱包吗?

不可以。创作者费钱包在曲线创建时设定,曲线上线后无法更改。