Skip to main content

What you will learn

  • How to import an existing private key
  • How to import from a BIP-39 mnemonic
  • How to generate a new random key
  • How to list available keystore addresses

Overview

The Clavion CLI (clavion-cli) manages the encrypted keystore that ISCL Core uses for transaction signing. Keys are encrypted at rest using scrypt + AES-256-GCM and stored in the keystore directory.

Commands

key import

Import a private key from stdin. The key is encrypted and stored in the keystore.
The CLI prompts for a passphrase to encrypt the key. In non-interactive environments, the passphrase can be provided via the ISCL_DEMO_PASSPHRASE environment variable.
Never pass private keys as command-line arguments — they will appear in shell history and process listings. Always pipe from stdin or a file.

key import-mnemonic

Import a wallet from a BIP-39 mnemonic phrase. Derives the key using the standard Ethereum derivation path (m/44'/60'/0'/0/0 by default).
Options: Example with custom derivation:
This derives from path m/44'/60'/0'/0/2.

key generate

Generate a new random private key, encrypt it, and store it in the keystore.
Output:

key list

List all addresses in the keystore.
Output:

Global options

Example:

Keystore format

Keys are stored as individual JSON files named by address (e.g., 0x1234...5678.json). Each file contains:
  • Encrypted private key (AES-256-GCM)
  • Scrypt parameters (salt, N, r, p)
  • IV and auth tag for authenticated decryption
The keystore format is designed for ISCL only — it is not compatible with Ethereum keystore v3 (used by Geth/Clef).

Verification

After importing or generating a key, verify it:

Next steps

  • Quick Start — Use the imported key to execute a transaction
  • Demo Flow — Complete transaction lifecycle walkthrough
  • Configuration — Keystore path and passphrase settings