Skip to main content
The circuit wallet namespace manages an encrypted local keystore that holds the local keys the embedded circuit run uses to sign. The keystore lives at ~/.circuit/local/keystore by default, sealed with AES-256-GCM under a key derived (HKDF-SHA256) from a local identity the CLI generates on first use - there is no keystore password. Override the location with --keystore <path>. Wallet families are evm and solana.

Select a wallet

Use --wallet <name-or-address> for run, unwind, wallet delete, and wallet export. Names match without case; EVM addresses match without case; Solana addresses match exactly. An exact address takes precedence over a matching name. Embedded execution and wallet management select from the local keystore. Hosted execution selects from your Circuit account and never reads that keystore. Dry run accepts a local name or any valid address.

List Wallets

Prints one TSV row per wallet (ADDRESS\tVM_FAMILY\tNAME) so the output is pipe-friendly. Use --json for a structured response. If no keystore exists yet, this exits 0 with an empty list.

Add Wallet

Use --generate evm|solana to create a fresh keypair from OS entropy. To import a key, use circuit wallet add --name "Trading wallet" --vm-family evm --private-key-prompt. Paste the key at the hidden prompt and press Enter. For direct input, supply --private-key <key> instead of --private-key-prompt. EVM keys accept 64 hex characters with or without 0x. Solana keys accept base58, hex, or a JSON byte array containing a 32-byte seed or 64-byte secret key. Generation and import flags cannot be combined. --name is required. Names must be nonempty, have no surrounding whitespace, and cannot start with Polymarket - in any letter case. Names must be unique without case within the local keystore or hosted account. The first circuit wallet add creates the local identity and keystore automatically - no password, no login, no account. Subsequent adds seal into the same keystore. Follow the command input and secret handling rules when supplying private keys.

Delete Wallet

Permanently removes the stored wallet key bytes. Requires --yes.

Export Wallet

Decrypts a local key and prints it to stderr: 0x-prefixed hex for EVM, base58 for Solana. Requires --yes; --json is not supported. Use 2> only when you intend to save the key, and protect the output file.

Keystore file location

circuit wallet honors two paths to override the default ~/.circuit/local/keystore: The keystore file is always written with 0600 permissions (owner read/write only); circuit wallet refuses to read a keystore that has been chmod’d looser than that.