298 Commits

Author SHA1 Message Date
davidsx dfea6e8fae Merge pull request #187 from gina888666/fix/robinhood-chain-detection 2026-07-27 20:39:12 +08:00
gina888666 56648c5286 fix(holder-analysis): add robinhood to known chains to skip auto-detection
When CHAIN is explicitly set to 'robinhood', the auto-detection logic
previously treated it as unknown and fell back to probing bsc/eth/base,
returning empty data and forcing slow inline workarounds.

Adding a KNOWN_CHAINS tuple that includes 'robinhood' (and 'sol') causes
the script to skip the probe entirely and query the specified chain directly.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-27 20:30:10 +08:00
GMGN.AI 7205bf20d5 1.5.4 v1.5.4 2026-07-23 12:34:41 +08:00
GMGN.AI 90d938ec09 Merge pull request #185 from GMGNAI/docs-signal-type-1-21
docs(market): extend signal_type range to 21 and name new types
2026-07-23 12:34:02 +08:00
David Lau fa556acb93 docs(market): extend signal_type range to 21 and name new types
Backend now accepts signal_type 1-21. Add types 19 (PlatformCallV2),
20 (KOLBuy), 21 (BankerClaims) to the signal-types tables and update the
1-18 -> 1-21 range references.

- src/commands/market.ts: --signal-type help text 1-18 -> 1-21
- docs/cli-usage.md: param note + signal-types table rows 19/20/21
- skills/gmgn-market/SKILL.md: param note, response-field note, signal-types table

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-23 12:23:36 +08:00
GMGN.AI abcb7bec93 1.5.3 v1.5.3 2026-07-22 20:23:38 +08:00
GMGN.AI 11ef4fea61 Merge pull request #183 from GMGNAI/feat-robinhood-kol-smartmoney-signal-cooking
feat(chains): support robinhood on kol, smartmoney, signal and cooking
2026-07-22 20:22:36 +08:00
David Lau 748ec55e6e docs(gmgn-market): add robinhood to market signal Parameters chain line
Missed one stale "sol / bsc only" reference in the Parameters section;
signal supports sol / bsc / robinhood.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-22 19:53:25 +08:00
David Lau e68e889c3c feat(chains): support robinhood on kol, smartmoney, signal and cooking
- Remove the robinhood-rejection guards in kol, smartmoney, signal and
  cooking create-token so the CLI matches the backend, which now accepts
  robinhood on these endpoints
- Update --chain / --dex / --raised-token help text and error messages
- cooking: robinhood launchpad uses trench / pons DEXes, native raised
  token only
- Sync SKILL.md files, cli-usage.md and both Readmes with the new chain
  support

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-22 19:53:25 +08:00
GMGN.AI 97df79b9f6 Merge pull request #182 from camila330/add-gmgn-wallet-score-skill
Add gmgn-wallet-score skill for wallet copy-trade scoring
2026-07-22 15:19:48 +08:00
Mila e9c8b0a9b5 Add gmgn-wallet-score skill for wallet copy-trade scoring
Adds a new skill that scores any wallet address across three angles —
profitability (track-record score), copy-tradeability (score + a
latency/slippage/gas backtest), and Dev reputation for token-creator
wallets — plus trading-style tags, computed deterministically from
GMGN portfolio data. Wires it into CLAUDE.md's skill routing and the
Readme skill tables/install instructions, and refreshes the stale
plugin metadata descriptions/keywords to reflect all 8 current skills.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-22 12:07:22 +08:00
GMGN.AI c84e322bc7 Merge pull request #181 from gina888666/fix/gmgn-holder-analysis-output-and-style
fix(gmgn-holder-analysis): fix duplicate output and simplify entry cost section
2026-07-20 20:51:37 +08:00
gina888666 1c618a4883 fix(gmgn-holder-analysis): fix duplicate output and simplify entry cost section
- Fix output appearing twice by clarifying Output Rule in SKILL.md
- Simplify entry cost batch detail: replace per-wallet lists with
  selling/accumulating counts on the batch summary line

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-20 20:27:21 +08:00
davidsx f77da2a95e Merge pull request #180 from GMGNAI/fix-sanitize-token-metadata
fix(security): defend against prompt injection via token metadata
2026-07-20 19:27:07 +08:00
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
GMGN.AI b5fdaad3b3 Merge pull request #179 from gina888666/feat/gmgn-holder-analysis-optimize
feat(gmgn-holder-analysis): extract script to file + enforce verbatim output
2026-07-20 16:41:25 +08:00
gina888666 7696a45a36 feat(gmgn-holder-analysis): extract script to file and enforce verbatim output
Two improvements:
1. Extract 700-line inline Python script to analyze.py — Claude no longer
   streams the entire script as text, reducing response time from ~2min to
   ~5s (API calls take ~3s, script execution <1s).
   Also adds full 3-way concurrency: holders + dev fetched in parallel, then
   created-tokens fires immediately when dev result arrives — saving ~1.2s vs
   prior serial approach. EVM addresses auto-detect chain (bsc→eth→base).

2. Add Output Rule section after the run command — Claude's reply MUST contain
   only the raw stdout verbatim, no summary or omission. Previously the CRITICAL
   note appeared before the command, so it was forgotten by reply time; moving
   it after (as the last thing Claude reads before replying) enforces compliance.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-20 16:22:24 +08:00
