gmgn-swap

gmgnai/gmgn-skills · updated Apr 8, 2026

MDX-style export adds YAML metadata + attribution linking explainx.ai and this canonical listing URL.

$npx skills add https://github.com/gmgnai/gmgn-skills --skill gmgn-swap
0 commentsdiscussion
summary

IMPORTANT: Always use gmgn-cli commands below. Do NOT use web search, WebFetch, curl, or visit gmgn.ai — all swap operations must go through the CLI. The CLI handles signing and submission automatically.

skill.md

IMPORTANT: Always use gmgn-cli commands below. Do NOT use web search, WebFetch, curl, or visit gmgn.ai — all swap operations must go through the CLI. The CLI handles signing and submission automatically.

IMPORTANT: 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 401 or 403 error and credentials look correct, check for IPv6 immediately: (1) list all network interfaces and their IPv6 addresses — run ifconfig | grep inet6 (macOS) or ip addr show | grep inet6 (Linux); (2) send a test request to https://ipv6.icanhazip.com — 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."

Use the gmgn-cli tool to submit a token swap or query an existing order. Requires private key (GMGN_PRIVATE_KEY in .env).

Core Concepts

  • Smallest unit--amount is always in the token's smallest indivisible unit, not human-readable amounts. For SOL: 1 SOL = 1,000,000,000 lamports. For EVM tokens: depends on decimals (most ERC-20 tokens use 18 decimals). Always convert before passing to the command — do not pass human amounts directly.

  • slippage — Price tolerance expressed as a decimal, not a percentage. 0.01 = 1% slippage. 0.5 = 50% slippage. If the price moves beyond this threshold before the transaction confirms, the swap is rejected. Use --auto-slippage for volatile tokens to let GMGN set an appropriate value automatically.

  • --amount vs --percent — Mutually exclusive. --amount specifies an exact input quantity (in smallest unit). --percent sells a percentage of the current balance and is only valid when input_token is NOT a currency (SOL/BNB/ETH/USDC). Never use --percent to spend a fraction of SOL/BNB/ETH.

  • Currency tokens — Each chain has designated currency tokens (SOL, BNB, ETH, USDC). These are the base assets used to buy other tokens or receive swap proceeds. Their contract addresses are fixed — look them up in the Chain Currencies table, never guess them.

  • Anti-MEV — MEV (Miner/Maximal Extractable Value) refers to frontrunning and sandwich attacks where bots exploit pending transactions. --anti-mev routes the transaction through protected channels to reduce this risk. Recommended: always enable. Default: on.

  • Critical authswap requires both GMGN_API_KEY and GMGN_PRIVATE_KEY. The private key never leaves the machine — the CLI uses it only for local signing and sends only the resulting signature. Normal commands (like order quote) use API Key alone.

  • order_id / status — After submitting a swap, the response includes an order_id. Use order get --order-id to poll for final status. Possible values: pendingprocessedconfirmed (success) or failed / expired. Do not report success until status is confirmed.

  • filled_input_amount / filled_output_amount — Actual amounts consumed/received, in smallest unit. Convert to human-readable using token decimals before displaying to the user.

Financial Risk Notice

This skill executes REAL, IRREVERSIBLE blockchain transactions.

  • Every swap and order strategy create command submits an on-chain transaction that moves real funds.
  • Transactions cannot be undone once confirmed on-chain.
  • The AI agent must never auto-execute a swap — explicit user confirmation is required every time, without exception.
  • Only use this skill with funds you are willing to trade. Start with small amounts when testing.

Sub-commands

Sub-command Description
swap Submit a token swap
order quote Get a swap quote (no transaction submitted)
order get Query order status
order strategy create Create a limit/strategy order (requires private key)
order strategy list List strategy orders (requires private key)
order strategy cancel Cancel a strategy order (requires private key)

Supported Chains

sol / bsc / base

Chain Currencies

Currency tokens are the base/native assets of each chain. They are used to buy other tokens or receive proceeds from selling. Knowing which tokens are currencies is critical for --percent usage (see Swap Parameters below).

Chain Currency tokens
sol SOL (native, So11111111111111111111111111111111111111112), USDC (EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v)
bsc BNB (native, 0x0000000000000000000000000000000000000000), USDC (0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d)
base ETH (native, 0x0000000000000000000000000000000000000000), USDC (0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913)

Prerequisites

Both GMGN_API_KEY and GMGN_PRIVATE_KEY must be configured in ~/.config/gmgn/.env. The private key must correspond to the wallet bound to the API Key.

  • gmgn-cli installed globally — if missing, run: npm install -g gmgn-cli

