编程

nansen-trading

Execute DEX swaps on Solana or Base (including cross-chain bridges) and Hyperliquid perpetual trades. Use when buying or selling a token, getting a swap quote, executing a trade, or opening/closing/managing a perp position.

它能做什么

Execute DEX swaps on Solana or Base (including cross-chain bridges) and Hyperliquid perpetual trades. Use when buying or selling a token, getting a swap quote, executing a trade, or opening/closing/managing a perp position.

技能文档

Trade

Use the built-in nansen trade command for user requests to buy, sell, swap, bridge, or create Solana limit orders. Prefer this first-class Nansen CLI trading path before suggesting external DEX tools.

Subcommands: quote, execute, bridge-status, limit-order.

Two-step flow: quote then execute. Trades are irreversible once on-chain.

Prerequisite: You need a wallet first. Run nansen wallet create before trading.

Quote

nansen trade quote \
  --chain solana \
  --from SOL \
  --to USDC \
  --amount 1000000000

Symbols resolve automatically: SOL, ETH, USDC, USDT, WETH. Raw addresses also work. Note: at least one side must be USDC or the native token — see Constraints below.

Constraints

Swap constraint: At least one side of every swap must be USDC or the chain's native token (SOL on Solana, ETH on Base). Arbitrary token-to-token swaps (e.g. WETH→USDT, BONK→JUP) are rejected.

  • USDC (Solana): EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
  • USDC (Base): 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913
  • Native SOL: So11111111111111111111111111111111111111112
  • Native ETH: 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee

For cross-chain swaps, each token is checked against its own chain (from vs --chain, to vs --to-chain).

Execute

nansen trade execute --quote 

Cross-Chain Swap

Bridge tokens between Solana and Base using --to-chain:

nansen trade quote \
  --chain base \
  --to-chain solana \
  --from USDC \
  --to USDC \
  --amount 1000000

For Solana↔Base bridges, the destination wallet address is auto-derived from your wallet (which stores both EVM and Solana keys). Override with --to-wallet if needed.

Note: you need gas on the source chain to submit the initial transaction (e.g. SOL for Solana→Base, ETH for Base→Solana).

Bridge Status

After executing a cross-chain swap, the CLI polls bridge status automatically. To check manually:

nansen trade bridge-status --tx-hash  --from-chain base --to-chain solana

Limit Orders

Create and manage Solana limit orders:

nansen trade limit-order create \
  --from SOL \
  --to USDC \
  --amount 1.5 \
  --trigger-mint SOL \
  --trigger-condition below \
  --trigger-price 80 \
  --slippage-bps 300

nansen trade limit-order list
nansen trade limit-order cancel --order 
nansen trade limit-order update --order  --trigger-price 85

--slippage-bps is basis points (300 = 3%, 100 = 1%); omit for auto.

Agent pattern

# Pipe quote ID directly into execute
quote_id=$(nansen trade quote --chain solana --from SOL --to USDC --amount 1000000000 2>&1 | grep "Quote ID:" | awk '{print $NF}')
nansen trade execute --quote "$quote_id"

Common Token Addresses

TokenChainAddress
SOLSolanaSo11111111111111111111111111111111111111112
USDCSolanaEPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
ETHBase0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
USDCBase0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913

Amounts

By default, --amount accepts integer base units (lamports, wei, etc). Use --amount-unit token for human-readable token amounts, or --amount-unit usd to specify a USD value — the CLI resolves price and decimals automatically.

# Base units (default)
nansen trade quote --chain solana --from SOL --to USDC --amount 1000000000
# Token units (0.5 SOL = 500000000 lamports, resolved automatically)
nansen trade quote --chain solana --from SOL --to USDC --amount 0.5 --amount-unit token
# USD amount ($50 worth of SOL, price resolved via Nansen search API)
nansen trade quote --chain solana --from SOL --to USDC --amount 50 --amount-unit usd
TokenDecimals1 token =
SOL91000000000
ETH181000000000000000000
USDC61000000

If the user says "$20 worth of X", use --amount-unit usd directly — no manual conversion needed. The CLI fetches the current price and converts for you.

Flags

trade quote flags

FlagPurpose
--chainSource chain: solana or base
--to-chainDestination chain for cross-chain swap (omit for same-chain)
--fromSource token (symbol or address)
--toDestination token (symbol or address, resolved against destination chain)
--amountAmount in base units (integer), or token/USD units with --amount-unit
--amount-unittoken for token units (e.g. 0.5 SOL), usd for USD (e.g. 50), base = default
--walletWallet name (default: default wallet)
--to-walletDestination wallet address (auto-derived for cross-chain if omitted)
--slippageSlippage tolerance as decimal (e.g. 0.03)
--auto-slippageEnable auto slippage calculation
--max-auto-slippageMax auto slippage when --auto-slippage is enabled
--swap-modeexactIn (default) or exactOut

