Skip to main content
A Stable wallet is an Ethereum-standard key pair. Any wallet library that produces an EVM account works on Stable without modification. This guide shows two paths: ethers.js for most applications, and Tether’s WDK (Wallet Development Kit) for integrations that want a turnkey self-custody layer for agents and payments.
No registration, no Stable-specific account setup. A wallet can immediately receive USDT0 from the testnet faucet or a mainnet transfer.

Prerequisites

  • Node.js 20 or later.

Option 1: ethers.js

Install the library and generate a key pair.
Never log or store the seed phrase in plain text in production. Encrypt it at rest, or use a secrets manager. ethers.Wallet.createRandom returns the phrase once per call — if you lose it, funds are unrecoverable.

Option 2: Tether WDK

The WDK wraps key derivation, signing, and transaction submission into a single interface. It’s the right choice when you want self-custody without re-implementing common account flows, and it integrates directly with x402 for agent payments.

Fund the wallet

Before the wallet can transact, it needs USDT0 for gas. On testnet, request from the faucet:
Paste the address and select the button to receive 1 testnet USDT0 (enough for thousands of native transfers). For mainnet, send USDT0 from any supported exchange or bridge; see Bridging to Stable.

Check the balance

Native USDT0 uses 18 decimals. The native balance is the one gas is paid from.

Delegate with EIP-7702

Add batch payments, spending limits, and session keys to this wallet.

Send your first USDT0

Native and ERC-20 transfers on the same balance.

Fund a testnet wallet

Faucet and Sepolia bridge options for larger test balances.
Last modified on April 24, 2026