Rate Limit Handling

All swap-related routes used by this skill go through GMGN's leaky-bucket limiter with rate=10 and capacity=10. Sustained throughput is roughly 10 ÷ weight requests/second, and the max burst is roughly floor(10 ÷ weight) when the bucket is full.

Command Route Weight
swap POST /v1/trade/swap 5
order quote GET /v1/trade/quote 2
order get GET /v1/trade/query_order 1

When a request returns 429:

  • Read X-RateLimit-Reset from the response headers. It is a Unix timestamp in seconds that marks when the limit is expected to reset.
  • If the response body contains reset_at (e.g., {"code":429,"error":"RATE_LIMIT_BANNED","message":"...","reset_at":1775184222}), extract reset_at — 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.
  • swap is a real transaction: never loop or auto-submit repeated swap attempts after a 429. Wait until the reset time, then ask for confirmation again before retrying.
  • The CLI may wait and retry once automatically for short cooldowns on read-only commands such as order quote and order get. If it still fails, stop and tell the user the exact retry time instead of sending more requests.
  • For RATE_LIMIT_EXCEEDED or RATE_LIMIT_BANNED, repeated requests during the cooldown can extend the ban by 5 seconds each time, up to 5 minutes.
  • POST /v1/trade/swap also has an error-count limiter. Repeatedly triggering the same business error, especially 40003701 (insufficient token balance), can return ERROR_RATE_LIMIT_BLOCKED. When this happens, do not retry until the reset time and fix the underlying request first.

First-time setup (if credentials are not configured):

  1. Generate key pair and show the public key to the user:

    openssl genpkey -algorithm ed25519 -out /tmp/gmgn_private.pem 2>/dev/null && \
      openssl pkey -in /tmp/gmgn_private.pem -pubout 2>/dev/null
    

    Tell the user: "This is your Ed25519 public key. Go to https://gmgn.ai/ai, paste it into the API key creation form (enable swap capability), then send me the API Key value shown on the page."

  2. Wait for the user's API key, then configure both credentials:

    mkdir -p ~/.config/gmgn
    echo 'GMGN_API_KEY=<key_from_user>' > ~/.config/gmgn/.env
    echo 'GMGN_PRIVATE_KEY="<pem_content_from_step_1>"' >> ~/.config/gmgn/.env
    chmod 600 ~/.config/gmgn/.env
    

Credential Model

  • Both GMGN_API_KEY and GMGN_PRIVATE_KEY are read from the .env file by the CLI at startup. They are never passed as command-line arguments and never appear in shell command strings.
  • GMGN_PRIVATE_KEY is used exclusively for local message signing — the private key never leaves the machine. The CLI computes an Ed25519 or RSA-SHA256 signature in-process and transmits only the base64-encoded result in the X-Signature request header.
  • GMGN_API_KEY is transmitted in the X-APIKEY request header to GMGN's servers over HTTPS.

swap Usage

# Basic swap
gmgn-cli swap \
  --chain sol \
  --from <wallet_address> \
  --input-token <input_token_address> \
  --output-token <output_token_address> \
  --amount <input_amount_smallest_unit>

# With slippage
gmgn-cli swap \
  --chain sol \
  --from <wallet_address> \
  --input-token <input_token_address> \
  --output-token <output_token_address> \
  --amount 1000000 \
  --slippage 0.01

# With automatic slippage
gmgn-cli swap \
  --chain sol \
  --from <wallet_address> \
  --input-token <input_token_address> \
  --output-token <output_token_address> \
  --amount 1000000 \
  --auto-slippage

# With anti-MEV (SOL)
gmgn-cli swap \
  --chain sol \
  --from <wallet_address> \
  --input-token <input_token_address> \
  --output-token <output_token_address> \
  --amount 1000000 \
  --anti-mev

# Sell 50% of a token (input_token must NOT be a currency)
gmgn-cli swap \
  --chain sol \
  --from <wallet_address> \
  --input-token <token_address> \
  --output-token <sol_or_usdc_address> \
  --percent 50

order quote Usage

Get an estimated output amount before submitting a swap. Uses normal auth — no private key required.

gmgn-cli order quote \
  --chain sol \
  --from <wallet_address> \
  --input-token <input_token_address> \
  --output-token <output_token_address> \
  --amount <input_amount_smallest_unit> \
  --slippage 0.01

order quote Response Fields