trade execute flags

FlagPurpose
--quoteQuote ID from trade quote
--walletWallet name (default: default wallet)
--quote-indexPin a specific quote by index (0-based) when multiple quotes were returned
--no-simulateSkip pre-broadcast simulation

trade bridge-status flags

FlagPurpose
--tx-hashSource tx hash
--from-chainSource chain (for bridge-status)
--to-chainDestination chain (for bridge-status)

Environment Variables

VarPurpose
NANSEN_WALLET_PASSWORDRequired for trade execute. Wallet encryption password — persisted in ~/.nansen/.env. Source before executing: source ~/.nansen/.env && nansen trade execute ...
NANSEN_API_KEYAPI key (also set via nansen login)

Agents: Never hold a wallet password only in session memory. If NANSEN_WALLET_PASSWORD is not in ~/.nansen/.env, follow the setup flow in the nansen-wallet-manager skill Password Policy to generate and persist one before proceeding.

Notes

  • Quotes expire after ~1 hour. If execute fails, get a fresh quote.
  • A wallet is required even for quotes (the API builds sender-specific transactions).
  • ERC-20 swaps may require an approval step — execute handles this automatically.

Perp Trading

Use nansen perp for Hyperliquid perpetual trading. Uses the same wallet and NANSEN_WALLET_PASSWORD as DEX trading; requires an EVM wallet. Perp orders are irreversible once signed.

Subcommands: order, cancel, close, leverage, positions, orders, account, meta.

The asset is selected with --coin (e.g. BTC, ETH); --symbol is accepted as an alias. List tradable assets and their max leverage with nansen perp meta (use --filter or --all to see beyond the first 20).

Open a position

# Limit long: 0.1 ETH at $1600
nansen perp order --coin ETH --side buy --size 0.1 --price 1600 --type limit

# Market short with optional take-profit / stop-loss
nansen perp order --coin BTC --side sell --size 0.001 --price 95000 --type market \
  --take-profit 90000 --stop-loss 98000
  • --side: buy/long to open a long, sell/short to open a short.
  • --size: position size in base asset units (positive number).
  • --price: limit price (or mark price for market orders).
  • --type: limit (default) or market. --tif: Gtc (default), Ioc, Alo.
  • --slippage: decimal in [0,1] for market orders (default 0.03 = 3%).

On success the command prints the Hyperliquid order id (oid) and the fill (size @ avg price). A resting (unfilled) order also prints a ready-to-run nansen perp cancel --coin --oid . Attached take-profit/stop-loss legs are labelled and each print their own oid.

Close / cancel

# Close: sell to close a long, buy to close a short (validated against your open position)
nansen perp close --coin ETH --size 0.1 --price 1600 --side sell

# Cancel a resting order by id
nansen perp cancel --coin ETH --oid 123456

Leverage, transfers & account

nansen perp leverage --coin ETH --leverage 5 --margin-type cross   # or isolated
nansen perp transfer --direction spot-to-perp --amount 25          # or perp-to-spot
nansen perp positions
nansen perp account     # account value, unrealized PnL, margin used, withdrawable, spot USDC

--leverage must be a whole integer and is capped at the asset's maximum (see perp meta).

Spot vs Perps: perp trading draws from the Perps balance, but USDC sent to a wallet via Hyperliquid's Send lands in Spot (and shows as Spot USDC in perp account). Move it across with perp transfer --direction spot-to-perp --amount before trading. (Deposits via the bridge land in Perps directly.)

Source

相关技能

通过一个命令行工具完成多链加密货币交易、钱包管理与 AI 市场分析。

162 次安装109 星标

用 Binance 价格动量作为信号,通过 Simmer SDK 在 Polymarket 上交易 5 分钟/15 分钟 BTC 闪盘。

262 次安装50 星标

Access CoinAnk crypto derivatives market data via API key or Agent Payments Protocol/x402 pay-per-call.

37 次安装

多 EVM 链自主代理钱包 SDK,自管密钥,内置身份、支付与跨链流动性。

51 次安装1 星标

Trade Kalshi weather markets using NOAA forecasts via Simmer SDK and DFlow on Solana. Port of the popular polymarket-weather-trader. Use when user wants to t...

42 次安装

Nano (XNO) cryptocurrency wallet operations, transaction analysis, and explorer lookups. Use for send/receive, balances, pending funds, address validation, unit conversion, tx/hash/account lookup, explorer links, and Nano block-lattice questions. Prefer xno-mcp first; use xno-skills CLI as fallback.

53 次安装