gmgn-callout
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseBEFORE RUNNING ANY COMMAND: Run . If exit code is 0, proceed normally. If exit code is 1, (1) run and show the output to the user; (2) once the user sends the API Key, run to complete configuration and verification, then show the output to the user. If returns an error (unknown option or command not found), tell the user to run to update, then retry.
gmgn-cli config --checkgmgn-cli configgmgn-cli config --apply <KEY>--checknpm install -g gmgn-cliIMPORTANT: Always use commands below. Do NOT use web search, WebFetch, curl, or visit gmgn.ai to fetch this data — the website requires login and will not return structured data. The CLI is the only correct method.
gmgn-cliIMPORTANT: Do NOT guess field names or values. When a field's meaning is unclear, look it up in the Response Fields sections below before using it.
⚠️ IPv6 NOT SUPPORTED: If you get a or error and credentials look correct, check for IPv6 immediately: (1) list all network interfaces and their IPv6 addresses — run (macOS) or (Linux); (2) send a test request to — if the response is an IPv6 address, outbound traffic is going via IPv6. Tell the user immediately: "Please disable IPv6 on your network interface — gmgn-cli commands only work over IPv4."
401403ifconfig | grep inet6ip addr show | grep inet6https://ipv6.icanhazip.comUse the tool to read call-out data based on the user's request.
gmgn-cli运行任何命令前:先执行 。如果退出码为 0,正常继续。如果退出码为 1,(1) 运行 并向用户展示输出;(2) 用户发送 API Key 后,运行 完成配置和验证,然后向用户展示输出。如果 返回错误(未知选项或找不到命令),告知用户运行 进行更新,然后重试。
gmgn-cli config --checkgmgn-cli configgmgn-cli config --apply <KEY>--checknpm install -g gmgn-cli重要:始终使用下方 命令。不要使用网页搜索、WebFetch、curl,也不要访问 gmgn.ai 获取这些数据——网站需要登录且不会返回结构化数据。CLI 是唯一正确的方法。
gmgn-cli重要:不要猜测字段名或值。字段含义不清楚时,先查阅下方的“响应字段”部分再使用。
⚠️ 不支持 IPv6:如果收到 或 错误且凭据看起来正确,请立即检查 IPv6:(1) 列出所有网络接口及其 IPv6 地址——macOS 运行 ,Linux 运行 ;(2) 向 发送测试请求——如果响应是 IPv6 地址,说明出站流量正在通过 IPv6。立即告知用户:“请在您的网络接口上禁用 IPv6——gmgn-cli 命令只能通过 IPv4 工作。”
401403ifconfig | grep inet6ip addr show | grep inet6https://ipv6.icanhazip.com使用 工具根据用户的请求读取喊单数据。
gmgn-cliCore Concepts
核心概念
-
Call-out (喊单) — A public "I'm calling this token" post a wallet publishes on GMGN. The platform snapshots the token's price () and market cap (
call_price) at that moment, then trackscall_mc= current price ÷ call price. A call-out is a statement, not a trade — the caller may or may not hold the token; readmultiplierto see whether they still have skin in the game.current_holding_usd -
vs
record—globalis the wallet dimension: every call-out made on one wallet, over the last 30 days.recordis the feed dimension: the newest call-outs across the chains you pass, with filters. There is no per-token call-out list; to check one wallet's calls on one token, useglobal.record --token -
Declaration (宣言) — A paid, pinned call-out.restricts
--only-declarationto these. Payment buys visibility, not quality — never treat a declaration as a stronger signal than a normal call-out by itself.global -
— Ratio, not percent.
multiplier= token is 2.35× its call price (+135%).2.35= down 50% since the call.0.5 -
— The token's security state at query time:
is_safe/safe/risk.unknownkeeps--only-safeonly.safe -
— How many later call-outs reference this one (跟喊). High counts mean the call spread, not that it was right.
callback_count -
Pagination —is an opaque token issued by the service. Pass it back verbatim via
next_page_token; do not parse or build it. It expires after 24h — an expired or forged token returns HTTP 400--page-token, start again from the first page. An empty or missinginvalid or expired page_tokenmeans no more data.next_page_token
When to use which sub-command:
- — "这个钱包喊过什么单", "what has this wallet called", "his call-out hit rate", "did this wallet call XX" (add
callout record)--token - — "最新喊单", "who is calling tokens right now", "KOL 在喊什么", "show paid declarations on SOL", "call-outs from wallets still holding > $1000"
callout global
-
喊单(Call-out)——钱包在 GMGN 上发布的公开“我正在喊这个代币”的帖子。平台会在该时刻快照记录代币价格()和市值(
call_price),随后跟踪call_mc= 当前价格 ÷ 喊单时价格。喊单是一种表态,不是交易——喊单者可能持有该代币,也可能并未持有;读取multiplier即可判断其是否仍有持仓。current_holding_usd -
与
record——global是钱包维度:过去 30 天内某个钱包发布的全部喊单。record是信息流维度:你在传入的链上发布的最新喊单,并可应用筛选条件。没有按代币划分的喊单列表;要检查某个钱包对某个代币的喊单,请使用global。record --token -
宣言(Declaration)——一种付费置顶的喊单。会将
--only-declaration限制为仅显示宣言。付费购买的是曝光度,而不是质量——绝不能仅凭一条宣言就将其视为比普通喊单更强的信号。global -
——这是比率,不是百分比。
multiplier表示代币价格是喊单时价格的 2.35 倍(+135%);2.35表示自喊单以来下跌了 50%。0.5 -
——查询时该代币的安全状态:
is_safe/safe/risk。unknown仅保留--only-safe代币。safe -
——后续有多少条喊单引用了当前这条喊单(跟喊)。数量高表示该喊单传播广泛,并不代表判断正确。
callback_count -
分页——是服务签发的不透明令牌。必须通过
next_page_token原样传回;不要解析或自行构造。该令牌在 24 小时后过期——过期或伪造的令牌会返回 HTTP 400--page-token,此时应从第一页重新开始。invalid or expired page_token为空或缺失表示没有更多数据。next_page_token
何时使用哪个子命令:
- ——“这个钱包喊过什么单”、“what has this wallet called”、“his call-out hit rate”、“did this wallet call XX”(添加
callout record)--token - ——“最新喊单”、“who is calling tokens right now”、“KOL 在喊什么”、“show paid declarations on SOL”、“call-outs from wallets still holding > $1000”
callout global
Sub-commands
子命令
| Sub-command | Description |
|---|---|
| One wallet's call-out history over the last 30 days, plus a 7d / 30d summary card |
| Global call-out feed across 1–20 chains, newest first, with KOL / declaration / safe / holding filters |
| 子命令 | 说明 |
|---|---|
| 某个钱包过去 30 天的喊单历史,以及 7d / 30d 汇总卡片 |
| 跨 1–20 条链的全局喊单信息流,按最新优先排序,支持 KOL、宣言、安全状态和持仓筛选 |
Supported Chains
支持的链
solbscethbasemegaethhyperevmtronmonadxlayerrobinhoodarbitrumarcstableThis is wider than the trading chains of other skills — call-outs are read-only data. A token surfaced here on e.g. or may not be queryable with or tradable with .
tronmonadgmgn-tokengmgn-swapsolbscethbasemegaethhyperevmtronmonadxlayerrobinhoodarbitrumarcstable这比其他 skill 支持的交易链范围更广——喊单属于只读数据。例如,此处出现在 或 上的代币,可能无法通过 查询,也无法通过 交易。
tronmonadgmgn-tokengmgn-swapPrerequisites
前置条件
- installed globally — if missing, run:
gmgn-clinpm install -g gmgn-cli - configured in
GMGN_API_KEY— no private key needed~/.config/gmgn/.env - requires the API Key to be bound to a GMGN user account; an unbound key is rejected
callout record
- 已全局安装 ——如果缺失,请运行:
gmgn-clinpm install -g gmgn-cli - 已在 中配置
~/.config/gmgn/.env——不需要私钥GMGN_API_KEY - 要求 API Key 绑定到 GMGN 用户账户;未绑定的 Key 会被拒绝
callout record
Rate Limit Handling
限频处理
Both routes use GMGN's plan-based leaky bucket: Free , Plus , Pro (rate/capacity). Sustained throughput is roughly requests/second, and the max burst is roughly .
5/520/2050/50tier rate ÷ weightfloor(tier capacity ÷ weight)| Command | Route | Weight |
|---|---|---|
| | 3 |
| | 3 |
When a request returns :
429- On , tell the user exactly:
RATE_LIMIT_EXCEEDED. Show this upgrade guidance at most once per user task. Do not repeat it for subsequent已达到当前套餐的限频上限,点击 https://gmgn.ai/ai?chain=bsc&tab=paid_plans 升级套餐,获得更高速率限制responses during the same cooldown.RATE_LIMIT_BANNED - Read from the response headers. It is a Unix timestamp in seconds that marks when the limit is expected to reset.
X-RateLimit-Reset - If the response body contains (e.g.,
reset_at), extract{"code":429,"error":"RATE_LIMIT_BANNED","message":"...","reset_at":1775184222}— it is the Unix timestamp when the ban lifts (typically 5 minutes). Convert to local time and tell the user exactly when they can retry.reset_at - The CLI may wait and retry once automatically when the remaining cooldown is short. If it still fails, stop and tell the user the exact retry time instead of sending more requests.
- For or
RATE_LIMIT_EXCEEDED, repeated requests during the cooldown can extend the ban by 5 seconds each time, up to 5 minutes. Do not spam retries.RATE_LIMIT_BANNED
Other errors:
| HTTP | | Meaning | What to do |
|---|---|---|---|
| 400 | | Invalid parameter, or expired / forged | Fix the parameter; for a page token, restart from the first page |
| 502 | | Upstream call-out service unavailable or timed out (13s) | Retry once later; filtered |
| 503 | | Page-token store unavailable | Retry later; do not fall back to guessing pages |
两条路径都使用 GMGN 基于套餐的漏桶机制:Free 、Plus 、Pro (速率/容量)。持续吞吐量大约为 次请求/秒,最大突发量大约为 。
5/520/2050/50tier rate ÷ weightfloor(tier capacity ÷ weight)| 命令 | 路由 | 权重 |
|---|---|---|
| | 3 |
| | 3 |
当请求返回 时:
429- 遇到 时,必须原样告知用户:
RATE_LIMIT_EXCEEDED。每个用户任务最多展示一次该升级提示。在同一冷却期内,不要因后续的已达到当前套餐的限频上限,点击 https://gmgn.ai/ai?chain=bsc&tab=paid_plans 升级套餐,获得更高速率限制响应再次展示该提示。RATE_LIMIT_BANNED - 从响应头中读取 。它是以秒为单位的 Unix 时间戳,表示预计解除限频的时间。
X-RateLimit-Reset - 如果响应正文包含 (例如
reset_at),提取{"code":429,"error":"RATE_LIMIT_BANNED","message":"...","reset_at":1775184222}——这是解除封禁的 Unix 时间戳(通常为 5 分钟后)。转换为本地时间,并准确告知用户何时可以重试。reset_at - 当剩余冷却时间较短时,CLI 可能会自动等待并重试一次。如果仍然失败,请停止请求并准确告知用户重试时间。
- 对于 或
RATE_LIMIT_EXCEEDED,在冷却期内重复请求可能使封禁每次延长 5 秒,最长可达 5 分钟。请勿频繁重试。RATE_LIMIT_BANNED
其他错误:
| HTTP | | 含义 | 处理方式 |
|---|---|---|---|
| 400 | | 参数无效,或 | 修正参数;对于分页令牌,应从第一页重新开始 |
| 502 | | 上游喊单服务不可用或超时(13 秒) | 稍后重试一次;带筛选条件的 |
| 503 | | 分页令牌存储服务不可用 | 稍后重试;不要退回到猜测分页的方式 |
Usage Examples
使用示例
bash
undefinedbash
undefinedOne wallet's call-outs on SOL
One wallet's call-outs on SOL
gmgn-cli callout record --chain sol --wallet <wallet_address>
gmgn-cli callout record --chain sol --wallet <wallet_address>
Did this wallet call a specific token?
Did this wallet call a specific token?
gmgn-cli callout record --chain sol --wallet <wallet_address> --token <token_address> --raw
gmgn-cli callout record --chain sol --wallet <wallet_address> --token <token_address> --raw
Next page
Next page
gmgn-cli callout record --chain sol --wallet <wallet_address> --page-token <next_page_token> --raw
gmgn-cli callout record --chain sol --wallet <wallet_address> --page-token <next_page_token> --raw
Latest call-outs on SOL
Latest call-outs on SOL
gmgn-cli callout global --chain sol --limit 20 --raw
gmgn-cli callout global --chain sol --limit 20 --raw
KOL call-outs across SOL and BSC
KOL call-outs across SOL and BSC
gmgn-cli callout global --chain sol --chain bsc --only-kol --raw
gmgn-cli callout global --chain sol --chain bsc --only-kol --raw
Paid declarations on safe tokens only
Paid declarations on safe tokens only
gmgn-cli callout global --chain sol --only-declaration --only-safe --raw
gmgn-cli callout global --chain sol --only-declaration --only-safe --raw
Callers still holding between $1,000 and $50,000 of the token
Callers still holding between $1,000 and $50,000 of the token
gmgn-cli callout global --chain sol --min-holding-usd 1000 --max-holding-usd 50000 --raw
undefinedgmgn-cli callout global --chain sol --min-holding-usd 1000 --max-holding-usd 50000 --raw
undefinedcallout record
Options
callout recordcallout record
选项
callout record| Option | Description |
|---|---|
| Required. One chain from Supported Chains |
| Required. Call-out wallet address — returns every call-out made on this wallet |
| Only call-outs on this token |
| Page size, 0–50 (0 = server default) |
| |
| 选项 | 说明 |
|---|---|
| 必填。填写“支持的链”中的任意一条链 |
| 必填。喊单钱包地址——返回该钱包发布的所有喊单 |
| 仅返回与该代币相关的喊单 |
| 每页数量,0–50(0 表示使用服务端默认值) |
| 上一页返回的 |
callout global
Options
callout globalcallout global
选项
callout global| Option | Description |
|---|---|
| Required. Repeatable, 1–20 chains; duplicates are dropped |
| Page size, 0–50 (0 = server default) |
| |
| Only call-outs from KOL wallets |
| Only paid declarations (separate source and cursor) |
| Only tokens whose |
| Caller's current holding lower bound in USD, inclusive, ≥ 0 |
| Caller's current holding upper bound in USD, inclusive, ≥ min |
With any filter set, a page may contain more items than — the server scans in batches and stops on a batch boundary so the cursor never skips records (e.g. can return ~80). Decide whether more pages exist from , never from the item count.
--limit--limit 50next_page_token| 选项 | 说明 |
|---|---|
| 必填。可重复传入,支持 1–20 条链;重复项会被自动移除 |
| 每页数量,0–50(0 表示使用服务端默认值) |
| 上一页返回的 |
| 仅显示来自 KOL 钱包的喊单 |
| 仅显示付费宣言(使用独立的数据源和游标) |
| 仅显示 |
| 喊单者当前持仓的美元下限,包含边界值,≥ 0 |
| 喊单者当前持仓的美元上限,包含边界值,≥ min |
设置任意筛选条件后,一页返回的项目数量可能多于 ——服务端会批量扫描,并在批次边界停止,以确保游标不会跳过记录(例如, 实际可能返回约 80 条)。是否还有下一页应通过 判断,而不能根据项目数量判断。
--limit--limit 50next_page_tokencallout record
Response Fields
callout recordcallout record
响应字段
callout record| Field | Description |
|---|---|
| Array of call-out records (fields below) |
| Cursor for the next page; empty / missing = no more |
| Map keyed |
summary.<7d|30d>total_callsavg_multiplierbest_multiplierhit_2x_counttop_tokens| 字段 | 说明 |
|---|---|
| 喊单记录数组(字段见下文) |
| 下一页的游标;为空或缺失表示没有更多数据 |
| 以 |
summary.<7d|30d>total_callsavg_multiplierbest_multiplierhit_2x_counttop_tokenscallout global
Response Fields
callout globalcallout global
响应字段
callout global| Field | Description |
|---|---|
| Array of call-out records (fields below) |
| Cursor for the next page; empty / missing = no more |
| 字段 | 说明 |
|---|---|
| 喊单记录数组(字段见下文) |
| 下一页的游标;为空或缺失表示没有更多数据 |
Call-out Record Fields
喊单记录字段
Shared by () and (). Fields that are empty may be absent — do not assume every key exists.
call_out_recordsrecordlistglobal| Field | Description |
|---|---|
| Unique call-out ID; sortable by time |
| Chain |
| Wallet the call-out was made on |
| Called token address |
| Token price at call time (decimal string) |
| Token market cap at call time (decimal string) |
| Call-out text as written |
| Translations of the text, keyed by language |
| Call time, Unix milliseconds |
| Current price ÷ call price (string) |
| Token symbol / logo URL |
| Current token price |
| |
| Whether the call-out wallet is a KOL |
| Caller's Twitter / X username |
| Caller's current holding of the token in USD |
| Caller's unrealized P&L on the token in USD |
| Number of later call-outs referencing this one |
token_symbolcall_thesis由 的 和 的 共用。某些字段为空时可能不会返回——不要假定每个键都一定存在。
recordcall_out_recordsgloballist| 字段 | 说明 |
|---|---|
| 唯一喊单 ID,可按时间排序 |
| 所在链 |
| 发布喊单的钱包 |
| 被喊代币的地址 |
| 喊单时的代币价格(小数字符串) |
| 喊单时的代币市值(小数字符串) |
| 喊单发布时的原始文本 |
| 喊单文本的翻译,按语言索引 |
| 喊单时间,Unix 毫秒时间戳 |
| 当前价格 ÷ 喊单时价格(字符串) |
| 代币符号 / Logo URL |
| 当前代币价格 |
| |
| 喊单钱包是否为 KOL |
| 喊单者的 Twitter / X 用户名 |
| 喊单者当前持有该代币的美元价值 |
| 喊单者持有该代币的未实现盈亏(美元) |
| 后续引用该喊单的喊单数量 |
token_symbolcall_thesisOutput Format
输出格式
callout global
— Call-out Feed
callout globalcallout global
——喊单信息流
callout globalPresent newest first. Do not dump raw JSON.
{create_time local} {token_symbol} ({short call_token}) {chain} {multiplier}x since call
by {twitter_username or short call_wallet} [KOL] holding ${current_holding_usd} is_safe={is_safe}
"{call_thesis.source_content, trimmed to one line}"Group by token when several call-outs hit the same ; several independent callers on one token is the signal worth highlighting.
call_token按最新优先的顺序展示。不要直接输出原始 JSON。
{create_time local} {token_symbol} ({short call_token}) {chain} {multiplier}x since call
by {twitter_username or short call_wallet} [KOL] holding ${current_holding_usd} is_safe={is_safe}
"{call_thesis.source_content, trimmed to one line}"当多条喊单指向同一个 时,按代币分组;多个独立喊单者同时看好某个代币,才是值得重点展示的信号。
call_tokencallout record
— Wallet Call-out Report
callout recordcallout record
——钱包喊单报告
callout recordLead with the card, then the list:
summaryCall-out record — {short wallet} on {chain}
7d: {total_calls} calls | avg {avg_multiplier}x | best {best_multiplier}x | {hit_2x_count} hit 2x
30d: {total_calls} calls | avg {avg_multiplier}x | best {best_multiplier}x | {hit_2x_count} hit 2x先展示 卡片,然后展示列表:
summaryCall-out record — {short wallet} on {chain}
7d: {total_calls} calls | avg {avg_multiplier}x | best {best_multiplier}x | {hit_2x_count} hit 2x
30d: {total_calls} calls | avg {avg_multiplier}x | best {best_multiplier}x | {hit_2x_count} hit 2xInterpretation
解读
- Calling ≠ holding. A caller with near 0 on a call that has run up has likely sold into the attention. Flag it.
current_holding_usd - Hit rate beats best call. One 50× among 40 calls says little; over 30d is the track record.
hit_2x_count ÷ total_calls - — say so next to the call; follow up with
is_safe = riskbefore any buy discussion.gmgn-token security - To research a called token, follow . To judge the caller as a trader, use
docs/workflow-token-research.md/gmgn-wallet-analysis.gmgn-wallet-score
- 喊单 ≠ 持仓。 对于已经上涨的喊单,如果喊单者的 接近 0,很可能已经趁热度卖出。应明确标注这一点。
current_holding_usd - 命中率胜过最佳单次喊单。 40 次喊单中有一次达到 50×,说明不了太多问题;30 天的 才能反映真实战绩。
hit_2x_count ÷ total_calls - ——应在喊单旁明确说明;讨论买入前,需进一步执行
is_safe = risk。gmgn-token security - 要研究被喊的代币,请遵循 。要判断喊单者作为交易者的实力,请使用
docs/workflow-token-research.md/gmgn-wallet-analysis。gmgn-wallet-score
Notes
说明
- Both sub-commands use exist auth (API Key only); no private key, no signature
- Read-only: the CLI cannot publish, edit or delete call-outs
- covers the last 30 days only
callout record - Responses never contain GMGN user IDs; user-uploaded avatar URLs that would reveal one are blanked
- Use to get single-line JSON for further processing
--raw
- 两个子命令都使用现有认证机制(仅需 API Key);不需要私钥,也不需要签名
- 只读:CLI 无法发布、编辑或删除喊单
- 仅覆盖过去 30 天的数据
callout record - 响应中绝不包含 GMGN 用户 ID;可能暴露用户 ID 的用户上传头像 URL 会被清空
- 使用 获取单行 JSON,以便进一步处理
--raw