Commit Graph

42 Commits

Author SHA1 Message Date
David Lau 06f5a70291 feat(cli): surface a notice when output sanitization strips metadata
Give operators/agents visibility into when the CLI neutralizes suspicious token
metadata in an API response.

- sanitizeForOutputWithCount returns the cleaned value plus the number of altered
  strings; sanitizeForOutput kept as a thin wrapper
- printResult prints "[gmgn-cli] Notice: neutralized N suspicious metadata value(s)"
  to stderr when anything was filtered (extra detail under GMGN_DEBUG); sanitized
  JSON still goes to stdout so piping is unaffected
- document the notice in the gmgn-token SKILL untrusted-data warning

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-20 19:24:50 +08:00
David Lau fdc7a3fb16 fix(security): defend against prompt injection via token metadata
Address HackenProof report GMGNWM-143, where attacker-controlled token metadata
could hijack an AI agent driving gmgn-cli into executing an unauthorized trade.
Move guardrails from overridable SKILL.md text into code.

- Add src/sanitize.ts: neutralize prompt-injection framing and hidden/control
  characters in API output (via printResult) and validate create-token metadata
- Add src/confirm.ts: code-enforced human confirmation for financial writes
  (swap, multi-swap, order strategy create, cooking create) — reads a typed
  "yes" from /dev/tty; automation requires GMGN_ALLOW_AUTOMATED_TRADES=1 + --yes
- Harden config.ts: tighten ~/.config/gmgn/.env to 0600 and warn if world-readable
- Update SKILL.md files, Readme.md and Readme.zh.md to document the gate,
  the --yes flag, and untrusted-metadata handling

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-20 19:24:50 +08:00
David Lau 2d7d0043e6 feat(chain): add robinhood support; disable monad/megaeth/hyperevm/tron
Add robinhood as a supported chain across the CLI and skills, and stop
advertising chains that are not publicly supported yet.

robinhood:
- validate.ts: add to VALID_CHAINS and treat as EVM for address checks
- reject guards for commands that do not support it: track kol,
  track smartmoney, cooking create (mirrors market signal)
- --chain help updated for supported commands (token/portfolio/swap/
  market kline·trending·trenches·hot-searches/track follow-*/order get/
  gas-price); OpenApiClient chain comment
- docs: all SKILL.md, Readme.md, Readme.zh.md (split-out row for
  unsupported commands), cli-usage.md, plugin/marketplace descriptions

disable monad/megaeth/hyperevm/tron:
- comment monad out of VALID_CHAINS (kept for quick re-enable)
- strip these chains from all --chain help, SKILL.md, cli-usage.md
  (hot-searches default now 4 chains: sol/bsc/base/eth)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-08 22:48:54 +08:00
gina888666 d0e9e42f17 docs(skills): remove Credential Model from token/market/portfolio/track (only cooking/swap had it on main)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-30 17:25:48 +08:00
gina888666 18a0bf98b1 docs(skills): restore Credential Model section to all 6 SKILL.md files
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-30 17:18:31 +08:00
gina888666 88643ca05c feat(config): add --check flag and improve BEFORE RUNNING ANY COMMAND detection
- Add gmgn-cli config --check: pure local check for GMGN_API_KEY, exit 0 = found, exit 1 = not found
- Update BEFORE RUNNING ANY COMMAND in all 6 SKILL.md files to use --check instead of file path detection
- Add fallback instruction for outdated gmgn-cli versions (unknown option → prompt user to npm install -g gmgn-cli)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-26 21:39:57 +08:00
gina888666 d701420705 refactor(config): move setup flow into CLI, remove gmgn-config skill
- gmgn-cli config: add multi-language guidance (zh-CN/zh-TW/en) based on system locale
- gmgn-cli config --apply <key>: write GMGN_API_KEY + GMGN_PRIVATE_KEY to ~/.config/gmgn/.env and verify via track follow-wallet
- Delete skills/gmgn-config/SKILL.md — all logic now lives in CLI source
- Simplify BEFORE RUNNING ANY COMMAND in all 6 SKILL.md files to two CLI commands, no duplicated text
- Remove stale First-time setup sections (openssl-based) from all 6 SKILL.md files

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-26 21:39:57 +08:00
gina888666 ec35707d15 feat(config): extract setup flow into gmgn-config skill; simplify CLI output
- Add skills/gmgn-config/SKILL.md with complete setup flow: key pair
  generation, credential writing, and verification via track follow-wallet.
  Verification result is output in the user's conversation language.
