gmgn-dev-score

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese
BEFORE RUNNING ANY COMMAND: Run
gmgn-cli config --check
. Exit 0 → proceed. Exit 1 → run
gmgn-cli config
, show the output, and once the user sends the API key run
gmgn-cli config --apply <KEY>
and show that output. If
--check
is an unknown option, tell the user to run
npm install -g gmgn-cli
, then retry.
IMPORTANT: Always use the pre-installed
gmgn-cli
binary. Never use web search, WebFetch, curl,
npx
, or gmgn.ai — the site requires login and exposes no structured data.
⚠️ IPv6 IS NOT SUPPORTED. On a
401
/
403
with correct credentials, check
ifconfig | grep inet6
(macOS) or
ip addr show | grep inet6
(Linux) and fetch
https://ipv6.icanhazip.com
. If an IPv6 address comes back, tell the user to disable IPv6 —
gmgn-cli
works over IPv4 only.
运行任何命令之前:执行
gmgn-cli config --check
。返回Exit 0→继续。返回Exit 1→执行
gmgn-cli config
,显示输出结果,待用户发送API密钥后执行
gmgn-cli config --apply <KEY>
并显示该输出结果。如果
--check
是未知选项,请告知用户执行
npm install -g gmgn-cli
,然后重试。
重要提示:始终使用预安装的
gmgn-cli
二进制文件。切勿使用网页搜索、WebFetch、curl、
npx
或gmgn.ai——该网站需要登录,且未公开结构化数据。
⚠️ 不支持IPv6。 如果凭证正确但返回
401
/
403
错误,请执行
ifconfig | grep inet6
(macOS)或
ip addr show | grep inet6
(Linux),并访问
https://ipv6.icanhazip.com
。如果返回IPv6地址,请告知用户禁用IPv6——
gmgn-cli
仅通过IPv4运行。

Run

运行命令

bash
python3 ~/.claude/skills/gmgn-dev-score/dev_score.py <chain> <dev_address> [max_pages]
max_pages
defaults to 25 and only bounds the trade walk; raise it for a dev with hundreds of launches — the JSON says when it truncated. The script prints one JSON object on stdout (progress and rate-limit notes go to stderr). It computes; it writes no report. You write the report, from that object, in the user's language.
Before running:
  • Token address, not a wallet? Resolve the creator first with
    gmgn-cli token info --chain <c> --address <token> --raw
    dev.creator_address
    , and score that. Say which address you resolved to — it is the one thing the report cannot show, and without it the user cannot check that the score applies to their token.
  • Chain not given? Probe candidate chains sequentially with
    gmgn-cli portfolio created-tokens
    — never in parallel, which bans the key. Analyse only the chain with the highest
    open_count
    , and tell the user the other chains were deferred until asked.
  • scored: false
    means do not produce a score.
    reason: index_empty
    → the API reads entirely empty and an empty wallet cannot be told from a degraded index; say both readings and tell the user to re-check in a few minutes. Any other
    reason
    → say the address was not scored and why, and stop.
bash
python3 ~/.claude/skills/gmgn-dev-score/dev_score.py <chain> <dev_address> [max_pages]
max_pages
默认值为25,仅用于限制交易遍历范围;对于拥有数百次发行记录的开发者,可提高该值——JSON会标注何时截断了数据。脚本会在标准输出中打印一个JSON对象(进度和速率限制提示会输出到标准错误)。脚本仅负责计算,不生成报告。由你根据该对象,用用户的语言撰写报告。
运行前注意事项:
  • 提供的是代币地址而非钱包地址? 先通过
    gmgn-cli token info --chain <c> --address <token> --raw
    获取
    dev.creator_address
    来解析出创造者,再为该地址评分。告知用户你解析到的地址——这是报告无法显示的信息,没有它用户无法确认评分是否适用于他们的代币。
  • 未指定链? 依次串行
    gmgn-cli portfolio created-tokens
    探测候选链——切勿并行探测,否则会封禁密钥。仅分析
    open_count
    最高的链,并告知用户其他链需待用户询问时再处理。
  • scored: false
    表示不生成评分
    reason: index_empty
    →API读取结果完全为空,空钱包与索引降级无法区分;请告知用户这两种可能性,并让用户几分钟后重新检查。其他任何
    reason
    →告知用户该地址未被评分及原因,然后停止操作。

What the answer has to contain

回答必须包含的内容

