CLI
@cowlprotocol/cli puts Cowl in your terminal — a local encrypted wallet, one-time stealth addresses, view keys for selective disclosure, balances, transfers, and the fee schedule. It is testnet-first: everything that can be real today is real; shielded-pool operations light up as the protocol contracts deploy.
Install
npm install -g @cowlprotocol/cliRequires Node.js 18+. The command is cowl.
Quick start
cowl init # create a wallet + view key, pick a network
cowl balance # read your on-chain balance
cowl address # fresh stealth address to receive privately
cowl fees # protocol fee schedule
cowl ping # RPC connectivity checkEverything lives in ~/.cowl/ (private, mode 0600). Keys are encrypted with a passphrase (scrypt + AES-256-GCM) and never leave your machine.
Wallet
cowl init # guided setup (new or import + passphrase + network)
cowl wallet new # create a new wallet
cowl wallet import [0x…] # import a private key
cowl wallet address # print your address
cowl wallet export # reveal your private key (asks to confirm)Stealth addresses
Every deposit can land on a fresh, unlinkable stealth address that only you can spend from. Spending and viewing keys derive from your wallet, so addresses are always recoverable.
cowl address # generate a one-time stealth address
cowl address --meta # show your shareable stealth meta-addressView keys
A view key is what you hand an auditor for read-only, scoped disclosure. The public half is shareable; the private half stays in ~/.cowl/.
cowl viewkey show # print your public view key
cowl viewkey new # generate a new view keyBalances & transfers
cowl balance # native balance
cowl balance --token 0x… # ERC-20 balance
cowl send 0.01 ETH 0xRecipient… # native transfer (a stealth address works)
cowl send 100 0xToken… 0xRecipient… # ERC-20 transferNetworks & config
Robinhood Chain is an Arbitrum-based L2. Until its public testnet ships, Arbitrum Sepolia is the working default, so reads and connectivity are real today. Everything is overridable.
cowl network # list networks (active is marked)
cowl network use <key> # switch active network
cowl config show # resolved network + contract addresses
cowl config set rpcUrl <url> # override the RPC
cowl config set contracts.pool 0x… # point at a deployment once liveGlobal flags --network <key>, --rpc <url>, and --json work on any command.
Fees
cowl fees # protocol fee schedule + where fees goSee fee structure and fee collector for the detail.
Shielded pool
Deposits, private trades, withdrawals, and staking run against the on-chain Cowl contracts. Until those are deployed on a public network these commands report their status and the config needed to point them at a deployment.
cowl shield <amount> [token] # deposit into the shielded pool
cowl unshield <amount> [token] # withdraw
cowl trade <side> <amount> <market>
cowl stake <amount> # stake $COWLCommand reference
| Command | What it does | Status |
|---|---|---|
cowl init | Set up wallet, view key, and network | Live |
cowl wallet | new · import · address · export | Live |
cowl balance | Native or ERC-20 balance | Live |
cowl address | One-time stealth address | Live |
cowl viewkey | Selective-disclosure view keys | Live |
cowl send | Transfer native or ERC-20 | Live |
cowl fees · ping · network · config | Fee schedule, connectivity, config | Live |
cowl shield · unshield · trade · stake | Shielded-pool operations | Testnet-first |
File locations
~/.cowl/
keystore.json # encrypted EVM key (scrypt + AES-256-GCM, 0600)
viewkey.json # ed25519 view key (0600)
config.json # network + overrides (0600)Override the directory with COWL_HOME.