Sending Coins and Tokens¶
One command sends every asset kind — the network's native coin, TRC20/ERC20 contract tokens, and TRC10 assets — the selector flags decide which. Command examples run on Nile; the same commands work on an EVM network by swapping --network.
Password: software-signed sends need your master password on stdin, and signing shows no prompt. The examples below omit it to keep the token flags in focus — prepend
printf '%s' "$PW" |and append--password-stdin, or pipe from a password manager.--dry-run,--build-only, and Ledger signing do not use the master password.
The native coin¶
wallet-cli tx send --to TSx72ViULFepRGCS4PM5dP4FqD1d8qggCc --amount 1 --network tron:3448148188
wallet-cli tx send --to 0x742d35Cc6634C0532925a3b844Bc454e4438f44e --amount 0.01 --network eip155:11155111
--amount is the coin's human unit — 1 = 1 TRX = 1,000,000 SUN on TRON, 0.01 = 0.01 ETH = 10^16 wei on Sepolia. Prefer exact base units? Use --raw-amount 1000000 instead — one or the other, never both.
Contract tokens (TRC20 / ERC20)¶
A contract token is identified by its contract address. Pass that address directly, or a short symbol that wallet-cli resolves to the contract for you:
# by contract address — always works
wallet-cli tx send --to T... --contract TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t --amount 5 --network tron:3448148188
wallet-cli tx send --to 0x... --contract 0xdAC17F958D2ee523a2206206994597C13D831ec7 --amount 5 --network eip155:1
# by symbol — needs the token to be in the token book (see below)
wallet-cli tx send --to T... --token USDT --amount 5 --network tron:3448148188
A token transfer executes contract code, and the fee flags differ by family:
- TRON — it consumes energy;
--fee-limitcaps the TRX that may be burned for it (default 100000000 SUN = 100 TRX). If a transfer fails on fee limit, understand why before raising it — see Energy & bandwidth. - EVM — it consumes gas, estimated from the node. Override with
--gas-limit,--max-fee,--priority-fee,--nonce— see Networks → theevm-gasmodel.
Each set is refused on the other family with invalid_option.
The token book (symbol → token)¶
--token USDT works by looking the symbol up in a per-network token book: a local table mapping a symbol to its on-chain token — a TRC20/ERC20 contract, or a TRC10 asset id. Entries come from two sources, shown in the Source column of token list:
- official — built in, curated per network.
tron:728126428ships USDT / USDC / USDD,tron:3448148188ships USDT / USDD, andeip155:1ships USDT / USDC. The other networks ship none. - user — tokens you add yourself.
wallet-cli token list --network tron:728126428
| Symbol | Name | Source | Contract / ID |
| ------ | --------------- | -------- | ---------------------------------- |
| USDT | Tether USD | official | TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t |
| USDC | USD Coin | official | TEkxiTehnzSmSe2XqrBj4w32RUN966rdz8 |
| USDD | Usdd Stablecoin | official | TXDk8mbtRbXeYuMNS83CfKPaYYT8XWv9Hz |
The book is per network, and an official entry is never copied between chains — the same symbol can have a different address and different decimals elsewhere (USDT is 6 decimals on Ethereum and 18 on BNB Smart Chain). On a network with no official entries, add a token once before --token resolves it there. token add reads the symbol and decimals off the token and stores a user entry — by --contract on either family, or by --asset-id for a TRC10 — scoped to that one network:
wallet-cli token add --contract T... --network tron:3448148188 # TRC20, by contract
wallet-cli token add --contract 0x... --network eip155:11155111 # ERC20, by contract
wallet-cli token add --asset-id 1000001 --network tron:3448148188 # TRC10, TRON only
Manage the rest with the same group: token list to see all entries, token remove to drop a user entry, token balance / token info to query a token without adding it.
TRC10 tokens — TRON only¶
TRC10 assets have numeric ids, not contracts:
wallet-cli tx send --to T... --asset-id 1002000 --raw-amount 1000000 --network tron:3448148188
--asset-id is a TRON-only flag; on an EVM network it fails with invalid_option.
--token, --contract, and --asset-id are mutually exclusive; none of them means the network's native coin.
Rehearse, then send¶
--dry-run builds the transaction and estimates fees through the selected network, then returns without signing or broadcasting:
wallet-cli tx send --to T... --token USDT --amount 5 --network tron:3448148188 --dry-run -o json
Check the fee block in the output, then re-run without --dry-run. Submission alone is not success — either confirm afterwards with tx status, or add --wait to the tx send command so it blocks until the transaction is confirmed or failed.
Mainnet: the same commands with
--network tron:728126428,--network eip155:1or--network eip155:56move real assets, irreversibly. Triple-check--to(a confirmed transfer to a wrong address is gone), and dry-run first.
See also¶
tx send reference — every flag and output field · token commands — the token book · Getting started · Scripting — automating sends safely