- Simplify all 6 SKILL.md BEFORE RUNNING ANY COMMAND to one line that
  delegates to gmgn-config skill, removing duplicate logic.
- Remove locale detection from CLI — output only the link; Agent handles
  all user-facing guidance in the conversation language.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-26 21:39:57 +08:00
gina888666 cc2fc0ed00 fix(skills): replace python3/awk with node for .env config in all SKILL.md
Use node -e to write GMGN_API_KEY and GMGN_PRIVATE_KEY into .env —
node is guaranteed to be present since gmgn-cli requires Node.js.
Also clarify that the same config step applies when the user explicitly
runs gmgn-cli config and sends back an API Key.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-26 21:39:57 +08:00
gina888666 5453373ffa fix(skills): fix private key extraction command in BEFORE RUNNING ANY COMMAND
Replace awk+echo with python3+printf to correctly serialize the PEM
private key as a single-line \n-escaped value when writing to .env.
The awk approach produced multi-line output that broke .env parsing.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-26 21:39:57 +08:00
gina888666 e8af4b88b5 feat(config): add gmgn-cli config command for API Key onboarding
Add a new `gmgn-cli config` command that automates Ed25519 key pair
generation for new users. The command reuses an existing keypair.pem if
present, or generates a new one, then outputs a pre-filled API Key
creation link with the public key embedded. Guidance text is output in
the user's system locale (zh-CN, zh-TW, or English).

All 6 SKILL.md files are updated with a BEFORE RUNNING ANY COMMAND
block that detects missing GMGN_API_KEY, triggers gmgn-cli config, and
instructs the Agent to write both GMGN_API_KEY and GMGN_PRIVATE_KEY
into ~/.config/gmgn/.env once the user provides their API Key.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-26 21:39:57 +08:00
gina888666 7d16bd80e8 fix(gmgn-token): correct fee_distribution usage hint and volume fields note
- Add usage context to fee_distribution section so agents know to use
  token info when querying claim status and royalty allocation
- Fix incorrect Note that said trading volume is not in token info;
  price.volume_{window}, buys_{window}, sells_{window}, swaps_{window}
  are all available in the token info price object

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 16:02:17 +08:00
David Lau d51f1c49d3 refactor(auth): rename normalRequest/criticalRequest; align auth terminology
- Rename private methods: normalRequest → authExistRequest,
  criticalRequest → authSignedRequest in OpenApiClient.ts (both gmgn-skills
  and scripts/src)
- Replace all "normal auth" / "critical auth" labels across SKILL.md files,
  cli-usage.md, Readme.md, and CLI command descriptions with:
    exist auth  — API Key only, no private key required
    signed auth — API Key + GMGN_PRIVATE_KEY signature required
- Add explicit "requires GMGN_PRIVATE_KEY" notes to signed-auth commands
  and "API Key only" notes to exist-auth commands throughout docs

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 17:45:10 +08:00
GMGN.AI 2b33ee666c Merge pull request #125 from GMGNAI/feat/gas-level-remove-auto-tip-fee
Feat/gas level remove auto tip fee
2026-05-18 19:13:53 +08:00
GMGN.AI 12ab55bb63 docs(token): move native_transfer to Shared Funding section with updated description
native_transfer records the first native token (SOL/BNB/ETH) transfer into a
wallet, not the most recent — it indicates the original funding source. Wallets
sharing the same native_transfer.address are likely funded from a common origin
(coordinated wallets / same operator).

Move it out of Last Transaction Records into its own Shared Funding section to
reflect its distinct purpose.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-14 20:43:36 +08:00
David Lau 072b180119 feat: add gas-level/auto-fee/gas-price endpoint; remove auto_tip_fee/max_auto_fee
- Add --gas-level (eth only), --auto-fee (eth only) to swap, multi-swap,
  and strategy create commands
- Add order gas-price subcommand (GET /v1/trade/gas_price, normal auth)
- Add --max-fee-per-gas / --max-priority-fee-per-gas to strategy create
- Remove --auto-tip-fee and --max-auto-fee from swap and multi-swap
- Update token SKILL.md: price field is now a nested object (price.price),
  add price window fields and fee_distribution object docs
