Wallet CLI

A lightweight CLI for generating Cardano wallets offline. Create secure BIP-39 mnemonic wallets or single key-pair (enterprise) wallets—perfect for scripts, tests, and backend services.

Use it when you need to:

  • Spin up wallets on-demand for backends or minting policies.

  • Automate tests that require fresh addresses.

  • Handle keys and addresses straight from the terminal (no GUI).

Features

  • Offline: No internet needed.

  • Script-Ready: Single binary, perfect for CI/CD or bash scripts.

  • Configurable: 12/24 words, with an optional passphrase for mnemonic wallets.

  • Portable: Use the --seed flag to restore an existing wallet, or use a newly generated phrase in other standard wallet apps (Eternl, Lace, etc.).

Getting Started

You can get the latest compiled version from the official releases page:

Download Latest Release

Alternatively, you can build it directly from the source code.

Build from Source

Source code requires Deno to be installed on your system.

git clone https://github.com/Cardano-Forge/cardano-wallet-cli.git
cd cardano-wallet-cli/
deno compile --allow-read --allow-write --output cardano-wallet src/mod.ts

Wallet Types Explained

This tool can generate two fundamental types of wallets, which in turn determine the kinds of addresses you can create.

The type of wallet you generate determines which keys are created and, therefore, which types of addresses you can use.

Wallet Type
Keys Generated
Address Types Available
How to Generate

Mnemonic (HD) Wallet

Payment & Staking Keys

Base Address (for staking) Enterprise Address

Use the --mnemonic or --seed flag.

Single Key-Pair Wallet

Payment Key Only

Enterprise Address only

Default behavior (no flags).

  • Base Address: The standard address for users who want to receive funds and participate in staking. It combines both a payment and a staking key.

  • Enterprise Address: A simpler address that only uses a payment key and does not include staking rights. This makes it ideal for specific use cases:

    • Exchanges and Custodians: To hold customer funds without participating in staking, providing transparency.

    • Smart Contracts & Scripts: For programmatic wallets that need to hold funds or native tokens but do not require staking capabilities.

    • Automated Services: For backend systems that generate addresses for payments or other automated tasks.

Usage and Examples

Command-Line Options

Flag
Description
Required
Default

--name

The base name for the output wallet file (e.g., my-wallet).

Yes

-

--mnemonic

If present, creates a mnemonic (HD) wallet.

No

-

--seed

A 12 or 24-word mnemonic phrase to restore a wallet.

No

-

--bits

Set mnemonic length. Use 128 for 12 words, 256 for 24.

No

256

--password

An optional password to secure the mnemonic wallet.

No (but strongly recommended)

-

Examples

1. Create a 24-Word Mnemonic Wallet (Base Address)

./cardano-wallet --name=main-wallet --mnemonic

2. Create a 12-Word Mnemonic Wallet (Base Address)

./cardano-wallet --name=quick-wallet --mnemonic --bits=128

3. Restore a Wallet from a Mnemonic Phrase (Base Address)

./cardano-wallet --name=restored-wallet --seed="your twelve or twenty four word seed phrase goes here"

4. Create a Single Key-Pair Wallet (Enterprise Address)

This is the default behavior and creates a simple wallet with no staking capabilities.

./cardano-wallet --name=payment-key

Output Example

The tool generates a JSON file containing all keys and addresses.

{
  "skey": "ed25519e_sk18qn7l5w0pspu2uf6pz5qvn392g23fwpn99vrzjmy6j3fxvjrhdvcm8r44jkvmnv2h5uqx06k5x20gcdlhns0d6xzewfzpgtzk25vxmsw2c3nh",
  "skey_hex": "3827efd1cf0c03c5713a08a8064e25521514b8332958314b64d4a2933243bb598d9c75acaccdcd8abd38033f56a194f461bfbce0f6e8c2cb9220a162b2a8c36e",
  "pkey": "ed25519_pk1l4k5ydd0nlal4vd3zum2e76wx7hpunz5quq7ntqy3z5fnpk9nm3scy6ad0",
  "pkey_hex": "fd6d4235af9ffbfab1b11736acfb4e37ae1e4c540701e9ac0488a89986c59ee3",
  "key_hash": "e9c2caf1072e363420c7a4c84b622284f82a3799d8acf6af0c87ee41",
  "base_address_preview": "addr_test1qr5u9jh3quhrvdpqc7jvsjmzy2z0s23hn8v2ea40pjr7usfqf0xczeqwhr8k0q556shm2xc5s04cyd36448vz8rnrdtsu6u3gq",
  "base_address_preprod": "addr_test1qr5u9jh3quhrvdpqc7jvsjmzy2z0s23hn8v2ea40pjr7usfqf0xczeqwhr8k0q556shm2xc5s04cyd36448vz8rnrdtsu6u3gq",
  "base_address_mainnet": "addr1q85u9jh3quhrvdpqc7jvsjmzy2z0s23hn8v2ea40pjr7usfqf0xczeqwhr8k0q556shm2xc5s04cyd36448vz8rnrdtslvp3yl",
  "enterprise_address_mainnet": "addr1v85u9jh3quhrvdpqc7jvsjmzy2z0s23hn8v2ea40pjr7usgqjrh84",
  "enterprise_address_preview": "addr_test1vr5u9jh3quhrvdpqc7jvsjmzy2z0s23hn8v2ea40pjr7usgm6htgs",
  "enterprise_address_preprod": "addr_test1vr5u9jh3quhrvdpqc7jvsjmzy2z0s23hn8v2ea40pjr7usgm6htgs",
  "reward_address_mainnet": "stake1uysyhnvpvs8t3nm8s22dgta4rv2g86uzxca26nkpr3e3k4cwpgth2",
  "reward_address_preview": "stake_test1uqsyhnvpvs8t3nm8s22dgta4rv2g86uzxca26nkpr3e3k4cftzfnh",
  "reward_address_preprod": "stake_test1uqsyhnvpvs8t3nm8s22dgta4rv2g86uzxca26nkpr3e3k4cftzfnh",
  "mnemonic": "essence taste already amount black shell neutral amused negative chronic mechanic warm famous clerk zero barely random october pipe antenna glue volume silver donor"
}

Disclaimer

The 2 seed phrases used in this document must not be used in your project.

The mnemonic, skey and skey_hex must stay private at all time.

Last updated

Was this helpful?