Wallet operations on Morph L2 — create wallet, check balance, transfer ETH and ERC20 tokens
Wallet operations on Morph Mainnet (Chain ID: 2818). All commands output JSON. All amounts use human-readable units (e.g.
0.1ETH, not wei).
Use this skill when the user wants to: create a local private-key wallet, check ETH balance, check token balance, send ETH, send tokens, or get a transaction receipt on Morph.
Important: If the user asks to create or set up a "social wallet" or "Social Login Wallet", do not use
create-wallet. Route to BGW instead — Social Login Wallet setup happens in the Bitget Wallet APP, not through this CLI. See the routing rules in the root SKILL.md.
Decide the mode once via the root SKILL.md and docs/social-wallet-integration.md.
transfer and transfer-token require --private-key (local signing only).pip install requests eth_account
# Run from repository root
python3 scripts/morph_api.py <command> [options]
No API keys required.
create-walletGenerate a new Ethereum key pair locally. No network call.
python3 scripts/morph_api.py create-wallet
balanceQuery native ETH balance.
python3 scripts/morph_api.py balance --address 0xYourAddress
token-balanceQuery ERC20 token balance. Pass the token contract address or known symbol.
python3 scripts/morph_api.py token-balance --address 0xAddr --token USDT
python3 scripts/morph_api.py token-balance --address 0xAddr --token 0xe7cd86e13AC4309349F30B3435a9d337750fC82D
transferSend ETH. Amount is in ETH (e.g. 0.01).
python3 scripts/morph_api.py transfer --to 0xRecipient --amount 0.01 --private-key 0xYourKey
transfer-tokenSend ERC20 tokens. Amount is in token units (e.g. 10.5 USDC).
python3 scripts/morph_api.py transfer-token --token USDT --to 0xRecipient --amount 10 --private-key 0xKey
tx-receiptGet transaction receipt (status, gas used, logs).
python3 scripts/morph_api.py tx-receipt --hash 0xTxHash
For native ETH, use empty string "" or ETH.
| Symbol | Name | Contract Address |
|---|---|---|
| USDT | USDT | 0xe7cd86e13AC4309349F30B3435a9d337750fC82D |
| USDT.e | Tether Morph Bridged | 0xc7D67A9cBB121b3b0b9c053DD9f469523243379A |
| USDC | USD Coin | 0xCfb1186F4e93D60E60a8bDd997427D1F33bc372B |
| USDC.e | USD Coin Morph Bridged | 0xe34c91815d7fc18A9e2148bcD4241d0a5848b693 |
| WETH | Wrapped Ether | 0x5300000000000000000000000000000000000011 |
| BGB | BitgetToken | 0x389C08Bc23A7317000a1FD76c7c5B0cb0b4640b5 |
| BGB (old) | BitgetToken (old) | 0x55d1f1879969bdbB9960d269974564C58DBc3238 |
For other tokens, use token-search (see morph-explorer skill).
If the wallet address comes from a BGW Social Login Wallet, resolve the address in BGW first and then use the read commands here.
transfer or transfer-token — show them the recipient, amount, and token before signing.0.1 means 0.1 ETH, not 0.1 wei.create-wallet is purely local — no network call.transfer and transfer-token do not support --fee-token-id. To pay gas with an alternative token, use altfee-send (morph-altfee skill) with the same --to, --value, or --data parameters.
Check a wallet's portfolio:
balance → token-balance (for each token) → address-tokens (morph-explorer skill)
Send tokens safely:
balance (verify funds) → transfer/transfer-token → tx-receipt (confirm)
altfee-send (morph-altfee) to pay gas with alternative tokens instead of transfer/transfer-token.token-balance --token USDC to check USDC balance before using x402-pay (morph-x402).address-tokens (morph-explorer) for a full portfolio overview.7702-batch (morph-7702) to combine approve + swap atomically in a single transaction.