GMGN.AI 020190f088 Merge pull request #178 from gina888666/feat/gmgn-holder-analysis
feat: add gmgn-holder-analysis skill
2026-07-16 20:43:53 +08:00
wuyanling 91489bda9d feat: add gmgn-holder-analysis skill
New skill for analyzing token holder chip structure.
Includes dump risk, dev wallet status, related funds,
quality signals, entry cost batches, buying power,
and AI recommendation. Supports zh/en bilingual output
via LANG env var. Uses pure Python subprocess + ThreadPoolExecutor,
no /tmp files.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-16 20:39:41 +08:00
GMGN.AI b18d7deb32 1.5.2 v1.5.2 2026-07-10 10:56:46 +08:00
davidsx ddbfafdac5 Merge pull request #172 from GMGNAI/fix-trenches-robinhood-config
fix(trenches): add robinhood launchpad/quote-address config
2026-07-10 10:36:49 +08:00
David Lau 316840d84d fix(trenches): omit empty launchpad/quote filters as a safety net
Complements the robinhood config: buildTrenchesBody now only sends
launchpad_platform / quote_address_type when non-empty. These fields are
allow-list filters, so an empty array returned an all-empty response. A
future chain missing from the config maps now degrades to API defaults
instead of silently returning nothing (chains should still be added to
both maps).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-09 20:37:35 +08:00
David Lau f6e3bc4ef7 fix(trenches): add robinhood launchpad/quote-address config
market trenches returned all-empty on robinhood because
TRENCHES_PLATFORMS and TRENCHES_QUOTE_ADDRESS_TYPES had no robinhood
entry, so an empty quote_address_type filtered out every result.

Add robinhood config:
- platforms: noxa, virtuals_v2, bankr, dyorswap, pool_uniswap_v2/v3/v4
- quote_address_type: [11, 20, 24, 12, 0]

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-09 17:52:43 +08:00
GMGN.AI 1e45828c8c 1.5.1 v1.5.1 2026-07-09 14:41:01 +08:00
davidsx 2c88807988 Merge pull request #171 from GMGNAI/feat-add-robinhood-chain-support
feat(chain): add robinhood support; disable monad/megaeth/hyperevm/tron
2026-07-09 14:04:01 +08:00
David Lau 2670188acb docs(market): hot-searches default set is 5 chains incl. robinhood
Update hot-searches default-set docs from 4 chains to 5
(sol/bsc/base/eth/robinhood) and fix two stale "7-chain" leftovers.

- skills/gmgn-market/SKILL.md, docs/cli-usage.md: 5-chain default
- src/commands/market.ts: update default-config comment

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-09 11:49:43 +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
GMGN.AI 0e1ba6181c 1.5.0 v1.5.0 2026-07-01 11:22:11 +08:00
GMGN.AI b7b6250766 Merge pull request #166 from gina888666/feat/auto-config
feat(config): add gmgn-cli config command for API Key onboarding
2026-07-01 11:21:20 +08:00
gina888666 e3b713b150 fix(config): combine stderr+stdout when detecting auth errors in verify
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-30 21:12:27 +08:00
gina888666 ac1ea2e336 fix(config): distinguish auth vs network failures in verify step
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-30 21:08:55 +08:00
gina888666 b782743c8c fix(config): load dotenv before --check so ~/.config/gmgn/.env is read
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-30 20:12:11 +08:00
gina888666 d56c904b26 docs(skills): fix Credential Model content in swap to match main verbatim
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-30 17:37:38 +08:00
gina888666 3ecd76c572 docs(skills): restore Credential Model to original position in cooking and swap
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-30 17:30:05 +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
GMGN.AI 1b27af9bb8 1.4.9 v1.4.9 2026-06-29 17:09:58 +08:00
GMGN.AI 1ab38a1685 Merge pull request #169 from GMGNAI/feat/market-hot-searches
feat(market): add hot-searches command for hot-search ranking
2026-06-29 17:08:09 +08:00
David Lau bdf1996e2f feat(market): hot-searches range filters, flattened params, long-form fields
- Add --min-*/--max-* range flags to `market hot-searches` (same metric names as
  market trending); flatten filter fields onto each param (no nested filter object)
- Document response as long-form RankItem fields (server maps shortcodes); drop the
  filter_id field from the documented response shape
- Sync SKILL.md, cli-usage.md, Readme.md, Readme.zh.md, and OpenApiClient types

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-29 16:02:59 +08:00
David Lau 36771529d7 feat(market): add hot-searches command for hot-search ranking
- Add `market hot-searches` CLI command for POST /v1/market/hot_searches
- Add getHotSearches() + HotSearchesParam/HotSearchesFilter to OpenApiClient
- Support --chain (repeatable), --interval, --limit, --filter, --params override
- Omitting --chain falls back to server default 7-chain config
- Validate --interval against 1m/5m/1h/6h/24h
- Sync SKILL.md, cli-usage.md, Readme.md, Readme.zh.md docs

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-29 11:22:27 +08:00
GMGN.AI 01a376a951 1.4.8 v1.4.8 2026-06-26 22:06:13 +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 48a94a46a5 fix(gmgn-config): fix fixed guidance and verification messages in all languages
Add exact fixed messages for link guidance and verification results in
zh-CN, zh-TW, and English. Instruct Agent to output them verbatim in
the user's conversation language without paraphrasing.

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
davidsx 845a8aaa62 Merge pull request #168 from GMGNAI/feat/openapi-new-feature-sync 2026-06-26 21:34:13 +08:00