A checklist of what must be said;
## Display Templates
below fixes where each one goes. The phrasing is yours. Every point has to be in there, and each one names the JSON that carries it. The bullets are in section order.
  • The verdict, first.
    score.total
    ,
    score.conduct
    ,
    score.power
    , and
    score.band
    said as a decision, not as a label.
  • The open-dump tier (
    dump_gate.tier
    ) with the sample under it (
    dumps
    of
    coins_with_trades
    ). When
    dump_gate.forced_by
    is set, name what actually fired it — a drained pool is not a sell frequency, and saying "he dumps nearly every time (0/1)" about a dev with zero sells is false.
  • Every adjustment that fired, one per line, saying what it DID. A shrink (
    conduct_terms.shrink_from
    shrink_to
    ) pulled an unproven score toward 60, which here means we cannot tell yet; it is not a fine for a crime. A cap is a withheld good score, not a proven bad one. Name the thin side by
    coins_with_trades
    and
    career_days
    , never by launch count.
  • His best coins (
    top
    , and
    flagship
    ): peak, now, drawdown, holders, pool, tradeable, age. Plus the flagship's position:
    flagship.status
    , and
    exit_rows
    /
    exit_unrecorded
    when the position is closed.
    flagship.holds
    is tri-state —
    null
    means say nothing at all about his bag.
  • What he actually did, all from his own rows:
    his_trades.fastest_first_sell_s
    ,
    median_pull_multiple
    ,
    launches.total
    /
    on_curve
    /
    tradeable
    ,
    liquidity.drained
    /
    partial
    /
    ignored_rows
    .
  • Supply moved to other wallets, whenever
    cross_wallet.moves
    is non-empty: a move is not a dump,
    pending
    is not counted in the dump rate, and unverified moves may be a lock or an exchange. Say so; do not accuse.
  • Bundled buying at open (
    bundler
    ), disclosed and explicitly not scored — the number cannot tell his own alts from a paid bundler or someone else's sniper bot.
  • Coverage, whenever any of these is set:
    coverage.book_truncated
    (the book is a window, not a career — say so before quoting any career-wide claim),
    trade_history_truncated
    /
    unresolved_coins
    (missing rows can only remove dumps, so the rate is a floor and he looks cleaner than he is),
    implausible_peaks
    (name the coin, or a reader who saw it on a chart just finds it missing),
    launches.career_days_is_floor
    .
  • What to do, in four parts: whether to buy; when — and the timing must quote
    fastest_first_sell_s
    , never the median, because the median once advised entering at 2.7 days on a dev whose flagship started selling at 4.6 minutes; where the loss actually comes from; and how much the score can be trusted.
以下是必须提及的内容清单;下方的
## 展示模板
规定了各项内容的位置。措辞由你决定。每一点都必须包含在内,并注明承载该信息的JSON字段。项目按章节顺序排列。
  • 首先给出结论。
    score.total
    score.conduct
    score.power
    score.band
    转化为决策表述,而非单纯的标签。
  • 开盘砸盘等级
    dump_gate.tier
    ),下方附上示例(
    coins_with_trades
    中的
    dumps
    )。当
    dump_gate.forced_by
    有值时,说明实际触发该等级的原因——资金池枯竭不属于抛售频率,若开发者零抛售却表述为“他几乎每次都砸盘(0/1)”是错误的。
  • 每一项触发的调整,每项单独一行,说明调整的具体影响**。缩减值(
    conduct_terms.shrink_from
    shrink_to
    )将未经验证的分数拉向60,这意味着我们目前无法判断,而非对违规行为的处罚。封顶值是暂不给予高分,而非证实存在不良记录。通过
    coins_with_trades
    career_days
    说明数据不足的情况,切勿使用发行次数。
  • 他的最佳代币
    top
    flagship
    ):峰值价格、当前价格、回撤幅度、持有者数量、资金池规模、是否可交易、代币存续时长。加上旗舰代币的持仓状态:
    flagship.status
    ,若持仓已平仓则需说明
    exit_rows
    /
    exit_unrecorded
    flagship.holds
    为三态——
    null
    表示完全不提及他的持仓情况。
  • 他的实际操作,全部来自他的交易记录:
    his_trades.fastest_first_sell_s
    median_pull_multiple
    launches.total
    /
    on_curve
    /
    tradeable
    liquidity.drained
    /
    partial
    /
    ignored_rows
  • 转移至其他钱包的供应量,只要
    cross_wallet.moves
    非空:转移不等同于砸盘,
    pending
    状态不计入砸盘率,未验证的转移可能是锁定或转入交易所。请如实说明,切勿指控。
  • 开盘时的批量购买
    bundler
    ),需披露并明确说明不纳入评分——该数据无法区分是开发者自己的关联账户、付费批量购买者还是他人的狙击机器人。
  • 覆盖范围限制,只要以下任一字段有值:
    coverage.book_truncated
    (记录仅为一个时间窗口,而非完整职业生涯——在引用任何职业生涯相关结论前需说明这一点)、
    trade_history_truncated
    /
    unresolved_coins
    (缺失的记录只会减少砸盘次数,因此砸盘率是下限,实际情况可能更糟)、
    implausible_peaks
    (注明对应的代币,否则看到图表的读者会发现数据缺失)、
    launches.career_days_is_floor
  • 操作建议,分为四部分:是否买入;买入时机——必须引用
    fastest_first_sell_s
    ,而非中位数,因为曾出现中位数建议在2.7天后入场,但开发者的旗舰代币在4.6分钟就开始抛售的情况;损失的实际来源;评分的可信度。