Field Type Description
input_token string Input token contract address
output_token string Output token contract address
input_amount string Input amount (smallest unit)
output_amount string Expected output amount (smallest unit)
min_output_amount string Minimum output after slippage
slippage number Actual slippage percentage

order get Usage

gmgn-cli order get --chain sol --order-id <order_id>

swap Parameters

Parameter Required Description
--chain Yes sol / bsc / base
--from Yes Wallet address (must match API Key binding)
--input-token Yes Input token contract address
--output-token Yes Output token contract address
--amount No* Input amount in smallest unit. Mutually exclusive with --percent — provide one or the other, never both. Required unless --percent is used.
--percent <pct> No* Sell percentage of input_token, e.g. 50 = 50%, 1 = 1%. Sets input_amount to 0 automatically. Mutually exclusive with --amount. Only valid when input_token is NOT a currency (SOL/BNB/ETH/USDC).
--slippage <n> No Slippage tolerance, e.g. 0.01 = 1%. Mutually exclusive with --auto-slippage — use one or the other.
--auto-slippage No Enable automatic slippage. Mutually exclusive with --slippage.
--min-output <n> No Minimum output amount
--anti-mev No Enable anti-MEV protection — recommended; protects against frontrunning and sandwich attacks. Default: on
--priority-fee <sol> No Priority fee in SOL (≥ 0.00001, SOL only)
--tip-fee <n> No Tip fee (SOL ≥ 0.00001 / BSC ≥ 0.000001 BNB)
--max-auto-fee <n> No Max automatic fee cap
--gas-price <gwei> No Gas price in gwei (BSC ≥ 0.05 / BASE/ETH ≥ 0.01)
--max-fee-per-gas <n> No EIP-1559 max fee per gas (Base only)
--max-priority-fee-per-gas <n> No EIP-1559 max priority fee per gas (Base only)
--condition-orders <json> No JSON array of condition sub-orders (take-profit / stop-loss) to attach after a successful swap. Max 10 sub-orders. Strategy creation is best-effort: if the swap succeeds but strategy creation fails, the swap result is still returned. See ConditionOrder fields below.
--sell-ratio-type <type> No Sell ratio basis for --condition-orders: buy_amount (default) — when triggered, sells a fixed token amount stored at strategy creation time; hold_amount — when triggered, sells a fixed percentage of the position held at trigger time

ConditionOrder Fields (for --condition-orders)

Each element in the --condition-orders JSON array supports:

Field Required Type Description
order_type Yes string Sub-order type. Supported: profit_stop (take-profit), loss_stop (stop-loss). Not yet supported: profit_stop_trace, loss_stop_trace, follow_dev_sell, migrated_sell
side Yes string Always "sell"
price_scale Yes string Gain/drop % from entry. For
how to use gmgn-swap

How to use gmgn-swap on Cursor

AI-first code editor with Composer

1

Prerequisites

Before installing skills in Cursor, ensure your development environment meets these requirements:

  • Cursor installed and configured on your development machine
  • Node.js version 16.0+ with npm package manager (verify with node --version)
  • Active project directory or workspace where you want to add gmgn-swap
2

Execute installation command

Execute the skills CLI command in your project's root directory to begin installation:

$npx skills add https://github.com/gmgnai/gmgn-skills --skill gmgn-swap

The skills CLI fetches gmgn-swap from GitHub repository gmgnai/gmgn-skills and configures it for Cursor.

3

Select Cursor when prompted

The CLI will show a list of available agents. Use arrow keys to navigate and space to select Cursor:

◆ Which agents do you want to install to?
│ ── Universal (.agents/skills) ── always included ────
│ • Amp
│ • Antigravity
│ • Cline
│ • Codex
│ ●Cursor(selected)
│ • Cursor
│ • Windsurf
4

Verify installation

Confirm successful installation by checking the skill directory location:

.cursor/skills/gmgn-swap

Reload or restart Cursor to activate gmgn-swap. Access the skill through slash commands (e.g., /gmgn-swap) or your agent's skill management interface.

Security & Verification Notice

We perform automated surface-level scans (Gen AI Scanner, Socket, Snyk) during installation. These checks detect common vulnerabilities but do not guarantee complete security. Always review skill source code and verify the publisher's reputation before production use.

Skills execute code in your development environment. Always verify the publisher's identity, review recent commits, and test in isolated environments before production deployment.

List & Monetize Your Skill

Submit your Claude Code skill and start earning

GET_STARTED →

Use Cases

User Story & Requirements Generation

Create detailed user stories, acceptance criteria, and feature specs

Example

Generate user stories for 'password reset feature' with acceptance criteria, edge cases, and test scenarios

