npm / @metamask/account-api
@metamask/account-api
What changed in @metamask/account-api 94 to 129, from its official release notes, upgrade guides and advisories. Also covers @metamask/eth-hd-keyring, @metamask/eth-ledger-bridge-keyring, @metamask/eth-money-keyring, @metamask/eth-qr-keyring, @metamask/eth-snap-keyring, @metamask/hw-wallet-sdk, @metamask/keyring-api, @metamask/keyring-internal-api, @metamask/keyring-sdk, @metamask/keyring-snap-client, @metamask/keyring-utils. Sources checked 2026-10-19.
17 breaking28 new APIs and options3 behavior and defaults3 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli init@metamask/account-api 1298 changes
New APIs and options 8
Adds the address:import create account option for importing watch-only accounts by address.
Adds an optional accountType field because the account type cannot always be detected from the address alone.
Adds an optional scopes field; when omitted, the keyring decides the scopes.
Adds the type related to the MPC entropy option for accounts derived from an MPC key share.
Adds the 'mpc' entropy option for accounts derived from an MPC key share.
Adds the address capability to declare whether a keyring supports importing watch-only accounts by address.
Adds the Mpc keyring type.
Adds the WatchOnly keyring type.
@metamask/account-api 1231 changes
Breaking changes 1
Node.js v18 and v20 are no longer supported; the minimum version is now v22.
@metamask/account-api 1214 changes
Breaking changes 1
Now composes BalanceStruct, changing the structure's composition.
New APIs and options 3
Adds a metadata field to pass extra metadata alongside asset balances.
Adds a metadata field to pass extra metadata alongside asset balances.
Accepts metadata alongside account balance updates.
@metamask/account-api 1203 changes
Breaking changes 3
Removed
exactOptionalsuperstruct support; use@metamask/superstructinstead.Removed
objectsuperstruct support; use@metamask/superstructinstead.Removed
typesuperstruct support; use@metamask/superstructinstead.
@metamask/account-api 11510 changes
New APIs and options 9
Adds EIP-7702 authorization signing support to the Ledger keyring.
Adds a custom command for retrieving Ethereum app configuration via DMK.
Both bridges throw until DMK support lands, so they are not yet functional.
Adds a getter for checking whether the device is connected.
Adds a utility for identifying device exchange errors.
Adds a LedgerBridge implementation using Ledger's Device Management Kit.
Adds middleware for managing DMK sessions, device discovery, and Ethereum signer lifecycle.
Adds an observable for monitoring session state.
Adds DMK error translation to TransportStatusError.
Fixes and other changes 1
Fixes parsing of hex
vvalue'1b'for personal_sign and typed data.
@metamask/account-api 1141 changes
New APIs and options 1
Adds a static type for v2 SnapKeyring, allowing developers to use its type in their code.
@metamask/account-api 1132 changes
New APIs and options 2
Adds optional typeLabel, which can display a custom label regarding the transaction type.
Adds TransactionType.TokenDisapprove for token disapproval transactions.
@metamask/account-api 1081 changes
Fixes and other changes 1
On mobile, falls back to blind signing when clearSignTransaction fails, except when the user rejects on the device.
@metamask/account-api 1071 changes
Fixes and other changes 1
Keyring is verified as compatible with BaseKeyring instead of being narrowed, preserving the proper getAccounts() signature.
@metamask/account-api 1061 changes
New APIs and options 1
Adds the minimum interface used by KeyringController to handle keyring lifecycles.
@metamask/account-api 1002 changes
New APIs and options 2
Adds selectors for the three EIP-20 write functions: transfer, transferFrom, and approve.
Adds a function to read the 4-byte calldata selector from serialized transaction hex for legacy and typed transactions.
@metamask/account-api 9417 changes
Breaking changes 12
Serialized state stores the derived account address instead of numberOfAccounts, and restores it directly without calling getMnemonic.
decryptMessage is no longer exposed.
Serialized state stores entropySource instead of mnemonic; deserialize() sets it, while the mnemonic is resolved through the callback.
exportAccount is no longer exposed.
getAppKeyAddress is no longer exposed.
getEncryptionPublicKey is no longer exposed.
hdPath is no longer serialized and is always MONEY_DERIVATION_PATH.
mnemonic is no longer stored in serialized state; it is resolved at deserialization time through the callback.
The constructor now requires a MoneyKeyringOptions object containing a getMnemonic callback.
numberOfAccounts is replaced in serialized state by the derived account address.
removeAccount() has been removed; accounts are permanent once added.
signMessage is no longer exposed.
New APIs and options 2
Custom cryptographic functions are supported and forwarded to the inner HdKeyring.
A GetMnemonicCallback type is newly exported.
Behavior and default changes 3
getAccounts() is now a cheap synchronous-like read that never triggers getMnemonic.
The inner HdKeyring is initialized lazily on the first signing call and protected by a mutex for single initialization under concurrency.
MoneyKeyring now uses composition and wraps an inner HdKeyring instead of extending it.