mirror of
https://github.com/GMGNAI/gmgn-skills.git
synced 2026-07-28 01:07:44 +00:00
Compare commits
11 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 2d0cb7348d | |||
| ddc025bb97 | |||
| e9b08214a2 | |||
| f96519941e | |||
| fd8a1c4d2a | |||
| 0282a9a09b | |||
| 17d7de841e | |||
| bc64360e80 | |||
| 134a11593c | |||
| 32d2fd2aac | |||
| 8ed53df6d7 |
+16
-12
@@ -608,14 +608,17 @@ gmgn-cli order strategy create \
|
||||
--from <wallet_address> \
|
||||
--base-token <base_token_address> \
|
||||
--quote-token <quote_token_address> \
|
||||
--order-type <limit_order> \
|
||||
--sub-order-type <buy_low|buy_high|stop_loss|take_profit> \
|
||||
--check-price <price> \
|
||||
--order-type <limit_order|smart_trade> \
|
||||
--sub-order-type <buy_low|buy_high|stop_loss|take_profit|mix_trade> \
|
||||
[--check-price <price>] \
|
||||
[--open-price <price>] \
|
||||
[--amount-in <amount> | --amount-in-percent <pct>] \
|
||||
[--slippage <n> | --auto-slippage] \
|
||||
[--limit-price-mode <exact|slippage>] \
|
||||
[--expire-in <seconds>] \
|
||||
[--sell-ratio-type <buy_amount|hold_amount>] \
|
||||
[--quote-investment <amount>] \
|
||||
[--condition-orders <json>] \
|
||||
[--priority-fee <sol>] \
|
||||
[--tip-fee <amount>] \
|
||||
[--gas-price <gwei>] \
|
||||
@@ -625,18 +628,21 @@ gmgn-cli order strategy create \
|
||||
|
||||
| Option | Required | Description |
|
||||
|--------|----------|-------------|
|
||||
| `--chain` | Yes | `sol` / `bsc` / `base` |
|
||||
| `--chain` | Yes | `sol` / `bsc` / `base` / `eth` |
|
||||
| `--from` | Yes | Wallet address (must match API Key binding) |
|
||||
| `--base-token` | Yes | Base token contract address |
|
||||
| `--quote-token` | Yes | Quote token contract address |
|
||||
| `--order-type` | Yes | Order type: `limit_order` |
|
||||
| `--sub-order-type` | Yes | Sub-order type: `buy_low` / `buy_high` / `stop_loss` / `take_profit` |
|
||||
| `--check-price` | Yes | Trigger check price |
|
||||
| `--order-type` | Yes | Order type: `limit_order` / `smart_trade` |
|
||||
| `--sub-order-type` | Yes | `limit_order`: `buy_low` / `buy_high` / `stop_loss` / `take_profit`; `smart_trade` with condition_orders: `mix_trade` |
|
||||
| `--check-price` | No* | Trigger check price — required for `limit_order`; omit for `smart_trade` (trigger is in the `buy_low` condition order) |
|
||||
| `--open-price` | No | Open price of the position |
|
||||
| `--amount-in` | No* | Input amount (smallest unit); required unless `--amount-in-percent` is used |
|
||||
| `--amount-in-percent` | No* | Input as percentage (e.g. `50` = 50%); required unless `--amount-in` is used |
|
||||
| `--limit-price-mode` | No | `exact` / `slippage` (default: `slippage`) |
|
||||
| `--expire-in` | No | Order expiry in seconds |
|
||||
| `--sell-ratio-type` | No | `buy_amount` (default) / `hold_amount` |
|
||||
| `--quote-investment` | No | Quote token investment amount (`smart_trade`) |
|
||||
| `--condition-orders` | No | JSON array of condition sub-orders for `smart_trade`. Must include one `buy_low` entry (with `check_price` lower than `open_price`) plus at least one TP/SL entry |
|
||||
| `--slippage` | No | Slippage tolerance, e.g. `0.01` = 1% |
|
||||
| `--auto-slippage` | No | Enable automatic slippage |
|
||||
| `--priority-fee` | No | Priority fee in SOL (**required for SOL chain**) |
|
||||
@@ -730,11 +736,10 @@ gmgn-cli cooking create \
|
||||
--buy-amt <amount> \
|
||||
[--image <base64> | --image-url <url>] \
|
||||
[--slippage <n> | --auto-slippage] \
|
||||
[--description <text>] \
|
||||
[--website <url>] [--twitter <url>] [--telegram <url>] \
|
||||
[--fee <amount>] [--priority-fee <sol>] [--tip-fee <amount>] [--gas-price <amount>] \
|
||||
[--max-fee-per-gas <amount>] [--max-priority-fee-per-gas <amount>] \
|
||||
[--anti-mev] [--anti-mev-mode <normal|secure>] \
|
||||
[--anti-mev] [--anti-mev-mode <off|normal|secure>] \
|
||||
[--raised-token <symbol>] \
|
||||
[--dev-wallet-bps <n>] [--dev-gas <amount>] [--dev-priority <amount>] [--dev-tip <amount>] [--dev-max-fee-per-gas <amount>] \
|
||||
[--approve-vision <v1|v2>] [--source <source>] \
|
||||
@@ -761,7 +766,6 @@ gmgn-cli cooking create \
|
||||
| `--image-url` | No* | Token logo URL; required unless `--image` is used |
|
||||
| `--slippage` | No* | Slippage tolerance, e.g. `0.01` = 1%; required unless `--auto-slippage` is used |
|
||||
| `--auto-slippage` | No* | Enable automatic slippage; required unless `--slippage` is used |
|
||||
| `--description` | No | Token description / project pitch |
|
||||
| `--website` | No | Website URL |
|
||||
| `--twitter` | No | Twitter link |
|
||||
| `--telegram` | No | Telegram link |
|
||||
@@ -772,7 +776,7 @@ gmgn-cli cooking create \
|
||||
| `--max-fee-per-gas` | No | Max fee per gas in wei (**EVM only**) |
|
||||
| `--max-priority-fee-per-gas` | No | Max priority fee per gas in wei (**EVM only**) |
|
||||
| `--anti-mev` | No | Enable anti-MEV protection (**SOL only**) |
|
||||
| `--anti-mev-mode` | No | Anti-MEV mode: `normal` / `secure` (**SOL only**) |
|
||||
| `--anti-mev-mode` | No | Anti-MEV mode: `off` / `normal` / `secure` (**SOL only**) |
|
||||
| `--raised-token` | No | Raise token symbol: `pump`→`USDC`; `bonk`→`USD1`; `fourmeme`→`USDT`/`USD1`; omit for native |
|
||||
| `--dev-wallet-bps` | No | Dev wallet fee share in basis points (100 = 1%) |
|
||||
| `--dev-gas` | No | Dev gas amount |
|
||||
@@ -784,7 +788,7 @@ gmgn-cli cooking create \
|
||||
| `--is-mayhem` | No | Enable Mayhem mode (**Pump.fun only**) |
|
||||
| `--is-cashback` | No | Enable Cashback (**Pump.fun only**) |
|
||||
| `--is-buy-back` | No | Enable Agent Auto Buyback (**Pump.fun only**) |
|
||||
| `--pump-fee-share-list` | No | Fee share list as JSON array: `[{"provider":"github","username":"<handle>","basic_points":<n>}]` (**Pump.fun only**) |
|
||||
| `--pump-fee-share-list` | No | Fee share list as JSON array: `[{"provider":"twitter","username":"<handle>","basic_points":<n>}]` (**Pump.fun only**) |
|
||||
| `--flap-rate-conf` | No | Rate config as JSON object (**Flap only**) |
|
||||
| `--fourmeme-rate-conf` | No | Rate config as JSON object (**FourMeme only**) |
|
||||
| `--bags-fee-share-list` | No | Fee share list as JSON array: `[{"provider":"twitter","username":"<handle>","basic_points":<n>}]` (**BAGS only**) |
|
||||
|
||||
Generated
+2
-2
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "gmgn-cli",
|
||||
"version": "1.3.8",
|
||||
"version": "1.4.1",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "gmgn-cli",
|
||||
"version": "1.3.8",
|
||||
"version": "1.4.1",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"commander": "^12.1.0",
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "gmgn-cli",
|
||||
"version": "1.3.8",
|
||||
"version": "1.4.1",
|
||||
"description": "GMGN OpenAPI CLI — call GMGN market, token, portfolio and swap APIs from the command line",
|
||||
"type": "module",
|
||||
"bin": {
|
||||
|
||||
@@ -62,6 +62,16 @@ When the user names a platform colloquially (e.g. "pump.fun", "four.meme"), map
|
||||
|
||||
**Anti-MEV** (`--anti-mev`) is only supported on `sol`. Passing it on `bsc` or `base` will return a 400 error.
|
||||
|
||||
### Quote Token conversion (when `--raised-token` is set)
|
||||
|
||||
`--buy-amt` is **always in native token units** (SOL / BNB / ETH), even when raising with a quote token like USDC / USD1 / USDT. If the user states the amount in the quote token, convert it to native yourself before passing it:
|
||||
|
||||
```
|
||||
buy_amt_in_native = quote_amount × quote_price / native_price
|
||||
```
|
||||
|
||||
This conversion applies to **`--buy-amt`, and the `buy_amt` field inside `--buy-wallets` and `--snip-buy-wallets`**. It does **not** apply to `--sell-configs` (`check_price` there is always a USD market cap, not a token amount). Round to the chain's native decimals. When `--raised-token` is empty/native, no conversion is needed.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- `cooking stats`: Only `GMGN_API_KEY` required
|
||||
@@ -151,7 +161,7 @@ gmgn-cli cooking stats [--raw]
|
||||
| `--max-fee-per-gas` | No | Max fee per gas in wei (**EVM only**) |
|
||||
| `--max-priority-fee-per-gas` | No | Max priority fee per gas in wei (**EVM only**) |
|
||||
| `--anti-mev` | No | Enable anti-MEV protection (**SOL only**; rejected on BSC / BASE) |
|
||||
| `--anti-mev-mode` | No | Anti-MEV mode: `normal` / `secure` (**SOL only**) |
|
||||
| `--anti-mev-mode` | No | Anti-MEV mode: `off` / `normal` / `secure` (**SOL only**) |
|
||||
| `--raised-token` | No | Raise token symbol. `pump`: `USDC`; `bonk`: `USD1`; `fourmeme`: `USDT` / `USD1`; omit or `""` for native |
|
||||
| `--dev-wallet-bps` | No | Dev wallet fee share in basis points (100 = 1%) |
|
||||
| `--dev-gas` | No | Dev gas amount |
|
||||
@@ -163,7 +173,7 @@ gmgn-cli cooking stats [--raw]
|
||||
| `--is-mayhem` | No | Enable Mayhem mode (**Pump.fun only**) |
|
||||
| `--is-cashback` | No | Enable Cashback (**Pump.fun only**) |
|
||||
| `--is-buy-back` | No | Enable Agent Auto Buyback (**Pump.fun only**) |
|
||||
| `--pump-fee-share-list` | No | Pump.fun fee share list as JSON array: `[{"provider":"github","username":"<handle>","basic_points":<n>}]` (**Pump.fun only**) |
|
||||
| `--pump-fee-share-list` | No | Pump.fun fee share list as JSON array: `[{"provider":"twitter","username":"<handle>","basic_points":<n>}]` (**Pump.fun only**) |
|
||||
| `--flap-rate-conf` | No | Flap rate config as JSON object (**Flap only**) |
|
||||
| `--fourmeme-rate-conf` | No | FourMeme rate config as JSON object (**FourMeme only**) |
|
||||
| `--bags-fee-share-list` | No | BAGS fee share list as JSON array: `[{"provider":"twitter","username":"<handle>","basic_points":<n>}]` (**BAGS only**) |
|
||||
@@ -181,6 +191,23 @@ gmgn-cli cooking stats [--raw]
|
||||
|
||||
The structured flags (`--pump-fee-share-list`, `--bags-fee-share-list`, `--flap-rate-conf`, `--fourmeme-rate-conf`, `--buy-wallets`, `--snip-buy-wallets`, `--buy-trade-config`, `--sell-trade-config`, `--sell-configs`) each accept a **JSON string**. This section documents the exact JSON schema for each.
|
||||
|
||||
### Platform capability matrix
|
||||
|
||||
Which advanced features each platform supports. Do not send a field a platform does not support.
|
||||
|
||||
| Platform | `--dex` | Chain | Platform-specific fields | Bundle (`--buy-wallets`) | Sniper (`--snip-buy-wallets`) | Cashback | Mayhem |
|
||||
|---|---|---|---|---|---|---|---|
|
||||
| Pump.fun | `pump` | SOL | `--pump-fee-share-list` / `--dev-wallet-bps` / `--is-buy-back` | ✅ up to 12 wallets | ✅ up to 10 | ✅ | ✅ |
|
||||
| Bonk | `bonk` | SOL | `--bonk-model` | ❌ | ✅ up to 10 | ❌ | ❌ |
|
||||
| BAGS | `bags` | SOL | `--bags-fee-share-list` / `--dev-wallet-bps` | ❌ | ✅ up to 10 | ❌ | ❌ |
|
||||
| FourMeme | `fourmeme` | BSC | `--fourmeme-rate-conf` | ✅ up to 3 wallets | ✅ up to 10 | ❌ | ❌ |
|
||||
| Flap | `flap` | BSC | `--flap-rate-conf` | ❌ | ✅ up to 10 | ❌ | ❌ |
|
||||
| Klik | `klik` | Base | — | ❌ | ✅ up to 10 | ❌ | ❌ |
|
||||
| Clanker | `clanker` | Base | — | ❌ | ✅ up to 10 | ❌ | ❌ |
|
||||
|
||||
- `--is-cashback` / `--is-mayhem` are **Pump.fun only** — other platforms reject them.
|
||||
- Bundle/auto-sell (`--sell-configs`) and sniper (`--snip-buy-wallets`) are available where the matrix shows ✅.
|
||||
|
||||
**Basis-points rule:** any field named `*_bps` / `basic_points` is in basis points (`100` = 1%). Where a section says the shares must sum, all entries must add up to exactly **10000** (FourMeme uses whole percents summing to **100** instead — see below).
|
||||
|
||||
**Always talk to the user in percentages, never basis points.** When asking for or confirming any share, fee, or split, phrase it as a percentage (e.g. *"What % goes to this wallet?"* → user says `"50%"`). Convert to the field's unit yourself when building the JSON — never ask the user for a raw bps number:
|
||||
@@ -206,11 +233,11 @@ Never set a fee-share split without the user's explicit instruction — it perma
|
||||
|
||||
| Field | Type | Required | Description |
|
||||
|---|---|---|---|
|
||||
| `provider` | string | Yes | `github` / `wallet` |
|
||||
| `username` | string | Yes | Username for `github`; a SOL address when `wallet` |
|
||||
| `provider` | string | Yes | `solana` / `twitter` / `github` |
|
||||
| `username` | string | Yes | Platform username; a SOL address when `provider` = `solana` |
|
||||
| `basic_points` | int | Yes | Share in bps — all entries must sum to **10000** |
|
||||
|
||||
Example: `--pump-fee-share-list '[{"provider":"github","username":"handle","basic_points":10000}]'`
|
||||
Example: `--pump-fee-share-list '[{"provider":"twitter","username":"handle","basic_points":10000}]'`
|
||||
|
||||
### Bonk (`--dex bonk`)
|
||||
|
||||
@@ -298,6 +325,29 @@ The buy/sell execution params for these CondMarket orders (slippage, fees, anti-
|
||||
> - `wallet_addresses` may mix `from_address` and `buy_wallets` entries. The server creates `signal_cooking` for snipe wallets and `pending_sell` for main/bundle wallets automatically.
|
||||
> - A wallet can carry multiple strategies (e.g. delay-sell 50%, then limit-sell the rest); each applies independently.
|
||||
|
||||
### TradeParam (`--buy-trade-config` / `--sell-trade-config`)
|
||||
|
||||
These tune the **execution params for the CondMarket buy/sell orders** (bundle buys, sniper buys, and auto-sell). They do **not** affect the main creation transaction (the dev tx uses the outer-level `--dev-*` flags). When omitted, they fall back to the outer-level transaction flags.
|
||||
|
||||
`--buy-trade-config` / `--sell-trade-config` each accept a single JSON object:
|
||||
|
||||
| Field | Type | Description |
|
||||
|---|---|---|
|
||||
| `slippage` | number | Slippage; only sent when truthy |
|
||||
| `fee` | string | Base gas / fee; only sent when truthy |
|
||||
| `priority_fee` | string | Priority fee; only sent when truthy |
|
||||
| `tip_fee` | string | SOL Jito tip; only sent when truthy |
|
||||
| `gas_price` | string | Gas price in wei (EVM); only sent when truthy |
|
||||
| `max_priority_fee_per_gas` | string | EVM EIP-1559; only sent when truthy |
|
||||
| `max_fee_per_gas` | string | EVM EIP-1559; only sent when truthy |
|
||||
| `auto_slippage` | bool | Always sent |
|
||||
| `is_anti_mev` | bool | Always sent |
|
||||
| `anti_mev_mode` | string | `off` / `normal` / `secure`; always sent |
|
||||
|
||||
Example: `--buy-trade-config '{"slippage":50,"auto_slippage":false,"priority_fee":"0.0005","tip_fee":"0.0001","is_anti_mev":true,"anti_mev_mode":"secure"}'`
|
||||
|
||||
> A standard launch with no `buyConfig` sends `{"is_anti_mev":false,"anti_mev_mode":"off"}` and an empty `buy_wallets` list.
|
||||
|
||||
## `cooking create` Response Fields
|
||||
|
||||
| Field | Type | Description |
|
||||
@@ -376,6 +426,57 @@ gmgn-cli cooking create \
|
||||
--sell-configs '[{"sell_type":"delay_sell","delay_sec":60,"sell_ratio":"0.5","wallet_addresses":["<wallet_address>"]}]'
|
||||
```
|
||||
|
||||
### Full worked examples
|
||||
|
||||
These mirror real launch configurations end-to-end. Copy and adapt — every JSON flag below is a valid payload shape.
|
||||
|
||||
**Pump.fun (SOL) — Bundle + Sniper + Auto-Sell + Agent Auto Buyback**
|
||||
|
||||
```bash
|
||||
gmgn-cli cooking create \
|
||||
--chain sol \
|
||||
--dex pump \
|
||||
--from DevWallet... \
|
||||
--name "Demo Coin" \
|
||||
--symbol DEMO \
|
||||
--buy-amt 0.5 \
|
||||
--image-url https://cdn.example.com/coin.png \
|
||||
--twitter https://x.com/handle/status/123 \
|
||||
--priority-fee 0.0005 \
|
||||
--tip-fee 0.0001 \
|
||||
--is-buy-back \
|
||||
--buy-trade-config '{"slippage":50,"auto_slippage":false,"priority_fee":"0.0005","tip_fee":"0.0001","is_anti_mev":true,"anti_mev_mode":"secure"}' \
|
||||
--buy-wallets '[{"from_address":"Wallet1...","buy_amt":"0.1"},{"from_address":"Wallet2...","buy_amt":"0.1"}]' \
|
||||
--snip-buy-wallets '[{"from_address":"Sniper1...","buy_amt":"0.05"}]' \
|
||||
--sell-configs '[{"sell_type":"delay_sell","sell_ratio":"1","wallet_addresses":["Wallet1..."],"delay_mili_sec":5000}]'
|
||||
```
|
||||
|
||||
- `--is-buy-back` is the Agent Auto Buyback mode (the backend also sets the agent fee internally).
|
||||
- `buy_amt` values in `--buy-wallets` / `--snip-buy-wallets` are in native SOL.
|
||||
- Bundle wallets ≤ 12, sniper wallets ≤ 10 on Pump.fun (see capability matrix).
|
||||
|
||||
**FourMeme (BSC) — user fee split + raise token USDT**
|
||||
|
||||
```bash
|
||||
gmgn-cli cooking create \
|
||||
--chain bsc \
|
||||
--dex fourmeme \
|
||||
--from 0xDev... \
|
||||
--name "Demo BSC" \
|
||||
--symbol DBSC \
|
||||
--buy-amt 0.0123 \
|
||||
--image-url https://cdn.example.com/coin.png \
|
||||
--raised-token USDT \
|
||||
--website https://demo.com \
|
||||
--gas-price 1000000000 \
|
||||
--auto-slippage \
|
||||
--fourmeme-rate-conf '{"fee_rate":1,"recipient_rate":50,"burn_rate":20,"divide_rate":20,"liquidity_rate":10,"min_sharing":100000,"recipient_address":"0xDev..."}'
|
||||
```
|
||||
|
||||
- `--buy-amt 0.0123` is **already converted to native BNB** from the USDT amount the user wanted (see Quote Token conversion). Do the conversion before building the command.
|
||||
- `--gas-price 1000000000` is wei (1 Gwei).
|
||||
- In `--fourmeme-rate-conf`, `recipient_rate + burn_rate + divide_rate + liquidity_rate` must sum to **100**.
|
||||
|
||||
## Output Format
|
||||
|
||||
### Pre-create Confirmation
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
name: gmgn-swap
|
||||
description: "[FINANCIAL EXECUTION] Buy and sell meme coins and crypto tokens on Solana, BSC, Base, or Ethereum — single swap, multi-wallet batch trading, limit orders, stop loss, take profit, trailing stop loss, trailing take profit via GMGN API. Requires explicit user confirmation. Use when user asks to buy, sell, or swap a token, trade from multiple wallets, set a limit order, stop loss, take profit, or check order status."
|
||||
argument-hint: "[--chain <chain> --from <wallet> --input-token <addr> --output-token <addr> --amount <n>] | [order get --chain <chain> --order-id <id>] | [gas-price --chain <eth|bsc|base|sol>] | [order strategy list --chain <chain> --group-tag <LimitOrder|STMix>] | [order strategy create --chain <chain> --order-type limit_order --sub-order-type <buy_low|buy_high|stop_loss|take_profit> ...]"
|
||||
argument-hint: "[--chain <chain> --from <wallet> --input-token <addr> --output-token <addr> --amount <n>] | [order get --chain <chain> --order-id <id>] | [gas-price --chain <eth|bsc|base|sol>] | [order strategy list --chain <chain> --group-tag <LimitOrder|STMix>] | [order strategy create --chain <chain> --order-type <limit_order|smart_trade> --sub-order-type <buy_low|buy_high|stop_loss|take_profit|mix_trade> ...]"
|
||||
metadata:
|
||||
cliHelp: "gmgn-cli swap --help"
|
||||
---
|
||||
@@ -512,7 +512,7 @@ All fields are omitempty — fields unsupported by a chain are omitted. Units ar
|
||||
## `order strategy create` Usage
|
||||
|
||||
```bash
|
||||
# Create a take-profit order: sell when price rises to target
|
||||
# Create a take-profit order: sell when price rises to target (limit_order)
|
||||
gmgn-cli order strategy create \
|
||||
--chain sol \
|
||||
--from <wallet_address> \
|
||||
@@ -524,7 +524,7 @@ gmgn-cli order strategy create \
|
||||
--amount-in 1000000 \
|
||||
--slippage 0.01
|
||||
|
||||
# Create a stop-loss order: sell when price drops to target
|
||||
# Create a stop-loss order: sell when price drops to target (limit_order)
|
||||
gmgn-cli order strategy create \
|
||||
--chain sol \
|
||||
--from <wallet_address> \
|
||||
@@ -535,6 +535,19 @@ gmgn-cli order strategy create \
|
||||
--check-price 0.0005 \
|
||||
--amount-in-percent 100 \
|
||||
--slippage 0.01
|
||||
|
||||
# Create a smart_trade with buy_low entry + take-profit + stop-loss (smart_trade)
|
||||
gmgn-cli order strategy create \
|
||||
--chain sol \
|
||||
--from <wallet_address> \
|
||||
--base-token <token_address> \
|
||||
--quote-token <sol_address> \
|
||||
--order-type smart_trade \
|
||||
--sub-order-type mix_trade \
|
||||
--open-price 0.000082 \
|
||||
--amount-in 1000000 \
|
||||
--slippage 0.01 \
|
||||
--condition-orders '[{"order_type":"buy_low","side":"buy","check_price":"0.00008"},{"order_type":"profit_stop","side":"sell","price_scale":"100","sell_ratio":"50"},{"order_type":"loss_stop","side":"sell","price_scale":"50","sell_ratio":"100"}]'
|
||||
```
|
||||
|
||||
## `order strategy create` Parameters
|
||||
@@ -545,14 +558,16 @@ gmgn-cli order strategy create \
|
||||
| `--from` | Yes | all | Wallet address (must match API Key binding) |
|
||||
| `--base-token` | Yes | all | Base token contract address |
|
||||
| `--quote-token` | Yes | all | Quote token contract address |
|
||||
| `--order-type` | Yes | all | Order type: `limit_order` |
|
||||
| `--sub-order-type` | Yes | all | Sub-order type: `buy_low` / `buy_high` / `stop_loss` / `take_profit` |
|
||||
| `--check-price` | Yes | all | Trigger price in USD — the order fires when the token's USD price crosses this value |
|
||||
| `--order-type` | Yes | all | Order type: `limit_order` / `smart_trade` |
|
||||
| `--sub-order-type` | Yes | all | `limit_order`: `buy_low` / `buy_high` / `stop_loss` / `take_profit`; `smart_trade` with condition_orders: `mix_trade` |
|
||||
| `--check-price` | No* | all | Trigger price — required for `limit_order`; omit for `smart_trade` (trigger is in the `buy_low` condition order) |
|
||||
| `--open-price` | No | all | Open price of the position |
|
||||
| `--amount-in` | No* | all | Input amount (smallest unit). Mutually exclusive with `--amount-in-percent` |
|
||||
| `--amount-in-percent` | No* | all | Input as percentage (e.g. `50` = 50%). Mutually exclusive with `--amount-in` |
|
||||
| `--limit-price-mode` | No | all | `exact` / `slippage` (default: `slippage`) |
|
||||
| `--expire-in` | No | all | Order expiry in seconds |
|
||||
| `--sell-ratio-type` | No | all | `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 |
|
||||
| `--quote-investment` | No | all | Quote token investment amount (`smart_trade`) |
|
||||
| `--slippage` | No | all | Slippage tolerance, e.g. `0.01` = 1%. Mutually exclusive with `--auto-slippage` |
|
||||
| `--auto-slippage` | No | all | Enable automatic slippage |
|
||||
| `--priority-fee` | No | `sol` | Priority fee in SOL (≥ 0.00001). **Required** for SOL. |
|
||||
@@ -563,6 +578,7 @@ gmgn-cli order strategy create \
|
||||
| `--max-fee-per-gas` | No | `bsc` / `base` / `eth` | EIP-1559 max fee per gas. Clamped per chain minimums. |
|
||||
| `--max-priority-fee-per-gas` | No | `bsc` / `base` / `eth` | EIP-1559 max priority fee per gas. Clamped per chain minimums; capped to `--max-fee-per-gas`. |
|
||||
| `--anti-mev` | No | sol / bsc / eth | Enable anti-MEV protection. Not supported on `base`. |
|
||||
| `--condition-orders` | No | all | JSON array of condition sub-orders for `smart_trade`. Must include one `buy_low` entry (with `check_price` lower than `open_price`) plus at least one TP/SL entry. |
|
||||
|
||||
### `order strategy create` Response Fields
|
||||
|
||||
|
||||
@@ -127,7 +127,7 @@ export interface StrategyCreateParams {
|
||||
quote_token: string;
|
||||
order_type: string;
|
||||
sub_order_type: string;
|
||||
check_price: string;
|
||||
check_price?: string;
|
||||
open_price?: string;
|
||||
amount_in?: string;
|
||||
amount_in_percent?: string;
|
||||
@@ -148,6 +148,8 @@ export interface StrategyCreateParams {
|
||||
priority_fee?: string;
|
||||
tip_fee?: string;
|
||||
custom_rpc?: string;
|
||||
condition_orders?: StrategyConditionOrder[];
|
||||
quote_investment?: string;
|
||||
}
|
||||
|
||||
export interface StrategyCancelParams {
|
||||
@@ -171,8 +173,8 @@ export interface TokenSignalGroup {
|
||||
}
|
||||
|
||||
export interface PumpFeeShareInfo {
|
||||
provider: string; // "github" | "wallet"
|
||||
username: string; // username for github; a SOL address when wallet
|
||||
provider: string; // "solana" | "twitter" | "github"
|
||||
username: string; // platform username; a SOL address when provider = "solana"
|
||||
basic_points: number;
|
||||
}
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ export function registerCookingCommands(program: Command): void {
|
||||
.option("--max-fee-per-gas <amount>", "Max fee per gas in wei (EVM only)")
|
||||
.option("--max-priority-fee-per-gas <amount>", "Max priority fee per gas in wei (EVM only)")
|
||||
.option("--anti-mev", "Enable anti-MEV protection (SOL only)")
|
||||
.option("--anti-mev-mode <mode>", "Anti-MEV mode: normal / secure (SOL only)")
|
||||
.option("--anti-mev-mode <mode>", "Anti-MEV mode: off / normal / secure (SOL only)")
|
||||
.option("--raised-token <symbol>", "Raise token symbol: pump→USDC; bonk→USD1; fourmeme→USDT/USD1; leave empty for native")
|
||||
.option("--dev-wallet-bps <n>", "Dev wallet fee in basis points (100 = 1%)", parseInt)
|
||||
.option("--dev-gas <amount>", "Dev gas amount")
|
||||
|
||||
+13
-4
@@ -203,14 +203,16 @@ export function registerSwapCommands(program: Command): void {
|
||||
.requiredOption("--from <address>", "Wallet address (must match API Key binding)")
|
||||
.requiredOption("--base-token <address>", "Base token contract address")
|
||||
.requiredOption("--quote-token <address>", "Quote token contract address")
|
||||
.requiredOption("--order-type <type>", "Order type: limit_order")
|
||||
.requiredOption("--sub-order-type <type>", "Sub-order type: buy_low / buy_high / stop_loss / take_profit")
|
||||
.requiredOption("--check-price <price>", "Trigger check price")
|
||||
.requiredOption("--order-type <type>", "Order type: limit_order / smart_trade")
|
||||
.requiredOption("--sub-order-type <type>", "Sub-order type: buy_low / buy_high / stop_loss / take_profit (limit_order); mix_trade (smart_trade with condition_orders)")
|
||||
.option("--check-price <price>", "Trigger check price (required for limit_order; omit for smart_trade)")
|
||||
.option("--open-price <price>", "Open price of the position")
|
||||
.option("--amount-in <amount>", "Input amount (smallest unit)")
|
||||
.option("--amount-in-percent <pct>", "Input amount as a percentage (e.g. 50 = 50%)")
|
||||
.option("--limit-price-mode <mode>", "Price mode: exact / slippage (default: slippage)")
|
||||
.option("--expire-in <seconds>", "Order expiry in seconds", parseInt)
|
||||
.option("--sell-ratio-type <type>", "Sell ratio basis: buy_amount (default) / hold_amount")
|
||||
.option("--quote-investment <amount>", "Quote token investment amount (smart_trade)")
|
||||
.option("--slippage <n>", "Slippage tolerance (e.g. 0.01 = 1%)", parseFloat)
|
||||
.option("--auto-slippage", "Enable automatic slippage")
|
||||
.option("--priority-fee <sol>", "Priority fee in SOL (required for SOL chain)")
|
||||
@@ -221,6 +223,7 @@ export function registerSwapCommands(program: Command): void {
|
||||
.option("--max-fee-per-gas <amount>", "EIP-1559 max fee per gas (BSC / BASE / ETH)")
|
||||
.option("--max-priority-fee-per-gas <amount>", "EIP-1559 max priority fee per gas (BSC / BASE / ETH)")
|
||||
.option("--anti-mev", "Enable anti-MEV protection")
|
||||
.option("--condition-orders <json>", "JSON array of condition sub-orders for smart_trade (must include a buy_low entry + TP/SL entries)")
|
||||
.option("--raw", "Output raw JSON")
|
||||
.action(async (opts) => {
|
||||
if (!opts.amountIn && !opts.amountInPercent) {
|
||||
@@ -239,13 +242,15 @@ export function registerSwapCommands(program: Command): void {
|
||||
quote_token: opts.quoteToken,
|
||||
order_type: opts.orderType,
|
||||
sub_order_type: opts.subOrderType,
|
||||
check_price: opts.checkPrice,
|
||||
};
|
||||
if (opts.checkPrice) params.check_price = opts.checkPrice;
|
||||
if (opts.openPrice) params.open_price = opts.openPrice;
|
||||
if (opts.amountIn) params.amount_in = opts.amountIn;
|
||||
if (opts.amountInPercent) params.amount_in_percent = opts.amountInPercent;
|
||||
if (opts.limitPriceMode) params.limit_price_mode = opts.limitPriceMode;
|
||||
if (opts.expireIn != null) params.expire_in = opts.expireIn;
|
||||
if (opts.sellRatioType) params.sell_ratio_type = opts.sellRatioType;
|
||||
if (opts.quoteInvestment) params.quote_investment = opts.quoteInvestment;
|
||||
if (opts.slippage != null) params.slippage = opts.slippage;
|
||||
if (opts.autoSlippage) params.auto_slippage = true;
|
||||
if (opts.priorityFee) params.priority_fee = opts.priorityFee;
|
||||
@@ -256,6 +261,10 @@ export function registerSwapCommands(program: Command): void {
|
||||
if (opts.maxFeePerGas) params.max_fee_per_gas = opts.maxFeePerGas;
|
||||
if (opts.maxPriorityFeePerGas) params.max_priority_fee_per_gas = opts.maxPriorityFeePerGas;
|
||||
if (opts.antiMev) params.is_anti_mev = true;
|
||||
if (opts.conditionOrders) {
|
||||
try { params.condition_orders = JSON.parse(opts.conditionOrders); }
|
||||
catch { console.error("[gmgn-cli] --condition-orders must be valid JSON"); process.exit(1); }
|
||||
}
|
||||
const client = new OpenApiClient(getConfig(true));
|
||||
const data = await client.createStrategyOrder(params).catch(exitOnError);
|
||||
printResult(data, opts.raw);
|
||||
|
||||
Reference in New Issue
Block a user