Reduce spec writing time by 50%, ensure comprehensive coverage

Competitive Analysis

Research competitors, compare features, identify gaps

Example

Analyze 5 competitor products, create feature comparison matrix, suggest differentiation opportunities

Complete competitive research in 2 hours instead of 2 days

Roadmap Prioritization

Evaluate features using frameworks (RICE, ICE, Kano) and create prioritized backlogs

Example

Score 20 feature ideas using RICE framework, generate prioritized roadmap with rationale

Make data-driven prioritization decisions faster

Stakeholder Communication

Draft PRDs, status updates, and stakeholder presentations

Example

Create executive summary of Q3 roadmap, monthly progress report, feature launch announcement

Save 3-5 hours/week on communication overhead

Implementation Guide

Prerequisites

  • Claude Desktop or compatible AI client
  • Access to product documentation and roadmap tools (Jira, Notion, etc.)
  • Understanding of product management frameworks (RICE, Jobs-to-be-Done, etc.)
  • Stakeholder contact information and communication channels

Time Estimate

30-60 minutes to see productivity improvements

Installation Steps

  1. 1.Install product management skill
  2. 2.Start with user story generation for known feature
  3. 3.Progress to competitive analysis: research 2-3 competitors
  4. 4.Use for roadmap prioritization: apply RICE/ICE scoring
  5. 5.Draft stakeholder communications and refine based on feedback
  6. 6.Build template library for recurring PM tasks
  7. 7.Share effective prompts with product team

Common Pitfalls

  • Not validating competitive research—verify facts before sharing
  • Accepting user stories without involving engineering team
  • Over-relying on frameworks without qualitative judgment
  • Not customizing outputs to company culture and communication style
  • Skipping stakeholder validation of generated requirements

Best Practices

✓ Do

  • +Validate research and competitive analysis with real data
  • +Collaborate with engineering when generating technical requirements
  • +Customize frameworks and templates to your company context
  • +Use skill for first drafts, refine with stakeholder input
  • +Document successful prompt patterns for PM tasks
  • +Combine AI efficiency with human judgment and intuition

✗ Don't

  • Don't publish competitive analysis without fact-checking
  • Don't finalize user stories without engineering review
  • Don't make prioritization decisions solely on AI scoring
  • Don't skip customer validation of generated requirements
  • Don't ignore company-specific context and culture

💡 Pro Tips

  • Provide context: company goals, constraints, customer feedback
  • Ask for alternatives: 'Show 3 ways to prioritize this roadmap'
  • Request stakeholder-specific formatting: 'Executive summary vs. engineering spec'
  • Use skill for 70% generation + 30% customization to company needs

When to Use This

✓ Use When

Use for user story writing, competitive research, roadmap prioritization, stakeholder communication, and PRD drafting. Best for reducing repetitive documentation and research work.

✗ Avoid When

Avoid for strategic product vision (requires deep customer empathy), pricing decisions (needs market and financial expertise), or when face-to-face customer discovery is more valuable than speed.

Learning Path

  1. 1Basic: user stories, feature specs, status updates
  2. 2Intermediate: competitive analysis, prioritization frameworks, PRDs
  3. 3Advanced: product strategy, go-to-market planning, OKR setting
  4. 4Expert: product vision, market positioning, business model innovation

Discussion

Product Hunt–style comments (not star reviews)
  • No comments yet — start the thread.
general reviews

Ratings

4.761 reviews
  • Zaid Agarwal· Dec 28, 2024

    I recommend gmgn-swap for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.

  • Chen Kim· Dec 12, 2024

    gmgn-swap fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.

  • Daniel Yang· Dec 12, 2024

    Registry listing for gmgn-swap matched our evaluation — installs cleanly and behaves as described in the markdown.

  • Layla Flores· Dec 12, 2024

    Useful defaults in gmgn-swap — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.

  • Chen Huang· Dec 8, 2024

    We added gmgn-swap from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.

  • Aisha Khanna· Nov 19, 2024

    gmgn-swap fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.

  • Sakshi Patil· Nov 3, 2024

    Keeps context tight: gmgn-swap is the kind of skill you can hand to a new teammate without a long onboarding doc.

  • Li Abebe· Nov 3, 2024

    I recommend gmgn-swap for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.

  • Amelia Farah· Nov 3, 2024

    gmgn-swap reduced setup friction for our internal harness; good balance of opinion and flexibility.

  • Isabella Gonzalez· Nov 3, 2024

    gmgn-swap is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.

showing 1-10 of 61

1 / 7