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, and wallet commands need no login or session permit. Override the location per command with --keystore <path>, or relocate the whole config directory with CIRCUIT_CONFIG_PATH. The keystore is always written with 0600 permissions; circuit wallet refuses to read one with looser permissions. Wallet families are evm and solana.
Select a wallet
Use--wallet <name-or-address> for run, stop, 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. The account API’s GET /wallets/list returns { wallets, markedValueUsd, holdings, retryAfterMs } (markedValueUsd sums the wallets’ known marked USD values and is null when none is known; retryAfterMs is the server-chosen delay before the next read; it shortens while a balance refresh is pending), with wallets and aggregated holdings from the same read.
List Wallets
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
--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.
Follow the command input and secret handling rules when supplying private keys.
Delete Wallet
--yes.
Export Wallet
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.