/ 1 Quick Start
USDT Wallet ships with a self-contained runtime, so you can be up and running in < 60 seconds. Grab the latest release, verify the signature and launch:
# macOS (Universal)
curl -LO https://cdn.usdt-wallet.org/release/3.1.2.dmg.asc
curl -LO https://cdn.usdt-wallet.org/release/3.1.2.dmg
gpg --verify 3.1.2.dmg.asc 3.1.2.dmg
open 3.1.2.dmg
# Linux (AppImage)
curl -LO https://cdn.usdt-wallet.org/release/3.1.2.AppImage
chmod +x 3.1.2.AppImage
./3.1.2.AppImage --install
Prerequisites
- GPG 2.2+ with the USDT Wallet release key imported
- At least 2 GB RAM & 200 MB free disk space
- TRON node RPC endpoint (optional, defaults to public gateway)
First-run wizard
On first launch the wizard will generate a 12-word BIP-39 seed. Write it down — it grants full access to your funds. USDT Wallet will then sync headers (~45 s on broadband) and prompt you to enable biometric unlock (optional but recommended).
/ 2 Full Installation
USDT Wallet offers native installers for every major OS. Each bundle includes the GUI, CLI and embedded light node.
System requirements
Platform | CPU | RAM | Disk |
---|---|---|---|
Windows 10/11 | AMD64 / ARM64 | 4 GB | 260 MB |
macOS 11+ | Apple Silicon / Intel | 4 GB | 230 MB |
Linux 3.10+ | x86-64 / aarch64 | 2 GB | 210 MB |
Windows 10 / 11
- Download
USDT-Wallet-3.1.2.exe
from the official site. - Double-click the installer (signed by USDT Wallet Inc.) and follow the prompts.
- The CLI (
uw.exe
) is copied to%ProgramFiles%\USDT-Wallet\bin
and added toPATH
automatically. - If SmartScreen appears, click More info → Run anyway — the EV certificate validates publisher identity.
macOS 11 +
- Mount the DMG and drag USDT Wallet into
/Applications
. - On first launch macOS Gatekeeper will ask to allow network access — click Allow.
- The CLI binary (
uw
) is symlinked to/usr/local/bin
. - To enable Touch ID unlock run
uw settings set biometric true
.
Linux (deb, rpm, AppImage)
AppImage bundles work out-of-the-box on any modern distro. Native DEBs/RPMs integrate with desktop launchers and provide systemd helpers.
sudo dpkg -i usdt-wallet_3.1.2_amd64.deb
sudo dnf install usdt-wallet-3.1.2.x86_64.rpm
chmod +x USDT-Wallet-3.1.2.AppImage && ./USDT-Wallet-3.1.2.AppImage
/ 3 Architecture Overview
USDT Wallet follows a three-layer design:
- UI Layer — Svelte/TypeScript desktop front-end
- Core SDK — Rust crate compiled to native & WASM
- Embedded Node — TRON-Go light client handling RPC
All inter-process calls are made over jsonrpc-unix
sockets, isolating the private-key engine from the renderer. Plugins hook into the Core SDK via ABI-stable C FFI.
/ 4 CLI Reference
The uw
command-line tool exposes every wallet function for servers, CI pipelines or power users.
Synopsis
uw <command> [options]
Commands:
balance Show asset balances
send Transfer TRX / USDT / USDC
swap Atomic swap between tokens
stake Delegate TRX for energy/bandwidth
key export Dump private key (unsafe!)
daemon start|stop Control background node
plugin install|rm Manage third-party plugins
help <command> Show command-specific help
Global options
Flag | Description | Default |
---|---|---|
--network | Select mainnet / testnet / custom RPC | mainnet |
--wallet | Path to custom wallet file | ~/.usdt-wallet/default.uw |
--json | Machine-readable output | false |
Environment variables
UW_PASSPHRASE
— Supply unlock passphrase non-interactivelyUW_RPC
— Override RPC endpoint for light nodeUW_LOG
— Set log level (error,warn,info,debug,trace)
Examples
# Check current portfolio in USD and EUR
$ uw balance --fiat USD,EUR
# Send 250 USDT with a custom memo
$ uw send TX5...abc 250 USDT --memo "Invoice #582"
# Swap 100 USDC → TRX and auto-stake
$ uw swap 100 USDC TRX --stake
# Export private key (prompt for passphrase)
$ UW_PASSPHRASE="hunter2" uw key export --format wif > key.wif
/ 5 JSON-RPC API
Start the embedded node with uw daemon start
, then hit http://127.0.0.1:8546
. Every payload must include jsonrpc: "2.0"
and an id
.
Methods
Method | Description | Params | Returns |
---|---|---|---|
uw_getBalance | Confirmed balance | [address, asset] | string (decimals) |
uw_send | Broadcast signed tx | to, amount, asset, memo? | txHash |
uw_swapQuote | DEX aggregator quote | fromAsset, toAsset, amount | priceImpact, route |
uw_pluginCall | Invoke plugin method | namespace.method, args... | json |
Sample request
curl -s -X POST http://127.0.0.1:8546 \
-H "Content-Type: application/json" \
-d '{
"jsonrpc":"2.0",
"id":1,
"method":"uw_getBalance",
"params":["TXYZ...abc", "TRX"]
}'
Error handling
Errors follow the Ethereum JSON-RPC spec (code
, message
, data
). Custom codes start at -53000
.
/ 6 SDK Integration
USDT Wallet ships official bindings for JavaScript, Swift and Kotlin. All SDKs share the same surface, so swapping platforms is trivial.
JavaScript / TypeScript
npm install @usdt-wallet/sdk
# or
yarn add @usdt-wallet/sdk
import { UsdtWallet } from "@usdt-wallet/sdk";
const wallet = await UsdtWallet.open();
await wallet.unlockWithPasscode("••••••");
const balance = await wallet.getBalance("USDC");
console.log(`You have ${balance} USDC`);
iOS (Swift PM)
.package(url: "https://github.com/usdt-wallet/ios-sdk.git", from: "3.1.0")
import UsdtWallet
let wallet = try UsdtWallet.open()
try wallet.unlock(biometry: .faceID)
let quote = try await wallet.swapQuote(
from: .usdt, to: .trx, amount: 150
)
print(quote.priceImpact)
Android (Kotlin)
implementation("org.usdtwallet:sdk:3.1.0")
val wallet = UsdtWallet.open(context)
wallet.unlockWithBiometry()
val txHash = wallet.send(
to = "TXQN...xyz",
amount = BigDecimal("12.5"),
asset = Asset.TRX
)
println("Broadcasted at $txHash")
/ 7 Plugin System
USDT Wallet supports sandboxed plugins written in Rust, Go or JavaScript via WASI. Each plugin runs in its own process with a sealed capability set.
Manifest structure
{
"name": "uw-example-plugin",
"version": "0.1.0",
"entry": "plugin.wasm",
"capabilities": ["rpc", "ui"],
"permissions": {
"network": ["https://api.coingecko.com"],
"fs": ["~/Downloads"]
}
}
Publish plugins to the official registry or sideload with uw plugin install ./my.wasm
.
/ 8 Security Practices
- Memory-hard encryption — keys encrypted with Argon2id (4 GiB RAM, 3 rounds)
- M-of-N social recovery — Shamir shards sealed with guardian passphrases
- Reproducible builds — verified via GitHub Actions & sigstore
- Hardware attestation — Ledger & YubiKey via FIDO2 + WebAuthn
- Continuous auditing — Cure53, Trail of Bits, NCC Group rotate quarterly
/ 9 Troubleshooting
Daemon won’t start (port 8546 in use)
Another process is already listening. Check with lsof -i :8546
then either kill it or start the daemon on a custom port:
uw daemon start --port 9555
Transaction stuck in pending
Use uw resend --id 0xABC123 --gas 1.2x
to re-broadcast with a 20 % higher fee. The old tx is automatically replaced.
Incorrect time-sync
Block timestamps follow NTP. Ensure your system time is correct or enable auto-sync (timedatectl set-ntp true
on Linux).
/ 10 Glossary
Term | Meaning |
---|---|
UTXO-less | Account-based ledger instead of Unspent Tx Outputs |
Energy | TRON resource consumed to execute smart-contract byte-code |
Bandwidth | Resource to cover transaction bytes (not computation) |
TVL | Total Value Locked in DeFi pools |
Argon2id | Memory-hard KDF resistant to GPU cracking |
FIDO2 | Web standard for hardware-bound, phishing-proof auth |