关于 gmgn-cooking
gmgn-cooking 是通过 gmgn-cli 创建代币并查询发行平台统计的技能,面向使用 launchpad 部署代币的用户。它说明了受支持的平台、链和参数,并提示创建操作会部署不可撤销的链上合约并花费资金。
主要功能
- 01在受支持的 launchpad 创建代币
- 02按平台查询代币创建统计
- 03支持多条链及对应的发行平台
- 04设置初始买入、滑点和代币图片
- 05跟踪创建订单并获取合约地址
适用场景
- 01查询各 launchpad 的代币创建数量
- 02在指定平台部署新代币
- 03创建代币时设置初始买入
- 04确认异步创建结果并获取合约地址
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ gmgnai/ gmgn-skills --skill gmgn-cooking安装后在 Claude Code 中输入/gmgn-cooking确认已加载。
详细介绍
运行任何命令前:运行 gmgn-cli config --check。如果退出码为 0,则正常继续。如果退出码为 1,则:(1) 运行 gmgn-cli config 并向用户展示输出;(2) 用户发送 API Key 后,运行 gmgn-cli config --apply <KEY> 完成配置和验证,然后向用户展示输出。如果 --check 返回错误(未知选项或找不到命令),请告知用户运行 npm install -g gmgn-cli 进行更新,然后重试。
重要:始终使用下方的 gmgn-cli 命令。不要使用网页搜索、WebFetch、curl,也不要访问 gmgn.ai——所有代币创建操作都必须通过 CLI 执行。CLI 会自动处理签名和提交。
重要:不要猜测字段名称或取值。当字段含义不明确时,请先查阅下方的 Response Fields 部分。
⚠️ 不支持 IPv6:如果遇到 401 或 403 错误,且凭据看起来正确,请立即检查是否使用 IPv6:(1) 列出所有网络接口及其 IPv6 地址——运行 ifconfig | grep inet6(macOS)或 ip addr show | grep inet6(Linux);(2) 向 https://ipv6.icanhazip.com 发送测试请求——如果响应是 IPv6 地址,则出站流量正在通过 IPv6 传输。请立即告知用户:“请在网络接口上禁用 IPv6——gmgn-cli 命令仅支持 IPv4。”
使用 gmgn-cli 工具在发射平台上创建代币,或查询各发射平台的代币创建统计数据。cooking create 需要私钥(.env 中的 GMGN_PRIVATE_KEY)。
核心概念
-
联合曲线 — 大多数发射平台(Pump.fun、FourMeme、Flap 等)都在内部联合曲线上发行代币。买家进入后,代币价格会上涨。达到阈值后,代币将“毕业”并进入开放式 DEX(例如 SOL 上的 Raydium、BSC 上的 PancakeSwap)。代币创建发生在联合曲线上,而非公开市场。
-
--buy-amt使用人类可读单位 —--buy-amt以完整的原生代币单位表示,而非最小单位。0.01= 0.01 SOL。0.05= 0.05 BNB。执行前,务必向用户确认人类可读的金额。 -
--dex标识符 — 每个发射平台都有传递给--dex的固定标识符。这些不是可自由填写的名称——只能使用“支持的发射平台”表格中列出的标识符。绝不要猜测表格中未列出的--dex值。 -
图像输入 — 代币徽标可以使用 Base64 编码数据(
--image,解码后最大 2MB)或可公开访问的 URL(--image-url)。二选一,不可同时提供。如果用户提供文件路径,请读取文件并将其编码为 Base64,然后传给--image。如果用户提供 URL,直接使用--image-url。 -
通过
order get轮询状态 —cooking create是异步操作。初始响应可能显示pending。使用gmgn-cli order get --chain <chain> --order-id <order_id>进行轮询,直到状态变为confirmed。新代币的合约地址位于order get响应的report.output_token字段中,而不在初始创建响应中。 -
签名认证 —
cooking create需要GMGN_API_KEY和GMGN_PRIVATE_KEY。私钥不会离开本机——CLI 仅使用它进行本地签名。cooking stats使用 exist 认证(仅需 API Key)。 -
滑点 — 初始买入与代币创建在同一笔交易中执行。滑点适用于该笔买入。使用
--slippage(整数,范围为 0–100,例如30= 30%)或--auto-slippage。设置了--buy-amt时,必须提供其中一个。
财务风险提示
此技能会执行真实且不可逆的区块链交易。
- 每条
cooking create命令都会部署链上代币合约并花费真实资金(初始买入金额)。 - 代币部署一旦在链上确认,便无法撤销。
- 仅在愿意承担资金损失的情况下使用此技能。初始买入金额不可退款。
子命令
| 子命令 | 描述 |
|---|---|
cooking stats | 获取按 launchpad 平台分组的代币创建数量统计(需要认证) |
cooking create | 在 launchpad 平台上部署新代币(需要签名认证) |
支持的链
sol / bsc / base / robinhood
各链支持的 Launchpad
| 链 | --dex 值 | 募资代币(--raised-token) |
|---|---|---|
sol | pump、bonk、bags | pump:""(SOL)或 USDC;bonk:""(SOL)或 USD1;bags:仅 ""(SOL) |
bsc | fourmeme、flap | fourmeme:""(BNB)、USD1、USDT;flap:仅 ""(BNB) |
base | klik、clanker | 仅 ""(报价代币固定为 WETH) |
robinhood | trench、pons | 仅 ""(原生代币) |
当用户用俗称提及平台时(例如“pump.fun”“four.meme”),请在运行命令前将其映射为此表中的正确 --dex 标识符。
反 MEV(--anti-mev)仅支持 sol。在 bsc 或 base 上传入该参数会返回 400 错误。
报价代币换算(设置 --raised-token 时)
即使使用 USDC / USD1 / USDT 等报价代币进行募资,--buy-amt 也始终以原生代币单位(SOL / BNB / ETH)计。如果用户提供的是报价代币金额,请先自行换算为原生代币金额,再传入:
buy_amt_in_native = quote_amount × quote_price / native_price
此换算适用于**--buy-amt 以及 --buy-wallets 和 --snip-buy-wallets 中的 buy_amt 字段**。不适用于 --sell-configs(其中的 check_price 始终表示 USD 市值,而非代币金额)。按链的原生精度进行舍入。若 --raised-token 为空或为原生代币,则无需换算。
前置条件
cooking stats:仅需GMGN_API_KEYcooking create:必须在~/.config/gmgn/.env中配置GMGN_API_KEY和GMGN_PRIVATE_KEY。私钥必须对应绑定到 API Key 的钱包。- 全局安装
gmgn-cli— 若未安装,请运行:npm install -g gmgn-cli
重要 — 凭据查找顺序: gmgn-cli 会先加载 ~/.config/gmgn/.env,然后覆盖其中的值:使用当前工作目录中找到的任何 .env 文件(项目级配置优先于全局配置)。如果凭据缺失或不正确,请检查工作区目录中的 .env 是否覆盖了全局配置:
ls -la .env 2>/dev/null && echo "WARNING: local .env is overriding ~/.config/gmgn/.env"
如果本地 .env 存在但缺少 GMGN_API_KEY / GMGN_PRIVATE_KEY,请将它们添加到该文件,或删除该文件以使用全局配置。
速率限制处理
所有烹饪路由都使用 GMGN 基于套餐的漏桶限流:Free 5/5、Plus 20/20、Pro 50/50(速率/容量)。持续吞吐量约为每秒 套餐速率 ÷ 权重 个请求。
| 命令 | 权重 |
|---|---|
cooking create | 5 |
cooking stats | 1 |
请求返回 429 时:
-
遇到
RATE_LIMIT_EXCEEDED时,向用户原样告知:已达到当前套餐的限频上限,点击 https://gmgn.ai/ai?chain=bsc&tab=paid_plans 升级套餐,获得更高速率限制。每个用户任务最多显示一次此升级提示。同一冷却期间后续出现RATE_LIMIT_BANNED时,不要重复提示。 -
从响应标头中读取
X-RateLimit-Reset——这是限制重置时间的 Unix 时间戳。 -
如果响应正文包含
reset_at(例如,{"code":429,"error":"RATE_LIMIT_BANNED","message":"...","reset_at":1775184222}),提取reset_at——这是封禁解除时间的 Unix 时间戳(通常为 5 分钟后)。将其转换为本地时间,并准确告知用户何时可以重试。 -
cooking create是一笔真实交易:收到429后,绝不要循环重试或自动重新提交。请等到重置时间后再重试。 -
对于
RATE_LIMIT_EXCEEDED或RATE_LIMIT_BANNED,冷却期间的重复请求每次都会将封禁时间延长 5 秒,最长可达 5 分钟。 -
遇到
RATE_LIMIT_BANNED_MAX时,由于冷却期间请求仍不断到达,封禁时间已达到 5 分钟上限。请停止此任务中的所有 GMGN 调用(而不只是失败的调用),并准确告知用户重置时间;任何在reset_at之前发出的请求都会使封禁时间再次重置为 5 分钟。 -
遇到
403 PLAN_UPGRADE_REQUIRED时,端点所需的速率限制权重高于用户套餐容量,因此该套餐下永远无法成功——不要重试或等待。告知用户当前套餐无法使用此端点,并显示响应中的upgrade_message(其中包含升级链接https://gmgn.ai/ai?chain=bsc&tab=paid_plans)。
凭证模型
GMGN_PRIVATE_KEY仅用于本地消息签名——私钥绝不会离开本机。CLI 在进程内计算 Ed25519 签名,并仅在X-Signature请求标头中传输 Base64 编码结果。GMGN_API_KEY通过 HTTPS 在X-APIKEY标头中传输。- 两种凭证都不会作为命令行参数传递。
cooking stats 用法
gmgn-cli cooking stats [--raw]
cooking stats 响应字段
| 字段 | 类型 | 描述 |
|---|---|---|
launchpad | string | Launchpad 标识符(例如 pump、bonk、fourmeme) |
token_count | int | 通过 GMGN 在该 Launchpad 上创建的代币数量 |
cooking create 参数
| 参数 | 必填 | 说明 |
|---|---|---|
--chain | 是 | 链:sol / bsc / base / robinhood |
--dex | 是 | Launchpad 平台标识符——请参阅支持的 Launchpad 表。切勿猜测此值。 |
--from | 是 | 钱包地址(必须与 API Key 绑定) |
--name | 是 | 代币全名(例如 Doge Killer)。最多 100 个字符;若包含控制字符或提示词注入格式,则会被拒绝。 |
--symbol | 是 | 代币代码(例如 DOGEK)。最多 100 个字符;若包含控制字符或提示词注入格式,则会被拒绝。 |
--buy-amt | 是 | 初始买入金额,单位为易读的原生代币单位(例如 0.01 = 0.01 SOL)。此处不是最小单位。 |
--image | 否* | 代币 Logo 的 base64 编码数据(解码后最多 2MB)。不能与 --image-url 同时使用。必须提供其中一项。 |
--image-url | 否* | 可公开访问的代币 Logo URL。不能与 --image 同时使用。必须提供其中一项。 |
--slippage | 否* | 滑点容差,取值为 0–100 的整数,例如 30 = 30%。不能与 --auto-slippage 同时使用——二选一。 |
--auto-slippage | 否* | 启用自动滑点。不能与 --slippage 同时使用。 |
--description | 否 | 代币描述 / 项目介绍。最多 500 个字符;若包含控制字符或提示词注入格式,则会被拒绝。 |
--website | 否 | 项目网站 URL。必须是有效的 http(s) URL。 |
--twitter | 否 | Twitter / X URL。必须是有效的 http(s) URL。 |
--telegram | 否 | Telegram 群组 URL。必须是有效的 http(s) URL。 |
--fee | 否 | 基础 Gas / 手续费 |
--priority-fee | 否 | SOL 优先费(仅限 SOL) |
--tip-fee | 否 | 小费(SOL 链上为 SOL / BSC 链上为 BNB;BASE 上会忽略) |
--gas-price | 否 | 以 wei 为单位的 Gas 价格(EVM 链:BSC / BASE) |
--max-fee-per-gas | 否 | 以 wei 为单位的每单位 Gas 最高费用(仅限 EVM) |
--max-priority-fee-per-gas | 否 | 以 wei 为单位的每单位 Gas 最高优先费(仅限 EVM) |
--anti-mev | 否 | 启用反 MEV 保护(仅限 SOL;在 BSC / BASE 上会被拒绝) |
--anti-mev-mode | 否 | 反 MEV 模式:off / normal / secure(仅限 SOL) |
--raised-token | 否 | 募资代币代码。pump:USDC;bonk:USD1;fourmeme:USDT / USD1;省略或设为 "" 表示使用原生代币 |
--dev-wallet-bps | 否 | Dev 钱包手续费分成,单位为基点(100 = 1%) |
--dev-gas | 否 | Dev Gas 金额 |
--dev-priority | 否 | Dev 优先费 |
--dev-tip | 否 | Dev 小费 |
--dev-max-fee-per-gas | 否 | Dev 交易 feeCap,单位为 wei(EVM EIP-1559) |
--approve-vision | 否 | 批准的 Vision 版本:v1 / v2(默认:v2) |
--source | 否 | 流量来源标识符 |
--is-mayhem | 否 | 启用 Mayhem 模式(仅限 Pump.fun) |
--is-cashback | 否 | 启用 Cashback(仅限 Pump.fun) |
--is-buy-back | 否 | 启用 Agent 自动回购(仅限 Pump.fun) |
--pump-fee-share-list | 否 | Pump.fun 手续费分成列表,格式为 JSON 数组:[{"provider":"twitter","username":"<handle>","basic_points":<n>}](仅限 Pump.fun) |
--flap-rate-conf | 否 | Flap 费率配置,格式为 JSON 对象(仅限 Flap) |
--fourmeme-rate-conf | 否 | FourMeme 费率配置,格式为 JSON 对象(仅限 FourMeme) |
--bags-fee-share-list | 否 | BAGS 手续费分成列表,格式为 JSON 数组:[{"provider":"twitter","username":"<handle>","basic_points":<n>}](仅限 BAGS) |
--bonk-model | 否 | Bonk 模型标识符(仅限 bonk DEX) |
--buy-wallets | 否 | 多钱包买入配置,格式为 JSON 数组:[{"from_address":"<addr>","buy_amt":"<n>"}] |
--snip-buy-wallets | 否 | 狙击买入钱包配置,格式为 JSON 数组:[{"from_address":"<addr>","buy_amt":"<n>"}] |
--buy-trade-config | 否 | CondMarket 订单的买入侧交易配置,格式为 JSON(TradeParam)——请参阅高级 API 字段 |
--sell-trade-config | 否 | 自动卖出 / pending_sell 的卖出侧交易配置,格式为 JSON(TradeParam)——请参阅高级 API 字段 |
--sell-configs | 否 | 自动卖出策略列表,格式为 JSON 数组(CookingSellConfig[])——请参阅自动卖出配置 |
* --image 或 --image-url:必须且只能提供一个。--slippage 或 --auto-slippage:必须且只能提供一个。 |
高级 API 字段
结构化标志(--pump-fee-share-list、--bags-fee-share-list、--flap-rate-conf、--fourmeme-rate-conf、--buy-wallets、--snip-buy-wallets、--buy-trade-config、--sell-trade-config、--sell-configs)均接受一个 JSON 字符串。本节说明每个字段的确切 JSON 架构。
平台功能矩阵
各平台支持的高级功能。请勿发送平台不支持的字段。
| 平台 | --dex | 链 | 平台专属字段 | Bundle(--buy-wallets) | 狙击(--snip-buy-wallets) | 返现 | Mayhem |
|---|---|---|---|---|---|---|---|
| Pump.fun | pump | SOL | --pump-fee-share-list / --dev-wallet-bps / --is-buy-back | ✅ 最多 12 个钱包 | ✅ 最多 10 个 | ✅ | ✅ |
| Bonk | bonk | SOL | --bonk-model | ❌ | ✅ 最多 10 个 | ❌ | ❌ |
| BAGS | bags | SOL | --bags-fee-share-list / --dev-wallet-bps | ❌ | ✅ 最多 10 个 | ❌ | ❌ |
| FourMeme | fourmeme | BSC | --fourmeme-rate-conf | ✅ 最多 3 个钱包 | ✅ 最多 10 个 | ❌ | ❌ |
| Flap | flap | BSC | --flap-rate-conf | ❌ | ✅ 最多 10 个 | ❌ | ❌ |
| Klik | klik | Base | — | ❌ | ✅ 最多 10 个 | ❌ | ❌ |
| Clanker | clanker | Base | — | ❌ | ✅ 最多 10 个 | ❌ | ❌ |
--is-cashback/--is-mayhem仅适用于 Pump.fun——其他平台会拒绝这些标志。- Bundle/自动卖出(
--sell-configs)和狙击(--snip-buy-wallets)仅在矩阵标有 ✅ 的平台上可用。
**基点规则:**名称为 *_bps / basic_points 的字段均以基点为单位(100 = 1%)。若某节要求份额总和必须达到指定值,则所有条目相加后必须恰好为 10000(FourMeme 改用整数百分比,合计为 100;见下文)。
**与用户沟通时始终使用百分比,绝不要使用基点。**询问或确认任何份额、费用或分配比例时,都要用百分比表述(例如 “分配给这个钱包的比例是多少?” → 用户回答 "50%")。构建 JSON 时自行转换为字段所需的单位——绝不要向用户索要原始基点数值:
| 用户提供 | *_bps 字段(×100) | FourMeme *_rate 字段(×1) |
|---|---|---|
5% | 500 | 5 |
50% | 5000 | 50 |
100% | 10000 | 100 |
未经用户明确指示,绝不要设置费用分成;这会将代币收入永久分配给列出的账户。
Pump.fun(--dex pump)
is_mayhem、is_cashback、is_buy_back使用对应的 CLI 标志(--is-mayhem、--is-cashback、--is-buy-back)。pump_fee_share_list通过--pump-fee-share-list传递。
| 字段 | CLI 标志 | 描述 |
|---|---|---|
pump_fee_share_list | --pump-fee-share-list <json> | 费用分成列表——参见下方 JSON 架构 |
is_buy_back | --is-buy-back | 启用 Agent 自动回购 |
--pump-fee-share-list 的 JSON 架构——对象数组:
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
provider | string | 是 | solana / twitter / github |
username | string | 是 | 平台用户名;当 provider = solana 时填写 SOL 地址 |
basic_points | int | 是 | 以基点表示的份额——所有条目合计必须为 10000 |
示例:--pump-fee-share-list '[{"provider":"twitter","username":"handle","basic_points":10000}]'
Bonk(--dex bonk)
dev_wallet_bps → --dev-wallet-bps,bonk_model → --bonk-model。没有其他结构化字段。
BAGS(--dex bags)
dev_wallet_bps → --dev-wallet-bps。bags_fee_share_list 通过 --bags-fee-share-list 传递。
--bags-fee-share-list 的 JSON 架构——对象数组:
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
provider | string | 是 | twitter / solana / kick / github |
username | string | 是 | 平台用户名 |
basic_points | int | 是 | 以基点表示的份额——与 dev_wallet_bps 相加后,合计必须为 10000 |
Flap(--dex flap)
flap_rate_conf 通过 --flap-rate-conf 传入。
--flap-rate-conf 的 JSON 架构——单个对象:
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
buy_tax_rate | int | 有条件 | V6 单独买入税率,单位为基点,例如 1% → 100。与 sell_tax_rate 配合使用。 |
sell_tax_rate | int | 有条件 | V6 单独卖出税率,单位为基点 |
tax_rate | int | 有条件 | V5 统一税率,单位为基点,例如 5% → 500。替代 buy_tax_rate + sell_tax_rate 使用。 |
mkt_bps | int | 是 | 税款接收方份额——收取的税款中分配给接收方的部分:当 recipient_type = gift 时发送给 X 账号;当 recipient_type = split 时发送给 split_conf 中的地址。这不是通用的“营销”资金。 |
deflation_bps | int | 是 | 销毁(减少供应量)份额 |
dividend_bps | int | 是 | 分红(持有者奖励)份额 |
lp_bps | int | 是 | 流动性份额 |
recipient_type | string | 是 | gift(将接收方份额发送给 X 账号)/ split(将其发送给指定地址) |
twitter_account | string | 有条件 | 接收方份额的 X / Twitter 账号——当 recipient_type = gift 时必填;使用 split 时留空 ""。 |
split_conf | array | 有条件 | 接收方地址分配列表——当 recipient_type = split 时必填;使用 gift 时留空 []。 |
minimum_share_balance | int | 是 | 符合分红资格的最低持有量——至少 10000 个代币 |
beneficiary | string | 否 | 旧版单一费用接收方地址。使用 recipient_type + twitter_account / split_conf 时省略。 |
split_conf 条目:{ "recipient": "<address>", "bps": <n> }——所有 bps 之和必须为 10000。
- **税款分配:**只要税率 > 0,
mkt_bps + deflation_bps + dividend_bps + lp_bps之和就必须为 10000。mkt_bps是接收方的份额;其余三项分别用于销毁 / 分红 / 流动性。- **接收方路由:**设置
recipient_type = gift+twitter_account,将接收方份额发送给 X 账号;或者设置recipient_type = split+split_conf,将其发送给一个或多个地址。只填写与所选模式对应的字段;另一个字段留空(""/[])。- V5 使用
tax_rate(统一税率);V6 使用buy_tax_rate+sell_tax_rate(单独税率)。- 当
lp_bps > 0时:minimum_share_balance必须 > 0。
FourMeme(--dex fourmeme)
fourmeme_rate_conf 通过 --fourmeme-rate-conf 传入。
fourmeme_user_login_sign、is_approve_allowance、is_raised_swap是 broker/jobs 的内部字段——公共 API 不接受这些字段,因此没有对应的 flag。多报价 raise-token 重试会由服务端自动处理(轮询order get);调用方无需设置这些字段。
--fourmeme-rate-conf 的 JSON 架构——单个对象:
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
fee_plan | bool | 否 | 启用费用计划 |
recipient_address | string | 是 | 费用接收方地址 |
fee_rate | int | 是 | 费用率,例如 5% → 5(整数百分比,不是基点) |
burn_rate | int | 是 | 销毁份额 |
divide_rate | int | 是 | 分红份额 |
liquidity_rate | int | 是 | 流动性份额 |
recipient_rate | int | 是 | 接收方份额 |
min_sharing | int | 是 | 最低分配门槛 |
当
fee_rate > 0时:burn_rate + divide_rate + liquidity_rate + recipient_rate之和必须为 100。当recipient_rate > 0时:min_sharing必须 > 0。
自动卖出配置
sell_configs 通过 --sell-configs 传入,值为 JSON 数组。它会安排条件卖出订单,并在代币上线成功后自动执行。若为不带自动卖出的标准上线,请完全省略此项。
--sell-configs 接受 CookingSellConfig 对象组成的 JSON 数组:
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
sell_type | string | 是 | delay_sell / limit_order |
delay_sec | int64 | 条件必填 | 买入后触发前等待的秒数;当 sell_type = delay_sell 时必填 |
delay_mili_sec | int64 | 否 | 买入后触发前等待的毫秒数;优先级高于 delay_sec |
sell_ratio | string | 是 | 卖出比例——"1" = 100%,"0.5" = 50% |
check_price | string | 条件必填 | 触发卖出的美元计价市值;当 sell_type = limit_order 时必填 |
wallet_addresses | []string | 是 | 此策略适用的钱包(空数组 = 不执行) |
示例:--sell-configs '[{"sell_type":"delay_sell","delay_sec":60,"sell_ratio":"0.5","wallet_addresses":["<addr>"]}]'
这些 CondMarket 订单(滑点、费用、反 MEV)的买入/卖出执行参数可通过 --buy-trade-config / --sell-trade-config(TradeParam JSON)单独调整。它们不会影响主创建交易;若省略,则回退到外层交易标志。
check_price是美元计价的总市值——例如,"50000"表示在市值达到 50,000 美元时触发。wallet_addresses可以混合使用from_address和buy_wallets中的条目。服务会自动为狙击钱包创建signal_cooking,并为主钱包/捆绑钱包创建pending_sell。- 一个钱包可以配置多个策略(例如,延迟卖出 50%,然后限价卖出其余部分);每个策略独立生效。
TradeParam(--buy-trade-config / --sell-trade-config)
这些参数用于调整 CondMarket 买入/卖出订单的执行参数(捆绑买入、狙击买入和自动卖出)。它们不会影响主创建交易(dev 交易使用外层的 --dev-* 标志)。若省略,则回退到外层交易标志。
--buy-trade-config / --sell-trade-config 均接受单个 JSON 对象:
| 字段 | 类型 | 描述 |
|---|---|---|
slippage | number | 滑点;仅在值为真时发送 |
fee | string | 基础 gas/费用;仅在值为真时发送 |
priority_fee | string | 优先费用;仅在值为真时发送 |
tip_fee | string | SOL Jito 小费;仅在值为真时发送 |
gas_price | string | Gas 价格,单位为 wei(EVM);仅在值为真时发送 |
max_priority_fee_per_gas | string | EVM EIP-1559;仅在值为真时发送 |
max_fee_per_gas | string | EVM EIP-1559;仅在值为真时发送 |
auto_slippage | bool | 始终发送 |
is_anti_mev | bool | 始终发送 |
anti_mev_mode | string | off / normal / secure;始终发送 |
示例:--buy-trade-config '{"slippage":50,"auto_slippage":false,"priority_fee":"0.0005","tip_fee":"0.0001","is_anti_mev":true,"anti_mev_mode":"secure"}'
不带
buyConfig的标准上线会发送{"is_anti_mev":false,"anti_mev_mode":"off"},并传入空的buy_wallets列表。
cooking create 响应字段
| 字段 | 类型 | 描述 |
|---|---|---|
status | string | pending / confirmed / failed |
hash | string | 交易哈希(状态为 pending 时可能为空) |
order_id | string | 订单 ID——传给 gmgn-cli order get 以查询最终状态 |
error_code | string | 失败时的错误代码 |
error_status | string | 失败时的错误描述 |
状态轮询
代币创建是异步的。如果初始 cooking create 响应显示 status: pending:
- 每 2 秒使用
gmgn-cli order get轮询一次,最多轮询 30 秒:gmgn-cli order get --chain <chain> --order-id <order_id> - 新代币的合约 / 铸币地址位于
order get响应的report.output_token字段中(仅当state = 30且status = "successful"时存在)——cooking create不会直接返回该地址。 - 当
status为confirmed、failed或expired时,停止轮询。 - 状态为
confirmed时:将output_token显示为代币地址,并附上区块浏览器链接。 - 状态为
failed/expired时:报告error_status,不要自动重试。
使用示例
示例按从简到繁排列:先是基础的单次启动命令,再到完整的端到端配置。以下每个 JSON 参数都是有效的负载格式,可直接复制并按需调整。
# Get token creation statistics per launchpad
gmgn-cli cooking stats
# Create a token on Pump.fun (SOL) — with URL image
gmgn-cli cooking create \
--chain sol \
--dex pump \
--from <wallet_address> \
--name "My Token" \
--symbol MAT \
--buy-amt 0.01 \
--image-url https://example.com/logo.png \
--slippage 30 \
--priority-fee 0.001
# Create a token on FourMeme (BSC) — base64 image + USD1 raise token
gmgn-cli cooking create \
--chain bsc \
--dex fourmeme \
--from <wallet_address> \
--name "Four Token" \
--symbol FOUR \
--buy-amt 0.05 \
--image "$(base64 -i /path/to/logo.png)" \
--auto-slippage \
--raised-token USD1
# Create a token on Bonk (SOL) with anti-MEV
gmgn-cli cooking create \
--chain sol \
--dex bonk \
--from <wallet_address> \
--name "Bonk Token" \
--symbol BNKT \
--buy-amt 0.01 \
--image-url https://example.com/logo.png \
--auto-slippage \
--anti-mev
# Create on Pump.fun with auto-sell: sell 50% 60s after buy
gmgn-cli cooking create \
--chain sol \
--dex pump \
--from <wallet_address> \
--name "My Token" \
--symbol MAT \
--buy-amt 0.01 \
--image-url https://example.com/logo.png \
--auto-slippage \
--sell-configs '[{"sell_type":"delay_sell","delay_sec":60,"sell_ratio":"0.5","wallet_addresses":["<wallet_address>"]}]'
这些示例完整对应实际的端到端启动配置。
Pump.fun(SOL)— Bundle + Sniper + 自动卖出 + Agent 自动回购
gmgn-cli cooking create \
--chain sol \
--dex pump \
--from DevWallet... \
--name "Demo Coin" \
--symbol DEMO \
--buy-amt 0.5 \
--image-url https://cdn.example.com/coin.png \
--twitter https://x.com/handle/status/123 \
--priority-fee 0.0005 \
--tip-fee 0.0001 \
--is-buy-back \
--buy-trade-config '{"slippage":50,"auto_slippage":false,"priority_fee":"0.0005","tip_fee":"0.0001","is_anti_mev":true,"anti_mev_mode":"secure"}' \
--buy-wallets '[{"from_address":"Wallet1...","buy_amt":"0.1"},{"from_address":"Wallet2...","buy_amt":"0.1"}]' \
--snip-buy-wallets '[{"from_address":"Sniper1...","buy_amt":"0.05"}]' \
--sell-configs '[{"sell_type":"delay_sell","sell_ratio":"1","wallet_addresses":["Wallet1..."],"delay_mili_sec":5000}]'
--is-buy-back是 Agent 自动回购模式(后端也会在内部设置 Agent 费用)。--buy-wallets/--snip-buy-wallets中的buy_amt数值以原生 SOL 计。- 在 Pump.fun 上,Bundle 钱包最多 12 个,Sniper 钱包最多 10 个(参见功能矩阵)。
FourMeme(BSC)— 用户费用拆分 + 使用 USDT 作为募集代币
gmgn-cli cooking create \
--chain bsc \
--dex fourmeme \
--from 0xDev... \
--name "Demo BSC" \
--symbol DBSC \
--buy-amt 0.0123 \
--image-url https://cdn.example.com/coin.png \
--raised-token USDT \
--website https://demo.com \
--gas-price 1000000000 \
--auto-slippage \
--fourmeme-rate-conf '{"fee_rate":1,"recipient_rate":50,"burn_rate":20,"divide_rate":20,"liquidity_rate":10,"min_sharing":100000,"recipient_address":"0xDev..."}'
--buy-amt 0.0123已从用户希望使用的 USDT 金额换算为原生 BNB(参见报价代币换算)。构建命令前请先完成换算。--gas-price 1000000000的单位为 wei(1 Gwei)。- 在
--fourmeme-rate-conf中,recipient_rate + burn_rate + divide_rate + liquidity_rate的总和必须为 100。
Flap(BSC)— split 模式:将接收方份额转给 BSC 地址
gmgn-cli cooking create \
--chain bsc \
--dex flap \
--from 0x1f8d977b6843e1bbcb306c4a3664c9fb0277979d \
--name "refer" \
--symbol refer \
--buy-amt 2 \
--image-url https://gmgn.ai/external-res-va/11ad7747dcefcfaae87d3f53a4d7330d_v2l.webp \
--website https://www.refercoins.bond/ \
--twitter https://x.com/referdotfun \
--dev-gas 50000000 \
--auto-slippage \
--flap-rate-conf '{"buy_tax_rate":100,"sell_tax_rate":100,"mkt_bps":10000,"deflation_bps":0,"dividend_bps":0,"lp_bps":0,"minimum_share_balance":10000,"recipient_type":"split","twitter_account":"","split_conf":[{"recipient":"0x1f8d977b6843e1bbcb306c4a3664c9fb0277979d","bps":10000}]}'
recipient_type: split→ 接收方份额转给split_conf中的地址;twitter_account留空为""。mkt_bps:10000表示全部税费(买入 1% / 卖出 1%)都归接收方——deflation_bps + dividend_bps + lp_bps均为0,四项总和仍须为 10000。split_conf中的一个地址获得全部10000bps(100%)。也可使用多个地址,只要其bps总和为10000即可。
Flap(BSC)— gift 模式:将接收方份额转给 X 用户名,并将剩余部分分配给销毁 / 分红 / LP
gmgn-cli cooking create \
--chain bsc \
--dex flap \
--from 0x1f8d977b6843e1bbcb306c4a3664c9fb0277979d \
--name "refer" \
--symbol refer \
--buy-amt 2 \
--image-url https://gmgn.ai/external-res-va/11ad7747dcefcfaae87d3f53a4d7330d_v2l.webp \
--website https://www.refercoins.bond/ \
--twitter https://x.com/referdotfun \
--dev-gas 50000000 \
--auto-slippage \
--flap-rate-conf '{"buy_tax_rate":100,"sell_tax_rate":100,"mkt_bps":5000,"deflation_bps":2700,"dividend_bps":1800,"lp_bps":500,"minimum_share_balance":10000,"recipient_type":"gift","twitter_account":"handleName","split_conf":[]}'
recipient_type: gift→ 接收方份额转给twitter_account中的 X 用户名;split_conf留空为[]。- 税费分配:
mkt_bps:5000(50% 给该用户名)+deflation_bps:2700(27% 销毁)+dividend_bps:1800(18% 分红)+lp_bps:500(5% LP)= 10000。 lp_bps > 0,因此minimum_share_balance必须大于 0(此处为10000)。
输出格式
创建后的回执
轮询确认部署成功后:
✅ Token Created
Token: {--name} ({--symbol})
Address: {report.output_token from order get}
Chain: {chain}
Platform: {--dex}
Tx: {explorer link for hash}
Order ID: {order_id}
区块浏览器链接:
| 链 | 浏览器 |
|---|---|
| sol | https://solscan.io/tx/<hash> |
| bsc | https://bscscan.com/tx/<hash> |
| base | https://basescan.org/tx/<hash> |
启动引导流程
当用户表示想要启动 / 创建 / 部署代币,但尚未提供所有必填信息时,应每次只收集一个必填字段——绝不要在同一个问题中询问多个必填字段。用户应能只回复一个值,而不必填写带标签的列表。
将每个必填字段作为简短、直接的问题提出。等待用户回答后再询问下一个字段。收集完所有必填字段后,再用一个问题询问可选字段。
步骤 1 — 链与平台
询问:“使用哪条链和哪个平台?”
简洁地展示选项:
| 链 | 平台 | --dex |
|---|---|---|
| Solana | Pump.fun | pump |
| Solana | Bonk | bonk |
| Solana | BAGS | bags |
| BSC | FourMeme | fourmeme |
| BSC | Flap | flap |
| Base | Klik | klik |
| Base | Clanker | clanker |
如果用户不确定,推荐:Pump.fun(SOL) 或 FourMeme(BSC)。
所选平台决定了步骤 7 中可用的高级选项(例如 Pump.fun 上的 Mayhem/Cashback/Agent Auto Buyback,以及 BAGS/Flap/FourMeme 上的费用分成)。现在记下平台;暂时不要询问高级选项。
步骤 2 — 代币名称
询问:“代币名称?”
等待用户回复(例如 Doge Killer)。
步骤 3 — 代币符号
询问:“代币代码?”
等待用户回复(例如 DOGEK)。通常为 3–8 个大写字符。
步骤 4 — 徽标
询问:“徽标图片?(文件路径或 URL — 不需要的话可跳过,直接发布)”
- 文件路径 → 静默运行
base64 -i <path>,并将结果传给--image。不要向用户提及“base64”。 - URL → 直接使用
--image-url。 - 跳过 / 无 → 不使用徽标继续操作。请说明,大多数平台都接受这种方式,但会降低曝光度。
步骤 5 — 初始买入金额
询问:“初始买入使用多少 {SOL / BNB / ETH}?”
将用户的回答直接传给 --buy-amt — 单位已经是完整代币单位(例如 0.01 = 0.01 SOL)。不要转换为 lamports 或 wei。
步骤 6 — 可选详情(单个问题)
在一条消息中询问所有可选字段:
“还需要添加哪些可选信息?(不需要的可以跳过)”
- 描述 — 启动平台上展示的一句话介绍
- Twitter — Twitter / X 网址
- Telegram — Telegram 群组网址
- 网站 — 项目网站网址
用户可以只回复已有的信息,也可以回复“跳过”/“都不需要”以继续。
第 7 步 — 平台模式、费用和自动卖出(取决于平台)
收集完基本信息后,只询问一次用户是否希望为所选平台启用高级选项。默认采用普通公平发行——只有用户明确提出要求时才进行配置。根据所选平台调整问题;不要列出不适用的选项。
询问:“想启用任何高级选项,还是使用默认设置发行?(回复 ‘defaults’ 可跳过)”——然后提供相关选项。
围绕用户选择的平台提问——只询问该平台支持的模式。 例如,对于 Pump.fun,具体询问:
- “启用 Cashback 模式?”(
--is-cashback) - “启用 Agent Auto Buyback 模式?”(
--is-buy-back) - “启用 Mayhem 模式?”(
--is-mayhem) - “设置费用分成?”(
--pump-fee-share-list) - “要我记住这些高级设置,以供下次发行使用吗?”——如果用户回答是,请将其保存到记忆中,以便今后发行时预填相同选项。
Bonk / BAGS / Flap / FourMeme 没有模式开关——对于这些平台,跳过模式相关问题,只询问费用分成和自动卖出。
各平台的相关选项:
- Pump.fun 模式 — Mayhem(
--is-mayhem)、Cashback(--is-cashback)、Agent Auto Buyback(--is-buy-back)。 - 费用分成 — Pump.fun(
--pump-fee-share-list)、BAGS(--dev-wallet-bps+--bags-fee-share-list)、Bonk(--dev-wallet-bps)、Flap(--flap-rate-conf)、FourMeme(--fourmeme-rate-conf)。JSON schema 见 Advanced API Fields。提醒用户,代币收入会永久分配给所列账户。 始终让用户以百分比提供份额——由你自行换算为 bps。份额总和必须为 100%。 - 自动卖出 —
--sell-configs(JSON):延迟卖出(买入后 N 秒卖出一定比例)和/或限价卖出(市值达到 USD 目标时卖出)。参见 Auto-Sell Configuration。在执行结果中注明卖出比例和触发条件。
如果用户说“defaults” / “skip” / “none”,则不设置这些选项,直接继续。
第 8 步 — 执行
收集完所有必需信息后,直接执行请求。在执行结果中包含第 7 步的任何高级选项。
执行指南
- [必需] 验证
--dex— 执行前,在 Supported Launchpads 表中查找用户指定的平台,并解析为正确的--dex标识符。切勿猜测或传入自由格式的平台名称。如果表中没有对应的链/平台组合,请告知用户该组合不受支持。 - 滑点要求 — 必须提供
--slippage或--auto-slippage。如果用户未指定,对于波动较大的新代币,建议使用--auto-slippage,或询问用户的偏好。 - 图片处理 — 如果用户提供文件路径,运行
base64 -i <path>,并将结果传给--image。如果用户提供 URL,则使用--image-url。如果两者都未提供,请向用户索要——大多数平台都需要 Logo。 - 费用分成/bps 输入 — 始终以百分比收集份额,然后自行换算为基点(50% →
5000)。切勿询问原始 bps 数值。 - 地址验证 — 提交前验证
--from钱包地址格式:sol:base58,32–44 个字符bsc/base:0x+ 40 位十六进制数字
- 链与钱包兼容性 — SOL 地址与 EVM 链不兼容,反之亦然。如果地址格式与链不匹配,请警告用户并中止。
- 订单轮询 — 执行
cooking create后,如果status为pending,每隔 2 秒轮询一次order get,最多持续 30 秒。代币地址位于report.output_token。只有当status为confirmed时,才报告成功。 - 凭据敏感性 —
GMGN_API_KEY和GMGN_PRIVATE_KEY可用于执行真实交易。切勿记录、显示或泄露这些值。
注意事项
cooking create使用 签名认证(API Key + 签名)——CLI 会自动处理签名。cooking stats使用现有认证(仅 API Key——无需私钥)。- 新代币的铸造地址位于
gmgn-cli order get的report.output_token中,而不在初始cooking create响应中。 - 对任意命令使用
--raw,即可获取单行 JSON,以便进一步处理。
参考资料
| 技能 | 描述 |
|---|---|
| gmgn-swap | 包含用于轮询代币创建状态的 order get 命令 |
| gmgn-token | 代币安全检查、信息、持有者和交易者——适合在发布后监控代币 |
| gmgn-market | 使用 market trenches 跟踪联合曲线进度;使用 market trending 查看代币是否开始受到关注 |
| gmgn-track | 智能资金和 KOL 交易跟踪——监控发布后是否有智能钱包买入代币 |
| gmgn-portfolio | 钱包持仓和盈亏——决定 --buy-amt 前,先检查自己的钱包余额 |