Hi everyone,
I’d like to share a CLI tool I’ve been building called subctl. I made it primarily for myself to manage my own stake on Kusama, but I think it might be useful to others in the ecosystem.
Why I built this
As someone who prefers working in the terminal, I found the existing options frustrating:
- Polkadot.js Apps is browser-only and can be unreliable (and is now being deprecated)
- There wasn’t a good CLI tool for stakers and validators
- GUIs, while great for casual users, aren’t always the most efficient for those of us working regularly in the ecosystem
So I started building subctl in December 2025, as a solo developer assisted by AI.
What it does
- Wallet management (encrypted locally with AES-256-GCM)
- Hardware wallet support (Ledger)
- Transfers, including XCM teleports
- Staking operations (bond, nominate, claim rewards)
- Nomination pools
- Governance (vote, delegate)
- Pre-submission validation (catches errors before you pay fees)
It works with Polkadot, Kusama, and their Asset Hubs out of the box, but can be configured for any Substrate-based chain.
Web3 values
I’ve tried to align with decentralization principles:
- Hosted on Codeberg, not GitHub
- Not published to crates.io—while it’s a great resource, it’s a permissioned registry, which feels at odds with web3 values. Perhaps this is something the ecosystem should think about: how do we distribute and verify Rust tooling in a more decentralized way?
- Pure Rust with no OpenSSL dependencies
- Planning to implement signed releases for verification
Important disclaimer
This tool deals with real tokens, which means real risk—both for users and for my reputation if something goes wrong. I’m developing this on a best-effort basis as a solo developer. If you use it, please understand the risks. And if you can build something better, please do—the ecosystem needs good CLI tooling.
Seeking guidance on a security audit
Because subctl handles private keys and transaction signing, I believe a security audit would benefit the community. I’ve prepared a threat model documenting the security-critical code paths.
I’d like the community’s guidance on:
- Who could perform this audit? I want the process to be transparent.
- What scope makes sense? Focused on key management and signing, or more comprehensive?
- Which treasury? I’m personally focused on Kusama, but subctl serves both ecosystems. Kusama and Polkadot have different characters yet strengthen each other—I’d appreciate input on where a proposal would fit best.
Once we have answers, I’d submit a proposal for stakeholders to decide.
Links
- Repository: hantoniu/subctl: CLI tool for Substrate-based blockchains. Manage wallets, stake tokens, vote on governance, and explore on-chain data. - Codeberg.org
- Threat Model: THREAT_MODEL-subctl.md · GitHub
Thanks for reading. I welcome any feedback, criticism, or suggestions.