Wallet.
TNZO, USDC, USDT, ETH, SOL, BTC. History, address book, nonce management, state sync.- STATUS
- Testnet
- CRATE
- tenzro-wallet
- STABILITY
- Stable
- TYPE
- Component
Operations
tenzro wallet create
tenzro wallet balance --address 0x...
tenzro wallet send --to 0x... --amount 10
tenzro wallet listSelf-custody
The node never holds the secret. A local sealed key holds the Ed25519 + ML-DSA-65 keypair; the raw 32-byte Ed25519 public key is the account address. wallet send builds the canonical transaction hash locally, signs both legs, and submits the pre-signed transaction — the node verifies the Ed25519 and ML-DSA-65 signatures and rejects a submit that omits either.
tenzro wallet create-local
tenzro wallet import-local <ed25519-secret-hex>
tenzro wallet send <to> <amount> --self-custodyTransaction builder
Type-safe builder with auto gas estimation per transaction type. Per-address sequential nonces with replay protection.
History
Full lifecycle: Created → Pending → Confirmed → Finalized / Failed / Dropped. Filtering and pagination.
Address book
Contact management with name resolution, tag filtering, persistent JSON storage.
USD pricing
A priced portfolio reads USD values from the node's oracle rather than a third-party price API, so the figures match what the network settles against. tenzro_getPrice returns the oracle price for a token; the wallet multiplies it by the on-chain balance to build the portfolio total.
tenzro_getPrice({ symbol: "TNZO" })
// -> { symbol, price_usd, decimals, updated_at, source }Canton holdings
Canton is provided by the RPC operator, not the protocol: it exists only when the operator's node has a Canton validator bound. tenzro_canton_health is public and is the gate — it reports whether Canton is available on the node at all.
Holdings are tenant-scoped by an operator-issued API key. The operator provisions a per-tenant Canton party and binds it to the key; the wallet presents the key in the X-Tenzro-Api-Key header and reads the party's Canton Coin (CIP-56) balance and Amulet contracts.
# public gate — no key
tenzro_canton_health()
// -> { alive, ready, ready_detail, version }
# tenant-scoped — X-Tenzro-Api-Key header
tenzro_canton_coinBalance()
// -> { party, amulet_count, total_initial_amount, token_standard }
tenzro_listDamlContracts({
template_ids: ["#splice-amulet:Splice.Amulet:Amulet"]
})