- Update EIP-1559 chain coverage from Base-only to BSC/BASE/ETH

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-14 18:55:49 +08:00
deepfeature e181cba142 fix(skills): update rate limit settings for cooking, market, portfolio, swap, token, and track routes 2026-05-13 17:13:26 +08:00
David Lau 698ae707e8 fix(token): remove bluechip_owner_count and bluechip_owner_percentage from stat fields
These fields were removed from the TokenStatData struct in the openapi-service
and are no longer returned in the token info response.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 15:01:47 +08:00
David Lau 1012cfffb8 feat(eth): add Ethereum mainnet chain support (P0 commands)
Add ETH chain support to all P0 commands across CLI and SKILL.md docs:

Commands with ETH support added:
- token info/security/pool/holders/traders
- market kline/trending
- portfolio info/holdings/activity/stats/token-balance
- track follow-wallet
- swap, order quote/get

P1/P2 commands remain sol/bsc/base only:
- track kol/smartmoney (P1)
- multi-swap, order strategy create/list/cancel (P1)
- portfolio created-tokens (P2)

Also adds ETH chain currencies, explorer links, and gas price bounds
to gmgn-swap SKILL.md.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-22 16:08:36 +08:00
David Lau 1f49d61363 feat(token): expand --tag filter for holders and traders to all 10 values
Update --tag option description and SKILL.md docs to reflect the full
backend allowlist: smart_degen, renowned, fresh_wallet, dev, sniper,
rat_trader, bundler, transfer_in, dex_bot, bluechip_owner.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 16:42:06 +08:00
GMGN.AI ad4eab3852 docs(skills): front-load key terms and trim descriptions for search optimization
Shorten all 6 descriptions to 60-80 words with high-value terms in the
first 50 words (highest embedding weight). Add "crypto", "meme coin",
"meme token" where missing. Remove redundant chain-name repetition in
"Use when" sections. Keeps discriminating boundary hints (e.g. gmgn-track
→ gmgn-portfolio redirect for single-wallet queries).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-15 20:58:22 +08:00
GMGN.AI cdcf4e11d3 docs(skills): optimize descriptions for vector search and keyword search
Rewrote all 6 SKILL.md descriptions to improve discoverability on
clawhub.ai via both vector (semantic) and keyword search:
- gmgn-token: add "due diligence", "is it a rug", "dev wallet", "before buying" semantics
- gmgn-market: clarify "without a specific token address" to distinguish from gmgn-token; add "pumping", "fresh listings"
- gmgn-portfolio: add "by address", "decide whether to copy-trade" trigger context
- gmgn-swap: add "single swap" vs multi-wallet distinction; clarify execution verbs
- gmgn-track: add "alpha signals", "on-chain alpha"; explicit boundary note vs gmgn-portfolio
- gmgn-cooking: add "bonding curve fair launch", "cook a token", ETH/TON chain support

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-15 20:43:44 +08:00
GMGN.AI 4f96fedbb1 docs(skills): optimize SKILL.md descriptions for clawhub.ai discoverability
Rewrite description fields across all 6 skills to follow a consistent
"Get [capabilities] via GMGN API. Use when user asks for [intents]."
pattern, aligned with how Openclaw agents search clawhub.ai. Adds
natural-language intent keywords (price, market cap, holder list,
Smart Money, KOL trades, copy-trading, etc.) so skills surface higher
in skill-search results.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-15 19:32:03 +08:00
David Lau 3551bc3a25 docs(gmgn-token): add launchpad, migration, ath_price, locked_ratio and dev.ath_token_info fields
- Document 9 new top-level fields in token info response:
  launchpad, launchpad_status, launchpad_progress, launchpad_platform,
  migrated_pool, migration_market_cap, migration_market_cap_quote,
  ath_price, locked_ratio
- Document dev.ath_token_info sub-fields (creator all-time-high token)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 17:47:20 +08:00
gina888666 9e90bb9c07 docs(gmgn-token): add private_vault_hold_rate field to stat object reference 2026-04-08 20:21:36 +08:00
David Lau 2073b5fdaf docs(token): document dev object in token info response
- Add dev nested object table to Response Field Reference with all 21 fields
  (creator wallet, DEXScreener activity, CTO flag, funding source, etc.)
