One terminal. Every chain.
A unified, multi-chain developer toolkit for Sui, Ethereum, Solana, Aptos, and Soroban.
Every chain ships its own CLI, and none of them agree on anything. sui client, solana, aptos, soroban, plus whatever you've bolted together for Ethereum — each with its own install step, its own flag names, its own config file, and its own idea of what a "network" argument should look like. Switch from Sui devnet to Ethereum mainnet mid-session and you're not passing a different flag, you're opening a different terminal.
And none of them speak human. Checking a balance means resolving .sui or .eth yourself, then pasting the raw address back in. Do that across five ecosystems, and a two-second task — "what's in this wallet?" — turns into a scavenger hunt.
txio puts Sui, Ethereum, Solana, Aptos, and Soroban behind one interface. Learn it once, use it everywhere.
- One interface, five chains – Sui, Ethereum, Solana, Aptos, and Soroban all use the same commands and flags.
- Instant network switching – Pass
--network testnet(ormainnet,devnet) to any command. No config file to edit. - Names just work –
.sui,.eth, and friends resolve automatically before the request goes out. You never touch a raw address. - Readable by default – Clean, formatted tables in your terminal. Need raw data? Add
--prettyfor JSON. - One command, full stack –
docker-compose upboots the API, dashboard, and database together.
| Path | Description | Tech Stack |
|---|---|---|
/cli |
Primary terminal interface | Rust, Clap |
/backend |
Caching API and intelligent request routing | Rust, Axum |
/frontend |
Interactive web dashboard | Next.js, React, Tailwind |
/desktop |
Desktop wrapper (In Development) | Electron |
You'll need:
- Rust (stable toolchain)
- Node.js (v20+)
- Docker & Docker Compose
git clone https://github.com/Txio-labs/txio.git
cd txio
npm installBoots the backend, frontend, and database in one command:
cp .env.example backend/api/.env
# Edit backend/api/.env and set at minimum:
# MONGO_INITDB_ROOT_USERNAME, MONGO_INITDB_ROOT_PASSWORD
# JWT_SECRET (>=32 chars), BREVO_API_KEY, GROQ_API_KEYS
docker-compose up -dThe full stack runs MongoDB with --auth enabled and credentials from
backend/api/.env. Both mongod (read as MONGO_INITDB_ROOT_USERNAME /
MONGO_INITDB_ROOT_PASSWORD) and the API (read as MONGO_URI) load the same
file, so the username and password only need to be set in one place.
The frontend comes up on its default port, with the API running behind it.
cd cli
# Authenticate your terminal
cargo run -- login
# Resolve .sui names automatically
cargo run -- sui balance aliphatic.sui
# Query different networks on the fly
cargo run -- --network testnet eth balance 0x...Run txio --help to see all available commands and flags.
Adding a new chain is deliberately simple: implement the ChainAdapter trait, drop a single file under cli/src/chains/, and register it in the factory. That's it. Full details live in CONTRIBUTING.md.
MIT — see LICENSE.