v2.3.0
agent-wallet v2.3.0
Breaking Changes
-
Provider architecture rewrite —
WalletProviderFactory/createWalletProviderhas been replaced by a new two-provider system:ConfigWalletProvider— file-backed encrypted wallets fromwallets_config.jsonEnvWalletProvider— fallback toAGENT_WALLET_*environment variablesresolveWalletProvider()/resolveWallet()— new resolver that selects the right provider automatically- Removed:
factory.ts/py,local.ts/py,static.ts/py,base.ts/py
-
Signer hierarchy restructured — Adapters split into clear responsibilities:
LocalSigner— base class holding private key + network delegationLocalSecureSigner— decrypts from Keystore V3 viasecretLoaderRawSecretSigner— resolves from plaintext private key or mnemonic
-
Config module extracted —
local/config.ts/pyreplaced bycore/config.ts/pywithWalletsTopology,WalletConfigtypes andloadConfig/saveConfighelpers -
~/.agent-wallet/config format not backward-compatible — The wallet configuration files under~/.agent-wallet/are not compatible with previous versions. If upgrading from an older version, runagent-wallet resetto reset your wallet directory, then re-initialize withagent-wallet start.
New Features
- Multi-wallet management —
ConfigWalletProvidersupports multiple wallets withaddWallet,removeWallet,setActive,listWallets - CLI double-check flow —
startcommand now prompts for confirmation when wallets already exist, preventing accidental overwrites - CLI UX improvements — Better interactive flows, password retry with 3 attempts, wallet type/ID prompts with defaults
- Secret loader — New
loadLocalSecret/load_local_secretmodule for Keystore V3 decryption - Wallet builder — New
createAdapter/create_adapterfactory for constructing the correct signer from wallet config - PR audit workflow — Added
audit-pr.ymlGitHub Actions workflow
Fixes
- Reset command bug — Fixed wallet reset not cleaning up properly
- Import cycle — Resolved circular dependency between modules
- Prettier config — Unified formatting: single quotes, no semicolons (TypeScript)