- Update nested objects description to include dev as the 5th object

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-08 16:09:17 +08:00
gumponchain 8999d36d1d docs(swap): fix price_scale definition and update all skills
- Redefine price_scale: profit_stop uses gain % from entry (e.g. "100" = +100% / 2×), loss_stop uses drop % from entry (e.g. "65" = drops 65%)
- Update all condition-order examples in SKILL.md and both READMEs accordingly
- Add is_anti_mev recommended note and anti-mev flag to swap examples
- Add order strategy create to Financial Risk Notice
- Fix response section heading format (bold → ###) for order strategy create/list
- Add reset_at field extraction guidance to Rate Limit Handling in all 6 skills

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 17:11:16 +08:00
deepfeature 221bf120a8 fix rate limit handling for skills 2026-04-01 11:05:47 +08:00
gumponchain 09351a9205 docs(skills): add first-time setup flow to all SKILL.md Prerequisites
Each skill now guides the AI Agent through full credential setup when
GMGN_API_KEY is not configured: generate Ed25519 key pair, show public
key to user with instructions to apply at https://gmgn.ai/ai, wait for
API key, then write to ~/.config/gmgn/.env.

- gmgn-token / gmgn-market / gmgn-portfolio: API key setup only
- gmgn-track: API key + optional private key for follow-wallet
- gmgn-swap: both API key and private key required from the start

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 20:35:23 +08:00
gumponchain e0c4be2946 docs: add IPv6 diagnostic steps to README and all SKILL.md files
GMGN API does not support IPv6. When a 401/403 error occurs and
credentials look correct, AI agents and users now have a clear
two-step diagnostic: list inet6 interfaces, then probe
ipv6.icanhazip.com to confirm whether outbound traffic is IPv6.
If confirmed, the instruction is to disable IPv6 immediately.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-29 16:17:06 +08:00
gumponchain c2799c73d1 docs: add 7 workflow docs and update skill/readme cross-references
New workflow docs:
- workflow-token-research.md — pre-buy token due diligence
- workflow-wallet-analysis.md — wallet quality assessment
- workflow-smart-money-profile.md — trading style analysis and copy-trade ROI estimate
- workflow-risk-warning.md — active risk monitoring (whale exit, liquidity, dev dump)
- workflow-early-project-screening.md — new launchpad token screening
- workflow-daily-brief.md — daily market overview
- workflow-project-deep-report.md — comprehensive token analysis with scored dimensions

Renamed docs for consistent workflow- prefix naming:
- market-discover-opportunities.md → workflow-market-opportunities.md
- token-due-diligence.md → workflow-token-due-diligence.md

Updated SKILL.md files (portfolio, track, token, market, swap) with workflow
cross-reference links at relevant trigger points. Updated CLAUDE.md quick
decision table and workflow docs index. Added Workflow Docs section to
Readme.md and Readme.zh.md.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-29 01:15:22 +08:00
gumponchain fe80a8aba7 docs: add Core Concepts, AI Agent install guide, and workflow docs
- README: add Quick Start (AI Agent) section with step-by-step key generation
  and .env configuration guidance; add Upgrade (AI Agent) section
- README.zh.md: sync all changes from English README
- skills/gmgn-market: add Core Concepts (10 terms: volume/amount distinction,
  rug_ratio, smart_degen_count, hot_level, renounced authorities, honeypot,
  creator_token_status, cto_flag, trenches lifecycle, wash/rat/bundler signals);
  add "Do NOT guess fields" IMPORTANT rule
- skills/gmgn-portfolio: add Core Concepts (7 terms: realized/unrealized profit,
  profit_change multiplier, pnl ratio, winrate, cost vs usd_value, pagination);
  complete Response Field Reference tables for holdings/activity/stats
- skills/gmgn-swap: add Core Concepts (8 terms: smallest unit, slippage decimal,
  amount vs percent mutex, currency tokens, anti-MEV, critical auth, order polling,
  filled amount conversion); add "Do NOT guess fields" IMPORTANT rule
- skills/gmgn-track: add Core Concepts (8 terms: follow-wallet vs kol vs
  smartmoney, KOL vs smart_degen, is_open_or_close divergence, price_change ratio,
  base/quote address, tags array, cluster signal); add Safety Constraints section;
  add Output Format section; add "Do NOT guess fields" IMPORTANT rule
- skills/gmgn-token: add --amount/--percent and --slippage/--auto-slippage mutex
  rules; add --tag + --order-by valid combination guide table for traders
- src/index.ts: add track to CLI description
- docs/token-due-diligence.md: new — full 4-step token due diligence workflow
- docs/market-discover-opportunities.md: new — market discovery workflow

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-28 23:11:13 +08:00
gumponchain 174a87c117 docs: expand token holders/traders response field reference
Replace the 10-line placeholder with a complete field reference based
on actual API output, grouped into Identity & Holdings, Trading Summary,
Cost & P&L, Transfer History, Timing, Wallet Identity, and Last
Transaction Records sections.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-28 23:11:13 +08:00
David Lau 87540d6327 fix: remove default tag filter from token holders and traders commands
- Remove hardcoded "renowned" default from --tag in `token holders` command
- Remove hardcoded "renowned" default from --tag in `token traders` command
- Update skills/gmgn-token/SKILL.md to show --tag has no default (returns all wallets when omitted)

Fixes #14
2026-03-27 17:25:09 +08:00
gumponchain 9c2a349ecf docs: add IPv6 warning to all skills and follow-wallet response fields
- Add IPv6 not supported warning to all 5 SKILL.md headers
- Add detailed `track follow-wallet` response field reference based on actual API output
- Fix `--tag` default value to empty in gmgn-token SKILL.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 17:20:41 +08:00
gumponchain 56f1f574b1 fix: remove pinned gmgn-cli version to always use latest
Replace `npm install -g gmgn-cli@1.1.0` with `npm install -g gmgn-cli`
across all SKILL.md files and CLAUDE.md, so users always install the
latest published version instead of a pinned one that may lack newer
commands (e.g. track).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 15:19:22 +08:00
gumponchain 28062887d8 feat: add track command group, split follow-wallet/kol/smartmoney from portfolio
- Add new `track` command group with three sub-commands:
  - `track follow-wallet`: monitor trade activity of followed wallets (critical auth)
  - `track kol`: KOL trade records with optional --chain and client-side --side filter
  - `track smartmoney`: Smart Money trade records with optional --chain and client-side --side filter
- Remove follow-wallet, kol, smartmoney sub-commands from portfolio
- Add getKol/getSmartMoney optional chain param in OpenApiClient
- Switch getFollowWallet to criticalRequest (signature auth required)
- Align track follow-wallet options to actual API params (remove unsupported flags)
- Add skills/gmgn-track/SKILL.md with sub-command guide, options, response fields
- Add IMPORTANT notice to all SKILL.md files to prevent AI from scraping gmgn.ai
- Add CRITICAL RULE section to CLAUDE.md to enforce CLI-only data access
- Update Readme.md and Readme.zh.md: add gmgn-track skill, Track CLI section, user tip

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 14:19:57 +08:00
gumponchain 0239e42b50 docs: enrich all SKILL.md files with response fields, usage examples, and AI-agent guidance
- gmgn-token: full response field reference for all 5 sub-commands (token info nested objects pool/link/stat/wallet_tags_stat, security, pool, holders, traders); granular usage examples per scenario; full due diligence workflow with security threshold table; market cap calculation note; volume redirect to kline
- gmgn-market: verified kline/trending response fields from live API; trending + platform filter examples for SOL/BSC/Base major launchpads; interval selection guide; trenches intent→type mapping table; standardized section headings with sub-command names
- gmgn-portfolio/gmgn-swap: standardize section headings to include sub-command names
- CLAUDE.md: add newly-launched token triggers for gmgn-market skill routing
- Readme/Readme.zh: add missing portfolio sub-commands, kline examples, auto-slippage swap example; remove version pin; update install instructions

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 21:31:15 +08:00
dev 45fb37d51f support trenches & kol & smartmoney 2026-03-25 22:20:56 +08:00
dev 8301bf515f upgrade version to 1.0.2 2026-03-25 21:22:59 +08:00
David Lau c9dbb6f58b fix: rename --orderby to --order-by, expand holders/traders options, update chain-specific platform/filter values 2026-03-18 16:07:10 +08:00
dev d9d1bf8200 initial import 2026-03-16 18:40:55 +08:00