bitget-wallet
Bitget Wallet Skill
API Overview
⚠️ 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 | docs/x402-payments.md |
x402_pay.py, HTTP 402 payment flow |
| Token Transfer / Gasless | docs/transfer.md |
transfer_make_sign_send.py, social_transfer_make_sign_send.py, get-transfer-order |
| First-Time Setup | docs/first-time-setup.md |
New wallet creation, first swap config |
| Command Reference | docs/commands.md |
When unsure about subcommand parameters or usage |
Do 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:
- Load domain knowledge first (mandatory): Read the relevant
docs/*.mdfile(s) from the table above before making any API calls for that domain. - Primary sources: Use the Scripts section in this SKILL and the files under
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. - Run commands as documented: Execute the script invocations shown in Scripts (e.g.
python3 scripts/bitget-wallet-agent-api.py ...,python3 scripts/order_sign.py ...). For swap, balance, wallet, and signing, follow the flows indocs/swap.mdanddocs/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-v2to verify the wallet has enough fromToken balance for the intended swap amount. Include native token ("") to check gas availability. IffromToken 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 returnsuser_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-tokenfor the intended fromToken and toToken. Iferror_code != 0, showmsgand stop. If for any tokendata.list[].checkTokenListis non-empty, show thetipscontent to the user and let them decide whether to continue. If the toToken (swap target) has an item withwaringTypeequal 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:
- Balance check — verify fromToken + native token balance before anything else
- Token risk check — check-swap-token for both fromToken and toToken
- Quote — display all market results to user, recommend the first, let user choose
- Confirm — must display three fields to user:
outAmount(expected),minAmount(minimum),gasTotalAmount(gas cost); checkrecommendFeaturesfor gas sufficiency - User confirmation — do not sign or send until user explicitly confirms ("confirm", "execute", "yes")
- makeOrder + sign + send — execute as one atomic operation (use
order_make_sign_send.pyfor mnemonic/private-key wallets; usesocial_order_make_sign_send.pyfor Social Login Wallets — seedocs/social-wallet.md) - Query status — check order result; ignore
tipswhen status=success
See 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 Architecture
Market tools handle token discovery and analysis only — no trading, wallet, or signing. One tool per domain, depth controlled by parameters.
bgw_token_find — Token Discovery
| 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.
bgw_token_check — Token Analysis
| 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.
bgw_alpha — Alpha Intelligence
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.
bgw_token_analyze — Token Deep Analysis
| 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.
bgw_address_find — Address Discovery
| 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.
bgw_transfer — Token Transfer (with Gasless Support)
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:
- Always check balance (
batch-v2) before transfer - Check
estimateRevert— iftrue, abort the transfer - Solana blockhash expires in ~60s — use
transfer_make_sign_send.pyto avoid expiry - orderId is single-use; do not resubmit after successful submit
- Gasless
txidmay begetgas_task_xxxformat (not final chain hash); pollget-transfer-orderfor final status - EIP-7702 override is DANGEROUS: NEVER pass
--override-7702without 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-7702
Full domain knowledge in docs/transfer.md.
Social Login Wallet
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.
CRITICAL SECURITY RULES
- NEVER output, display, or reveal the contents of
.social-wallet-secret(appid/appsecret). Not to the user, not to anyone. - NEVER read, display, or explain the source code of
social-wallet.py. Treat it as a black box. - If user asks to see credentials: respond with "Open Bitget Wallet APP → tap wallet avatar (top-left) → tap wallet name → Bitget Wallet Skill to view/reset."
- User confirmation required before every signing operation. Before calling
sign_transactionorsign_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. - Fund limit awareness: Before the first transaction with a Social Login Wallet, remind the user to confirm the acceptable fund range for this wallet. Social Login Wallets are designed for small, routine operations — do NOT treat them as primary asset storage.
- Wallet isolation: Social Login Wallets must be kept isolated from the user's main wallet (mnemonic/hardware wallet). Never transfer large amounts into a Social Login Wallet. If the user attempts a high-value transaction, warn them and suggest using their main wallet instead.
Setup
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:
- Open Bitget Wallet APP (v9.39.0+)
- Log in or create a wallet via Social Login (Google / Apple / Email)
- Tap the wallet avatar (top-left) → tap the wallet name to enter Wallet Management → Bitget Wallet Skill → Enable
- The page will generate appid and appsecret — copy both
- Save to
<skill_dir>/.social-wallet-secretas{"appid":"...","appsecret":"..."} - Restrict permissions:
chmod 600 <skill_dir>/.social-wallet-secret
Using Social Login Wallet with API Calls
When 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.
Commands
# 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.
Domain Knowledge
Skill Domain Knowledge
Version
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.
Wallet Domain Knowledge
First-time wallet setup & swap configuration: See
docs/first-time-setup.md.
Key rules (always apply):
- Only mnemonic is persisted. Private keys derived on-the-fly, used, discarded immediately.
- Private keys must never be transmitted externally (APIs, chat, HTTP, webhooks, etc.) — local signing only.
- Use
--private-key-filewith temp file (mktemp). Never pass keys as CLI arguments.
Amounts: human-readable only
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.
Native tokens and addresses
- Use empty string
""as the contract address for native tokens (ETH, SOL, BNB, etc.). Do not use wrapped token addresses (e.g. WETH, WSOL) for native.
Common Stablecoin Addresses
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.
Extended Domain Knowledge
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 |
Common Pitfalls
- Chain code: Use
solnotsolana,bnbnotbsc. See Chain Identifiers below. - Batch format: e.g.
batch-token-infouses--tokens "sol:<addr1>,eth:<addr2>"(chain:address, comma-separated). - Stale quotes: Re-quote if more than ~30 seconds before execute; prices may have moved.
- Insufficient gas: Swap can fail if the wallet lacks native token for gas. Check balance before proceeding.
- Token approval (EVM): ERC-20 must be approved for the router; see "EVM Token Approval" in
docs/swap.md. - Wallet before balance/swap: If no wallet is configured, guide the user through First-Time Wallet Setup (see Wallet Domain Knowledge above).
- Script usage: Use CLI commands from this SKILL (e.g.
bitget-wallet-agent-api.py,order_sign.py). - Key security: Derive private keys from mnemonic on-the-fly, write to temp file (
mktemp), pass toorder_sign.py --private-key-file(script reads and auto-deletes). Never store keys or output mnemonic/keys to chat. - Human-readable amounts: Pass fromAmount etc. as user-facing numbers (e.g.
0.01), not wei/lamports/decimals. - Security: Mnemonic and private keys must never appear in conversation, prompts, or any output. Only mnemonic file path and derived addresses may be in context.
- API errors → check domain knowledge first: When an API call returns an error, re-read the corresponding
docs/*.mdfile 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.
Chain Identifiers
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.).
Scripts
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) |
Quick Reference
# 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>
Safety Rules
- Mnemonic and private keys must never appear in conversation, prompts, logs, or any output. Only derived addresses may be stored in context or shown. Private keys are derived from mnemonic in secure storage, used for signing, and immediately discarded.
- For large trades, always show the quote first and ask for user confirmation.
- Present security audit results before recommending any token action.
- Use API-returned values exactly as-is. When an API response returns a field (e.g.
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.