Display Templates

展示模板

The shape is fixed; the wording inside it is yours. Section names are given in English so you translate them into the user's language — do not print them as-is, and do not print a JSON key name.
Title line:
## Dev score · <dev address, first 10 and last 4 chars> · <CHAIN>
. Sections below use
###
.
#SectionBlockOmit only when
1(no heading) the verdicttwo lines:
TOTAL / 100
+ the band, then CONDUCT and POWER
never
2Open-dump recordprose, at most three short paragraphsnever
3What moved the scorebullets, one adjustment per bulletnever
4His best coinsthe coin's full contract address, then one table — peak, now, drawdown, holders, pool, tradeable, age — then prose for the positionnever
5What he actually didbulletsnever
6Supply moved to other walletsbullets
cross_wallet.moves
is empty — then state it in one line inside §5 instead
7Bundled buying at openone or two lines
bundler.median
is null
8Coverage limitsbulletsnothing named in the coverage checklist bullet is set
9What to dofour labelled parts, in this order: buy or not · when · where the loss comes from · how far the score can be trustednever
Never reorder, never merge, never invent a tenth section. Sections 1–5 and 9 always appear.
Formatting, all of it fixed:
  • Money uses the plain ascii dollar sign, with thousands separators and the magnitude word the user's language uses. The fullwidth sign exists only to stop this file's own text being eaten by argument substitution — it must never reach the reader.
  • Percentages carry one decimal. A share that the JSON gives as a fraction is printed as a percentage.
  • Seconds, minutes, hours, days: pick the unit that makes the number readable, and say the unit.
  • No emoji, no box drawing, no ASCII art, no column padding. The output is rendered markdown, not a fixed-width terminal block.
  • Bold is for the verdict number, the band, and the label of each part of §9. Nowhere else.
  • Tables only where the table above says so; §2, §7 and §9 are prose.
结构固定;内部措辞由你决定。章节名称以英文给出,请翻译成用户的语言——不要直接打印英文名称,也不要打印JSON键名。
标题行:
## 开发者评分 · <开发者地址,前10位和后4位字符> · <链名称>
。下方章节使用
###
#章节格式仅在以下情况省略
1(无标题)结论两行:
总分 / 100
+ 评级,然后是行为分和能力分
从不
2开盘砸盘记录说明文字,最多三段简短内容从不
3评分调整因素项目符号,每项调整对应一个项目符号从不
4他的最佳代币代币完整合约地址,然后是一个表格——峰值价格、当前价格、回撤幅度、持有者数量、资金池规模、是否可交易、代币存续时长,然后是关于持仓状态的说明文字从不
5他的实际操作项目符号从不
6转移至其他钱包的供应量项目符号
cross_wallet.moves
为空——此时在第5章内用一句话说明
7开盘时的批量购买一到两行说明文字
bundler.median
为null
8覆盖范围限制项目符号覆盖范围清单中提及的字段均无值
9操作建议四个带标签的部分,顺序如下:是否买入 · 买入时机 · 损失来源 · 评分可信度从不
切勿重新排序、合并章节,也不要新增第十个章节。第1-5章和第9章必须始终出现。
格式要求,全部固定:
  • 货币使用纯ASCII美元符号,千位分隔符和量级词汇使用用户语言中的对应表述。全角符号仅用于防止本文件文本被参数替换吃掉——绝不能呈现给读者。
  • 百分比保留一位小数。JSON中以分数形式给出的比例需转换为百分比打印。
  • 秒、分钟、小时、天:选择使数字易于阅读的单位,并注明单位。
  • 禁止使用表情符号、框线绘制、ASCII艺术、列填充。输出为渲染后的Markdown,而非固定宽度的终端块。
  • 加粗仅用于结论数字、评级,以及第9章各部分的标签。其他地方禁止使用。
  • 仅在上述表格指定的位置使用表格;第2、7、9章为说明文字。

