@t2000/cli
Terminal bank account for AI agents on Sui. One command to create a bank account, send USDC, earn yield, swap, borrow, and pay for APIs.

Website · GitHub · SDK · x402
Installation
npx @t2000/cli init
npm install -g @t2000/cli
Requirements: Node.js 18+
Quick Start
❯ t2000 init
Create PIN (min 4 chars): ****
Confirm PIN: ****
Creating agent wallet...
✓ Keypair generated
✓ Network Sui mainnet
✓ Gas sponsorship enabled
Setting up accounts...
✓ Checking ✓ Savings ✓ Credit ✓ Exchange ✓ 402 Pay
🎉 Bank account created
Address: 0x8b3e4f2a...
Deposit USDC on Sui network only.
─────────────────────────────────────────────────────
Install globally for persistent use:
npm install -g @t2000/cli
t2000 balance check for funds
t2000 save all USDC start earning yield
t2000 address show address again
❯ t2000 send 10 USDC to 0x8b3e...d412
✓ Sent $10.00 USDC → 0x8b3e...d412
Tx: https://suiscan.xyz/mainnet/tx/0xa1b2...
❯ t2000 save 80 USDC
✓ Saved $80.00 USDC to NAVI
✓ Protocol fee: $0.08 USDC (0.1%)
✓ Current APY: 4.21%
✓ Savings balance: $79.92 USDC
Tx: https://suiscan.xyz/mainnet/tx/0x9f2c...
❯ t2000 borrow 20 USDC
✓ Borrowed $20.00 USDC
Health Factor: 3.39
Tx: https://suiscan.xyz/mainnet/tx/0xb3c4...
❯ t2000 swap 5 USDC to SUI
✓ Swapped 5 USDC → 5.83 SUI
Tx: https://suiscan.xyz/mainnet/tx/0xd5e6...
❯ t2000 pay https://data.api.com/prices
→ GET https://data.api.com/prices
← 402 Payment Required: $0.01 USDC (Sui)
✓ Paid $0.01 USDC (tx: 0x9f2c...a801)
← 200 OK [342ms]
❯ t2000 repay 20 USDC
✓ Repaid $20.00 USDC
Remaining Debt: $0.00
Tx: https://suiscan.xyz/mainnet/tx/0xe7f8...
❯ t2000 withdraw all USDC
✓ Withdrew $79.92 USDC
Tx: https://suiscan.xyz/mainnet/tx/0xf9a0...
❯ t2000 balance
Available: $85.00 USDC (checking — spendable)
Savings: $0.00 USDC
Gas: 0.31 SUI (~$0.28)
──────────────────────────────────────
Total: $85.28 USDC
30 seconds. Send → save → borrow → swap → pay → repay → withdraw.
Commands
Wallet
t2000 init | Create a new agent bank account (Ed25519 keypair, AES-256-GCM encrypted) |
t2000 lock | Clear saved session (require PIN on next command) |
t2000 balance | Show available USDC + savings + gas reserve |
t2000 address | Show wallet address |
t2000 deposit | Show funding instructions |
t2000 import | Import an existing bank account from private key |
t2000 export | Export private key (raw Ed25519 hex) |
t2000 history | Transaction history |
Transfers
t2000 send <amount> USDC to <address> | Send USDC to any Sui address |
Savings & DeFi
t2000 save <amount> USDC | Deposit USDC to NAVI Protocol (earn ~4–8% APY) |
t2000 withdraw <amount> USDC | Withdraw USDC from savings |
t2000 borrow <amount> USDC | Borrow USDC against savings collateral |
t2000 repay <amount> USDC | Repay outstanding borrows |
t2000 swap <amount> <from> <to> | Swap via Cetus DEX (e.g. swap 5 USDC SUI) |
t2000 health | Check savings health factor |
t2000 rates | Current NAVI save/borrow APYs |
t2000 positions | Open savings & borrow positions |
t2000 earnings | Yield earned to date |
t2000 fund-status | Full savings summary |
x402 Payments
t2000 pay <url> | Pay for an x402-protected API resource |
t2000 pay <url> --max-price 0.10 | Set max USDC per request (default: $1.00) |
t2000 pay <url> --method POST --data '{...}' | POST with JSON body |
Configuration
t2000 config get <key> | Show a config value |
t2000 config set <key> <value> | Set a config value |
HTTP API Server
t2000 serve --port 3001
curl -H "Authorization: Bearer t2k_..." http://localhost:3001/v1/balance
curl -X POST -H "Authorization: Bearer t2k_..." \
-d '{"to":"0x...","amount":10}' \
http://localhost:3001/v1/send
Flags
--json | Structured JSON output (for automation) |
--yes | Skip confirmation prompts |
--key <path> | Custom key file path |
--network <net> | mainnet or testnet |
Configuration
Config is stored at ~/.t2000/config.json.
network | Sui network | mainnet |
rpcUrl | Custom RPC URL | Sui public fullnode |
Environment Variables
T2000_PIN | Bank account PIN (skip interactive prompt) |
T2000_NETWORK | Override network (mainnet / testnet) |
T2000_KEY_PATH | Custom key file path |
Gas Handling
Gas is fully automated:
- Sponsored — early transactions are free via the t2000 Gas Station
- Self-funded — uses SUI balance after bootstrap
- Auto-topup — swaps $1 USDC → SUI when gas reserve is low
You never need to manually acquire SUI for gas.
File Locations
| Encrypted key | ~/.t2000/wallet.key | AES-256-GCM encrypted Ed25519 keypair |
| Config | ~/.t2000/config.json | Network, RPC, preferences |
Examples
t2000 save all USDC
t2000 borrow 40 USDC
t2000 repay 40 USDC
t2000 withdraw all USDC
t2000 balance --json
t2000 send 10 USDC to 0x... --yes --json
export T2000_PIN="agent-secret"
t2000 balance --json | jq '.available'
License
MIT — see LICENSE