AI agent skill for Bitget Wallet — token swap, cross-chain bridge, and gasless transactions via Order Mode API. Supports 7 EVM chains + Solana.
# Add to your Claude Code skills
git clone https://github.com/bitget-wallet-ai-lab/bitget-wallet-skill⚠️ MANDATORY: Load Domain Knowledge Before Any API Call
Before calling ANY business API, you MUST first load the corresponding docs/*.md file for that domain. This is non-negotiable — domain knowledge contains critical flow rules, parameter constraints, and pitfalls that cannot be inferred from command syntax alone. Skipping this step leads to silent failures, incorrect parameters, or broken flows.
| Business Domain | Must Load First | Before Calling |
|----------------|----------------|----------------|
| Swap / Trade | docs/swap.md | quote, confirm, make-order, send, get-order-details |
| Market Data / Token Analysis | docs/market-data.md | coin-market-info, security, coin-dev, kline, tx-info, liquidity, rankings, launchpad-tokens, search-tokens-v3 |
| Alpha Intelligence | docs/alpha.md | alpha-gems, alpha-signals, alpha-hunter-find, alpha-hunter-detail, agent-alpha-tags, agent-alpha-hunter-find, multi-agent-signal |
| Token Deep Analysis | docs/token-analyze.md | simple-kline, trading-dynamics, transaction-list, holders-info, profit-address-analysis, top-profit, compare-tokens |
| Address Discovery | docs/address-find.md | recommend-address-list |
| Wallet / Signing | docs/wallet-signing.md | Any signing operation, key derivation, order_sign.py, order_make_sign_send.py |
| Social Login Wallet | docs/social-wallet.md | social-wallet.py sign_transaction, sign_message, get_address |
| RWA Stock Trading | docs/rwa.md | Any RWA stock discovery, config, order, holdings |
| x402 Payments | | x402_pay.py, HTTP 402 payment flow |
| Token Transfer / Gasless | | transfer_make_sign_send.py, social_transfer_make_sign_send.py, get-transfer-order |
| First-Time Setup | | New wallet creation, first swap config |
| Command Reference | | When unsure about subcommand parameters or usage |
An AI Agent skill that wraps the Bitget Wallet API, enabling natural-language-driven on-chain data queries and swap operations.
| Principle | Description |
|-----------|-------------|
| Domain Knowledge + Tools | Not just API wrappers — includes swap flow (see docs/swap.md), signing guides, security models, and known pitfalls so agents make informed decisions |
| Zero External Dependencies | All code is self-contained. Solana signing is pure Python (Ed25519 + base58 built-in). EVM signing uses eth_account (standard). Only requests for API calls. No pip install needed for Solana |
| API Infrastructure, Not Reimplementation | Capabilities come from Bitget Wallet's production API. The skill provides the knowledge and tooling layer, not a parallel implementation |
| Human-in-the-Loop by Default | Swap operations generate transaction data but never sign autonomously. User confirmation required for all fund-moving actions |
Market side handles token discovery and analysis only — no trading, wallet, or signing. Skills layer computes scores and rules; backend provides raw data.
Atomic Tools (Agent orchestrates)
├── bgw_token_find Find tokens (chain scan / search / rankings / sectors)
├── bgw_token_check Check tokens (security / dev / anti-manipulation / signals / market)
├── bgw_token_analyze Analyze tokens (deep: timeline / trades / holdings / smart money)
├── bgw_alpha Alpha intelligence (gems / signals)
├── bgw_address_find Find addresses (by pool / role / criteria)
└── bgw_address_analyze Analyze addresses (scoring / PnL / style / operations / comparison)
Smart Tools (We orchestrate)
├── bgw_combo Smart combos (token + address permutation recipes)
└── bgw_monitor Continuous monitoring (token signals / address activity / price alerts)
No comments yet. Be the first to share your thoughts!
docs/x402-payments.mdDo NOT rely solely on the Quick Reference or examples in this SKILL.md — they are summaries only. The docs/ files are the authoritative source for each domain's rules and flow.
How to handle tasks:
docs/*.md file(s) from the table above before making any API calls for that domain.docs/ to decide which commands to run and how. Scripts lists each Python CLI with purpose, subcommands, and when to use them; docs/swap.md, docs/wallet-signing.md, docs/market-data.md, etc. describe flows and domain rules.python3 scripts/bitget-wallet-agent-api.py ..., python3 scripts/order_sign.py ...). For swap, balance, wallet, and signing, follow the flows in docs/swap.md and docs/wallet-signing.md.Balance query — choose the right API for the task:
Use batch-v2 for ALL balance queries — both general asset overview and swap pre-checks. It returns balance + price + token info in one call and supports all chains including Tron.
Before starting a new swap - two mandatory pre-checks:
Balance check (required): Run batch-v2 to verify the wallet has enough fromToken balance for the intended swap amount. Include native token ("") to check gas availability. If fromToken balance < fromAmount, inform the user of the shortfall and do not proceed. Gas mode decision: If native token balance is sufficient for gas → use --feature user_gas (preferred). If native token balance is near zero → use --feature no_gas (gasless, gas deducted from fromToken; requires swap amount ≥ ~$5 USD — below this threshold the API only returns user_gas). This choice must be passed to confirm.
python3 scripts/bitget-wallet-agent-api.py batch-v2 --chain <fromChain> --address <wallet> --contract "" --contract <fromContract>
Token risk check (required): Run check-swap-token for the intended fromToken and toToken. If error_code != 0, show msg and stop. If for any token data.list[].checkTokenList is non-empty, show the tips content to the user and let them decide whether to continue. If the toToken (swap target) has an item with waringType equal to "forbidden-buy", do not proceed with the swap and warn the user that this token cannot be used as the swap target.
python3 scripts/bitget-wallet-agent-api.py check-swap-token --from-chain ... --from-contract ... --from-symbol ... --to-chain ... --to-contract ... --to-symbol ...
Swap execution must strictly follow docs/swap.md Flow Overview — no shortcuts:
outAmount (expected), minAmount (minimum), gasTotalAmount (gas cost); check recommendFeatures for gas sufficiencyorder_make_sign_send.py for mnemonic/private-key wallets; use social_order_make_sign_send.py for Social Login Wallets — see docs/social-wallet.md)tips when status=successSee Scripts for full command details and docs/swap.md for the complete flow.
Technical reference: Base URL https://copenapi.bgwapi.io (token auth, no API key). All commands via scripts/bitget-wallet-agent-api.py — run with --help for full subcommand list, or see docs/commands.md.
Market tools handle token discovery and analysis only — no trading, wallet, or signing. One tool per domain, depth controlled by parameters.
| Use Case | Command | Description |
|----------|---------|-------------|
| Scan new pools | launchpad-tokens | Filter by platform/stage/MC/LP/holders/progress |
| Search tokens | search-tokens-v3 | Keyword or contract search with ordering |
| Rankings | rankings | topGainers / topLosers / Hotpicks |
| New launches | historical-coins | Discover tokens by timestamp, paginated |
Mandatory output rule: All token discovery results must include chain and contract address (CA) for every token. This enables the user to directly proceed to check, analyze, or trade. Never omit chain or CA from discovery output.
| Use Case | Command | Description |
|----------|---------|-------------|
| Security audit | security | Honeypot/mint/proxy + buy/sell tax + risk level |
| Dev analysis | coin-dev | Dev's historical projects + rug status + migration info |
| Market overview | coin-market-info | Price/MC/FDV/pool list/price changes/narratives |
| Token info | token-info | Basic info + social links |
| K-line | kline | OHLC + buy/sell volume |
| Tx stats | tx-info | Buy/sell volume and trader count |
| Liquidity | liquidity | Pool details |
Recommended check order: coin-market-info → security → coin-dev → (kline + tx-info)
Pre-trade mandatory: check-swap-token → security
Full domain knowledge and Skills-layer computation rules in docs/market-data.md.
Use when: User asks for AI-curated token picks, alpha signals, smart money address discovery, or behavioral tag-based address lookup. Use bgw_alpha (not bgw_token_find) when the intent is AI/signal-driven discovery rather than keyword/filter-based search.
| Use Case | Command | Description |
|----------|---------|-------------|
| Alpha gems | alpha-gems | AI-curated high-potential tokens with strategy labels |
| Alpha signals | alpha-signals | Smart money/KOL/growth signals with filtering |
| Alpha hunter find | alpha-hunter-find | Smart money address list with multi-dimensional scoring |
| Alpha hunter detail | alpha-hunter-detail | Detailed scoring factors for a specific address |
| Agent alpha tags | agent-alpha-tags | List available Agent tag labels |
| Agent alpha hunter find | agent-alpha-hunter-find | Find addresses by Agent tag with scores |
| Multi-agent signal | multi-agent-signal | Tokens currently bought by Agent-tagged addresses (cross-strategy consensus) |
Full domain knowledge in docs/alpha.md.
| Use Case | Command | Description |
|----------|---------|-------------|
| K-line + signals | simple-kline | K-line with KOL/smart money trade signals + hot level |
| Trading dynamics | trading-dynamics | 4-window (5m/1h/4h/24h) buy/sell pressure + address quality |
| Transactions | transaction-list | Tagged trades (smart money/KOL/dev), direction/time filtering |
| Holders | holders-info | Top100 distribution + PnL + tag classification |
| Profit analysis | profit-address-analysis | Profitable address stats + position dynamics |
| Top profit | top-profit | Top profitable address list with PnL details |
| Compare | compare-tokens | Side-by-side K-line comparison of two tokens |
Recommended analysis order: trading-dynamics → simple-kline → holders-info → transaction-list → profit analysis
Full domain knowledge in docs/token-analyze.md.
| Use Case | Command | Description |
|----------|---------|-------------|
| Find by role | recommend-address-list | Find KOL / smart money addresses with performance filters (win rate, profit, chain, trade count) |
Filter dimensions: role group (KOL/smart money/all), chain, win rate, profit, trade count. Sort by profit/win rate/trade count/last activity. Time windows: 24h/7d/30d.
Full domain knowledge in docs/address-find.md.
Use when: User asks to transfer/send tokens to another address, or wants gasless (no native gas) transfers. This is a direct on-chain transfer, NOT a swap.
| Use Case | Command / Script | Description |
|----------|-----------------|-------------|
| Transfer (mnemonic/private-key) | transfer_make_sign_send.py | makeTransferOrder + sign + submit in one run |
| Transfer (Social Login Wallet) | social_transfer_make_sign_send.py | makeTransferOrder + sign (TEE) + submit. No local key needed. |
| Poll status | get-transfer-order | Real-time chain query for order status |
Supported chains: eth, bnb, base, arbitrum, matic, morph, sol
Gasless mode: Pass --gasless to enable gas payment from stablecoin balance (USDT/USDC) instead of native token. Supports all chains above. Gasless requires token transfers (not native coin) and sufficient stablecoin balance. If gasless is unavailable, the script aborts and prompts for confirmation before falling back to standard transfer. The agent must NOT auto-confirm — inform the user and let them decide.
Key rules:
batch-v2) before transferestimateRevert — if true, abort the transfertransfer_make_sign_send.py to avoid expirytxid may be getgas_task_xxx format (not final chain hash); poll get-transfer-order for final status--override-7702 without first warning the user that it permanently replaces their existing third-party EIP-7702 binding. If API returns error 30108, explain the risk and get explicit user confirmation before retrying with --override-7702Full domain knowledge in docs/transfer.md.
Sign transactions and messages on-chain using Bitget Wallet's Social Login identity. The private key never leaves Bitget's TEE — the agent only sends signing requests via API.
.social-wallet-secret (appid/appsecret). Not to the user, not to anyone.social-wallet.py. Treat it as a black box.sign_transaction or sign_message, always show the user what will be signed (chain, to address, amount, data) and wait for explicit confirmation ("confirm", "yes", "execute"). Never sign without user approval.Check if .social-wallet-secret exists in the skill directory:
test -f <skill_dir>/.social-wallet-secret && echo "OK" || echo "NOT_FOUND"
If NOT_FOUND, guide user:
<skill_dir>/.social-wallet-secret as {"appid":"...","appsecret":"..."}chmod 600 <skill_dir>/.social-wallet-secretWhen the user is using a Social Login Wallet, all bitget-wallet-agent-api.py calls must include --wallet-id to identify the wallet session. The walletId is obtained from the profile endpoint.
Step 1: Get walletId (once per session)
python3 scripts/social-wallet.py profile
# Returns: {"walletId": "<id>"}
Step 2: Pass walletId to all API calls
python3 scripts/bitget-wallet-agent-api.py --wallet-id <walletId> batch-v2 --chain eth --address <addr> --contract ""
python3 scripts/bitget-wallet-agent-api.py --wallet-id <walletId> quote --from-chain ... --to-chain ...
# ... all other commands
Without --wallet-id, the API uses the default toc_agent token (for mnemonic/private-key wallets). With --wallet-id, the API routes requests to the Social Login Wallet's backend identity.
# Get wallet profile (walletId)
python3 scripts/social-wallet.py profile
# Sign transaction (ETH/BTC/SOL/Tron + all EVM chains)
python3 scripts/social-wallet.py core sign_transaction '{"chain":"eth","to":"0x...","value":0.1,"nonce":0,"gasLimit":21000,"gasPrice":0.0000001}'
# Sign message
python3 scripts/social-wallet.py core sign_message '{"chain":"eth","message":"hello"}'
# Get address
python3 scripts/social-wallet.py core get_address '{"chain":"eth"}'
# Batch get addresses
python3 scripts/social-wallet.py batchGetAddressAndPubkey '{"chainList":["eth","btc","sol"]}'
Supported chains: BTC, ETH, SOL, Tron + 16 EVM chains. See docs/social-wallet.md for full chain list and per-chain parameters.
Date-based versioning (YYYY.M.DD-N). Current version in frontmatter. Check at most once per 7 days: compare frontmatter version against https://raw.githubusercontent.com/bitget-wallet-ai-lab/bitget-wallet-skill/main/CHANGELOG.md. If newer, inform user and ask to upgrade.
First-time wallet setup & swap configuration: See
docs/first-time-setup.md.
Key rules (always apply):
--private-key-file with temp file (mktemp). Never pass keys as CLI arguments.All BGW API amount fields use human-readable values, not smallest units (wei, lamports, token decimals). In the swap flow, fromAmount (and toAmount, etc.) must be the human-readable number (e.g. 0.01 for 0.01 USDT). Do not convert to token decimals or wei/lamports. Applies to quote, confirm, makeOrder, and all toAmount/fromAmount in responses. The decimals field in responses is informational only.
"" as the contract address for native tokens (ETH, SOL, BNB, etc.). Do not use wrapped token addresses (e.g. WETH, WSOL) for native.Always use these verified addresses for USDT/USDC. Do not guess or generate contract addresses from memory - incorrect addresses cause API errors (error_code: 80000, "get token info failed").
USDT vs USDT0: On some chains Tether has migrated to USDT0 (omnichain). The same contract addresses work; use the address below for "USDT" regardless.
| Chain (code) | USDT (USDT0) | USDC |
|--------------|--------------|------|
| Ethereum (eth) | 0xdAC17F958D2ee523a2206206994597C13D831ec7 | 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 |
| BNB Chain (bnb) | 0x55d398326f99059fF775485246999027B3197955 | 0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d |
| Base (base) | 0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2 | 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 |
| Arbitrum (arbitrum) | 0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9 | 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 |
| Polygon (matic) | 0xc2132D05D31c914a87C6611C10748AEb04B58e8F | 0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359 |
| Solana (sol) | Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB | EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v |
| Morph (morph) | 0xe7cd86e13AC4309349F30B3435a9d337750fC82D | 0xCfb1186F4e93D60E60a8bDd997427D1F33bc372B |
| Tron (trx) | TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t | - |
BGB (Bitget Token): Ethereum 0x54D2252757e1672EEaD234D27B1270728fF90581; Morph 0x389C08Bc23A7317000a1FD76c7c5B0cb0b4640b5.
For other tokens, use token-info or a block explorer to verify the contract address before calling swap endpoints.
MANDATORY: Load the corresponding file BEFORE calling any API in that domain. Do not skip — see the mandatory rule at the top of this SKILL.
| Module | File | When to Load |
|--------|------|--------------|
| First-Time Setup | docs/first-time-setup.md | New wallet creation, first swap config, derivation paths |
| Commands | docs/commands.md | Full subcommand parameters, usage examples for all scripts |
| Wallet & Signing | docs/wallet-signing.md | Key management, BIP-39/44, signing, multi-chain |
| Market Data | docs/market-data.md | Token info, price, K-line, tx info, rankings, liquidity, security |
| Token Deep Analysis | docs/token-analyze.md | Deep token analysis: K-line signals, trading dynamics, holders, smart money |
| Address Discovery | docs/address-find.md | Find KOL/smart money addresses by role and performance filters |
| Swap | docs/swap.md | Swap flow, quote/confirm/makeOrder/send, slippage, gas, approvals |
| RWA Stock Trading | docs/rwa.md | RWA stock discovery, config, market status, order price, holdings |
| x402 Payments | docs/x402-payments.md | HTTP 402, EIP-3009, Permit2, Solana partial-sign |
| Token Transfer / Gasless | docs/transfer.md | Direct on-chain transfer flow, gasless mode, EIP-7702 signing, Solana partial-sign |
| Chain Reference | docs/social-wallet.md | Social Login Wallet: per-chain sign_transaction params, BTC UTXO/PSBT, SOL SPL, Tron |
sol not solana, bnb not bsc. See Chain Identifiers below.batch-token-info uses --tokens "sol:<addr1>,eth:<addr2>" (chain:address, comma-separated).docs/swap.md.bitget-wallet-agent-api.py, order_sign.py).mktemp), pass to order_sign.py --private-key-file (script reads and auto-deletes). Never store keys or output mnemonic/keys to chat.0.01), not wei/lamports/decimals.docs/*.md file before retrying or troubleshooting. Most errors (wrong parameters, missing steps, incorrect flow) are already documented in the domain knowledge. Do not guess fixes — consult the docs.Swap-supported chains (8):
| Chain | ID | Code | |-------|------|------| | Ethereum | 1 | eth | | Solana | 100278 | sol | | BNB Chain | 56 | bnb | | Base | 8453 | base | | Arbitrum | 42161 | arbitrum | | Polygon | 137 | matic | | Morph | 100283 | morph | | Tron | 728126428 | trx |
Use empty string "" for native token contract (ETH, SOL, BNB, etc.).
4 scripts in scripts/, Python 3.9+. Full subcommand details and examples: docs/commands.md.
| Script | Purpose | Key commands |
|--------|---------|-------------|
| bitget-wallet-agent-api.py | Unified API client | Balance, token find (launchpad-tokens/search-tokens-v3/rankings), token check (security/coin-dev/coin-market-info/kline/tx-info), token analyze (simple-kline/trading-dynamics/transaction-list/holders-info/profit-address-analysis/top-profit/compare-tokens), address find (recommend-address-list), swap flow (quote→confirm→make-order→send→get-order-details) |
| order_make_sign_send.py | One-shot swap execution (mnemonic/private-key) | makeOrder + sign + send in one run. --private-key-file (EVM) or --private-key-file-sol (Solana). Avoids 60s expiry. |
| transfer_make_sign_send.py | One-shot token transfer (mnemonic/private-key) | makeTransferOrder + sign + submit in one run. --private-key-file (EVM) or --private-key-file-sol (Solana). --gasless for gasless mode. |
| social_transfer_make_sign_send.py | One-shot token transfer (Social Login Wallet) | makeTransferOrder + sign (TEE) + submit in one run. --wallet-id required. No local private key needed. --gasless for gasless mode. |
| social_order_make_sign_send.py | One-shot swap execution (Social Login Wallet) | makeOrder + sign (TEE) + send in one run. --wallet-id required. No local private key needed. |
| order_sign.py | Sign makeOrder data | Outputs JSON array of signatures. Supports raw tx, EVM gasPayMaster (eth_sign), EIP-712, Solana Ed25519, Solana gasPayMaster. |
| x402_pay.py | x402 payment | EIP-3009 signing, Solana partial-sign, HTTP 402 pay flow |
| social-wallet.py | Social Login Wallet | Sign transactions/messages via Bitget Wallet TEE (no local private key needed) |
# Asset overview (general balance query — supports all chains including Tron; returns balance + price + token info)
python3 scripts/bitget-wallet-agent-api.py batch-v2 --chain bnb --address <addr> --contract <token>
# Swap pre-check balance (verify fromToken + native gas; swap-supported chains: eth/sol/bnb/base/arbitrum/matic/morph/trx)
python3 scripts/bitget-wallet-agent-api.py batch-v2 --chain bnb --address <addr> --contract "" --contract <token>
# Token find (bgw_token_find)
python3 scripts/bitget-wallet-agent-api.py launchpad-tokens --chain sol --platforms pump.fun --stage 1 --mc-min 10000 --holder-min 100
python3 scripts/bitget-wallet-agent-api.py search-tokens-v3 --keyword pepe --chain sol --order-by market_cap
python3 scripts/bitget-wallet-agent-api.py rankings --name Hotpicks # or topGainers, topLosers
# Token check (bgw_token_check)
python3 scripts/bitget-wallet-agent-api.py coin-market-info --chain sol --contract <addr>
python3 scripts/bitget-wallet-agent-api.py security --chain bnb --contract <addr>
python3 scripts/bitget-wallet-agent-api.py coin-dev --chain sol --contract <addr>
# Token analyze (bgw_token_analyze)
python3 scripts/bitget-wallet-agent-api.py simple-kline --chain sol --contract <addr> --period 1h --size 24
python3 scripts/bitget-wallet-agent-api.py trading-dynamics --chain sol --contract <addr>
python3 scripts/bitget-wallet-agent-api.py transaction-list --chain sol --contract <addr> --only-barrage
python3 scripts/bitget-wallet-agent-api.py holders-info --chain sol --contract <addr>
python3 scripts/bitget-wallet-agent-api.py profit-address-analysis --chain sol --contract <addr>
python3 scripts/bitget-wallet-agent-api.py top-profit --chain sol --contract <addr>
python3 scripts/bitget-wallet-agent-api.py compare-tokens --chain-a sol --contract-a <addr1> --chain-b sol --contract-b <addr2> --period 1h --size 24
# Address find (bgw_address_find)
python3 scripts/bitget-wallet-agent-api.py recommend-address-list --group-ids 1 --filter-chain sol --sort-field win_rate
python3 scripts/bitget-wallet-agent-api.py recommend-address-list --group-ids 2 --filter-win-rate-min 80 --data-period 30d
# Swap flow
python3 scripts/bitget-wallet-agent-api.py quote --from-chain bnb --from-contract <addr> --from-symbol USDT --from-amount 5 --to-chain bnb --to-contract "" --to-symbol BNB --from-address <wallet> --to-address <wallet>
python3 scripts/bitget-wallet-agent-api.py confirm ... --market <id> --protocol <proto> --slippage <val> --feature user_gas
python3 scripts/order_make_sign_send.py --private-key-file /tmp/.pk_evm --order-id <id> --from-chain bnb ... --market ... --protocol ...
# Social Login Wallet: one-shot swap (no private key needed)
python3 scripts/social_order_make_sign_send.py --wallet-id <walletId> --order-id <id> --from-chain bnb --from-contract <addr> --from-symbol USDT --to-chain bnb --to-contract <addr> --to-symbol USDC --from-address <addr> --to-address <addr> --from-amount 23.35 --slippage 0.005 --market bgwevmaggregator --protocol bgwevmaggregator_v000
python3 scripts/bitget-wallet-agent-api.py get-order-details --order-id <id>
# Transfer flow (bgw_transfer)
# Mnemonic/private-key wallet (EVM)
python3 scripts/transfer_make_sign_send.py --private-key-file /tmp/.pk_evm \
--chain eth --contract 0xdAC17F958D2ee523a2206206994597C13D831ec7 \
--from-address <addr> --to-address <addr> --amount 100
# Mnemonic/private-key wallet (EVM gasless)
python3 scripts/transfer_make_sign_send.py --private-key-file /tmp/.pk_evm \
--chain base --contract 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 \
--from-address <addr> --to-address <addr> --amount 50 --gasless
# Mnemonic/private-key wallet (Solana gasless)
python3 scripts/transfer_make_sign_send.py --private-key-file-sol /tmp/.pk_sol \
--chain sol --contract Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB \
--from-address <addr> --to-address <addr> --amount 10 --gasless
# Social Login Wallet (no private key needed)
python3 scripts/social_transfer_make_sign_send.py --wallet-id <walletId> \
--chain bnb --contract 0x55d398326f99059fF775485246999027B3197955 \
--from-address <addr> --to-address <addr> --amount 1 --gasless
# Poll transfer status
python3 scripts/bitget-wallet-agent-api.py get-transfer-order --order-id <id>
market.id, market.protocol, contract, orderId), pass it verbatim to subsequent API calls. Never guess, infer, transform, or substitute these values — even if a similar-looking value seems correct. Mismatched values cause silent failures or system errors.| Capability | Description | Example | |------------|-------------|---------| | Launchpad Scanner | Scan new pools (pump.fun, four.meme, etc.) with 15+ filters | "Scan pump.fun for launching tokens with >$10K MC" | | Token Search (v3) | Search by keyword/contract with market_cap ordering + risk_level | "Find PEPE on ETH sorted by market cap" | | Token Market Info | Price, MC, FDV, liquidity, 57 pool pairs, narratives, price changes | "Show me full market info for Lobstar" | | Dev Analysis | Dev address, rug history, LP lock, holdings, migration history | "Check this token's dev history" | | Security Audit | Honeypot/mint/proxy + buy/sell tax + risk checks (EVM & Solana) | "Is this contract safe?" | | K-line + Smart Signals | K-line with KOL/smart money trade markers + hot level | "Show me smart money activity on this token" | | Trading Dynamics | Multi-window buy/sell pressure + address quality + wash detection | "What's the trading activity like?" | | Transaction Analysis | Tagged transactions (smart money/KOL/dev) with filtering | "Show me KOL trades on this token" | | Holder Analysis | Top100 distribution + PnL + tag classification (CEX/smart/KOL) | "Who's holding this token?" | | Smart Money Analysis | Profitable address stats + top earners list | "Are smart money addresses in profit?" | | Token Comparison | Side-by-side K-line comparison of two tokens | "Compare BONK vs WIF price action" | | Address Discovery | Find KOL / smart money addresses by role with performance filters | "Find top smart money on Solana with >80% win rate" | | Social Login Wallet | Sign transactions/messages via Bitget Wallet TEE — no local private key needed | "Sign this transaction with my Bitget Wallet" | | Balance Query | On-chain balance per chain/address/token (native + ERC-20/SPL) | "What's my BNB balance?" | | Balance + Price | Batch balance with USD price in one call | "What's my portfolio worth?" | | Token Info | Price, market cap, holders, social links | "What's the price of SOL?" | | K-line Data | 1m/5m/1h/4h/1d candlestick data with buy/sell breakdown | Trend analysis, buying pressure | | Transaction Stats | 5m/1h/4h/24h buy/sell volume & trader count | Activity detection, whale monitoring | | Rankings | Top gainers / top losers / Hotpicks (curated trending) | Market scanning, alpha discovery | | Liquidity Pools | LP pool information | Slippage estimation, depth analysis | | Historical Coins | Discover new tokens by timestamp (paginated) | "What tokens launched today?" | | Token Risk Check | Pre-swap safety check for from/to tokens (forbidden-buy detection) | "Is this token safe to buy?" | | Swap Quote | Multi-market quotes for same-chain/cross-chain swaps | "How much USDC for 1 SOL?" | | Swap Confirm | Final quote from selected market with orderId | Lock in price and route | | Swap MakeOrder | Generate unsigned transaction data for signing | Execute trades via wallet signing | | Swap Send | Submit signed transactions | Broadcast with MEV protection | | Order Details | Track order lifecycle (processing→success/failed) | "Check my swap status" | | Token Transfer | Direct on-chain token transfer (EVM + Solana), server broadcasts | "Send 100 USDT to 0xDeF..." | | Gasless Transfer | Transfer tokens without native gas — gas paid from USDT/USDC balance | "Send USDC on Base with no ETH for gas" | | x402 Payment | Pay for x402-enabled APIs with USDC on Base | "Access this paid API endpoint" |
⚠️ Swap amounts are human-readable — pass
0.1for 0.1 USDT, NOT100000000000000000. ThetoAmountin responses is also human-readable. This differs from most on-chain APIs.
The swap flow enables two capabilities no other AI agent swap skill offers:
⛽ Gasless Transactions (EIP-7702)
🌉 One-Step Cross-Chain Swaps
How it works:
1. quote → Get multi-market quotes
2. confirm → Final quote from chosen market, get orderId
3. makeOrder → Create unsigned transaction data
4. Sign → Agent signs with wallet key
5. send → Submit signed data
6. getOrderDetails → Track until success
Example — Same-chain swap:
# Quote: BNB USDT → USDC
python3 scripts/bitget-wallet-agent-api.py quote \
--from-chain bnb --from-contract 0x55d398326f99059fF775485246999027B3197955 \
--from-symbol USDT --from-amount 5 \
--to-chain bnb --to-contract 0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d \
--to-symbol USDC \
--from-address 0xYourAddress --to-address 0xYourAddress
# Confirm with chosen market
python3 scripts/bitget-wallet-agent-api.py confirm \
--from-chain bnb --from-contract 0x55d398326f99059fF775485246999027B3197955 \
--from-symbol USDT --from-amount 5 \
--to-chain bnb --to-contract 0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d \
--to-symbol USDC \
--from-address 0xYourAddress --to-address 0xYourAddress \
--market bgwevmaggregator --protocol bgwevmaggregator_v000 \
--slippage 0.01 --feature user_gas
x402 is an open standard for HTTP-native payments. When an agent encounters a paid API (HTTP 402), it signs a USDC authorization and retries — no accounts, no API keys needed.
How it works:
1. Agent requests a resource → gets HTTP 402 + payment requirements
2. Agent signs EIP-3009 TransferWithAuthorization (gasless, off-chain)
3. Agent retries with PAYMENT-SIGNATURE header
4. Service's facilitator settles on-chain → agent gets the resource
Key features:
# Example: pay $0.001 for Pinata IPFS upload
python3 scripts/x402_pay.py pay \
--url "https://402.pinata.cloud/v1/pin/private?fileSize=100" \
--private-key <key> --method POST --data '{"fileSize": 100}' --auto
See docs/x402-payments.md for domain knowledge, signing details, and testing guide.
Direct on-chain token transfer where the server handles transaction construction, broadcasting, and tracking. Supports gasless mode — gas fees paid from stablecoin balance (USDT/USDC) instead of native tokens.
How it works:
transfer_make_sign_send.py / social_transfer_make_sign_send.py
→ makeTransferOrder + sign + submitTransferOrder (one shot)
→ poll getTransferOrder until SUCCESS or FAILED
Key features:
# Standard EVM token transfer
python3 scripts/transfer_make_sign_send.py --private-key-file /tmp/.pk_evm \
--chain eth --contract 0xdAC17F958D2ee523a2206206994597C13D831ec7 \
--from-address 0xAbC... --to-address 0xDeF... --amount 100
# Gasless transfer (no ETH needed for gas)
python3 scripts/transfer_make_sign_send.py --private-key-file /tmp/.pk_evm \
--chain base --contract 0x83