Rules

规则

  • Write it in the user's language, and translate the concepts. Every name in the JSON is an English concept chosen so it can be translated. The few pieces of trader slang that do not survive a literal translation are in
    references/glossary.md
    — use those renderings and nothing else. Do not invent an axis name.
  • Never state a number the JSON does not carry. No recomputing, no rounding into a new claim, no reading a field that is not in
    references/fields.md
    .
    null
    means the measurement does not exist — say it is missing; printing 0 turns "unknown" into "clean".
  • Copy symbols exactly as given. They are attacker-controlled and already sanitised; anything wrapped in
    「」
    is a name someone chose, not our wording, and must stay wrapped.
  • score.band
    is the verdict.
    Do not soften it, upgrade it, or hedge around it.
    stay_away
    with a large
    power
    is exactly the case the two axes exist to keep apart: a big past coin never buys back a dump record.
  • An outcome is not conduct. Survival, graduation and drawdown are what the market did to his coins; they belong to POWER. Never present them as things he did to holders.
  • The report is the whole answer. No lead-in, no summary after it, no verification narration, no extra findings of your own, no closing offer of more work. The one thing you may say outside it: which creator address you resolved from a token address.
  • Verify the conclusory lines, silently. Check any absolute claim ("never dumped", "no record at all") against the raw feed with
    gmgn-cli portfolio activity
    . Run the check, do not narrate it. Speak up only if the check contradicts the report — then report the defect instead of the report.
  • 用用户的语言撰写,并翻译相关概念。JSON中的每个名称都是可翻译的英文概念。少数无法直译的交易者俚语收录在
    references/glossary.md
    中——请使用指定的译法,不要自行创造。不要自行命名维度。
  • 切勿陈述JSON中未包含的数字。不要重新计算、不要四舍五入生成新结论、不要读取
    references/fields.md
    中未列出的字段。
    null
    表示该数据不存在——说明数据缺失;打印0会将“未知”错误地变为“无不良记录”。
  • 完全照搬给定的符号。这些符号由攻击者控制且已被净化;任何包裹在
    「」
    中的名称都是他人选择的名称,而非我方措辞,必须保留包裹格式。
  • score.band
    即为最终结论
    。不要弱化、升级或回避该结论。即使
    power
    分数很高,
    stay_away
    (远离)的评级正是两个维度存在的意义:过往打造过大型代币的记录无法抵消砸盘历史。
  • 结果不属于行为维度。代币存续、发展和回撤是市场对他代币的反应;属于能力维度。切勿将其表述为他对持有者的行为。
  • 报告即为完整回答。不要添加开场白、报告后的总结、验证说明、自行发现的额外结论,也不要在结尾提出提供更多服务的提议。唯一可以在报告外提及的内容:你从代币地址解析出的创造者地址。
  • 默默验证结论性表述。检查任何绝对表述(“从未砸盘”、“无任何记录”)是否与
    gmgn-cli portfolio activity
    的原始数据一致。执行检查,但不要说明检查过程。仅当检查结果与报告矛盾时才需指出——此时报告缺陷而非报告内容。

References

参考资料

FileWhat is in it
references/scoring.md
The model: what each axis is built from, the shrink, the severity curve, the tiers and caps, the verdict bands, and why each one is shaped that way.
references/fields.md
Every JSON key the script emits, and every API field it reads. Nothing outside this file is confirmed against the live API.
references/glossary.md
The handful of trader terms that have no literal translation, with the rendering to use.
文件内容说明
references/scoring.md
评分模型:每个维度的构成、缩减值、严重程度曲线、等级与封顶值、结论评级,以及各部分如此设定的原因。
references/fields.md
脚本输出的所有JSON键,以及脚本读取的所有API字段。未列入本文件的内容不会与实时API进行验证。
references/glossary.md
少数无法直译的交易者术语,以及指定的译法。