unstale

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

@unstale/cli on npm

@metamask/account-api 1298 changes

New APIs and options 8

  • Adds the address:import create account option for importing watch-only accounts by address.

    129.0.0release notes

  • Adds an optional accountType field because the account type cannot always be detected from the address alone.

    129.0.0release notes

  • Adds an optional scopes field; when omitted, the keyring decides the scopes.

    129.0.0release notes

  • Adds the type related to the MPC entropy option for accounts derived from an MPC key share.

    129.0.0release notes

  • Adds the 'mpc' entropy option for accounts derived from an MPC key share.

    129.0.0release notes

  • Adds the address capability to declare whether a keyring supports importing watch-only accounts by address.

    129.0.0release notes

  • Adds the Mpc keyring type.

    129.0.0release notes

  • Adds the WatchOnly keyring type.

    129.0.0release notes

@metamask/account-api 1231 changes

Breaking changes 1

  • Node.js v18 and v20 are no longer supported; the minimum version is now v22.

    123.0.0release notes

@metamask/account-api 1214 changes

Breaking changes 1

  • Now composes BalanceStruct, changing the structure's composition.

    121.0.0release notes

New APIs and options 3

  • Adds a metadata field to pass extra metadata alongside asset balances.

    121.0.0release notes

  • Adds a metadata field to pass extra metadata alongside asset balances.

    121.0.0release notes

  • Accepts metadata alongside account balance updates.

    121.0.0release notes

@metamask/account-api 1203 changes

Breaking changes 3

  • Removed exactOptional superstruct support; use @metamask/superstruct instead.

    120.0.0release notes

  • Removed object superstruct support; use @metamask/superstruct instead.

    120.0.0release notes

  • Removed type superstruct support; use @metamask/superstruct instead.

    120.0.0release notes

@metamask/account-api 11510 changes

New APIs and options 9

  • Adds EIP-7702 authorization signing support to the Ledger keyring.

    115.0.0release notes

  • Adds a custom command for retrieving Ethereum app configuration via DMK.

    115.0.0release notes

  • Both bridges throw until DMK support lands, so they are not yet functional.

    115.0.0release notes

  • Adds a getter for checking whether the device is connected.

    115.0.0release notes

  • Adds a utility for identifying device exchange errors.

    115.0.0release notes

  • Adds a LedgerBridge implementation using Ledger's Device Management Kit.

    115.0.0release notes

  • Adds middleware for managing DMK sessions, device discovery, and Ethereum signer lifecycle.

    115.0.0release notes

  • Adds an observable for monitoring session state.

    115.0.0release notes

  • Adds DMK error translation to TransportStatusError.

    115.0.0release notes

Fixes and other changes 1

  • Fixes parsing of hex v value '1b' for personal_sign and typed data.

    115.0.0release notes

@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.

    114.0.0release notes

@metamask/account-api 1132 changes

New APIs and options 2

  • Adds optional typeLabel, which can display a custom label regarding the transaction type.

    113.0.0release notes

  • Adds TransactionType.TokenDisapprove for token disapproval transactions.

    113.0.0release notes

@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.

    108.0.0release notes

@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.

    107.0.0release notes

@metamask/account-api 1061 changes

New APIs and options 1

  • Adds the minimum interface used by KeyringController to handle keyring lifecycles.

    106.0.0release notes

@metamask/account-api 1002 changes

New APIs and options 2

  • Adds selectors for the three EIP-20 write functions: transfer, transferFrom, and approve.

    100.0.0release notes

  • Adds a function to read the 4-byte calldata selector from serialized transaction hex for legacy and typed transactions.

    100.0.0release notes

@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.

    94.0.0release notes

  • decryptMessage is no longer exposed.

    94.0.0release notes

  • Serialized state stores entropySource instead of mnemonic; deserialize() sets it, while the mnemonic is resolved through the callback.

    94.0.0release notes

  • exportAccount is no longer exposed.

    94.0.0release notes

  • getAppKeyAddress is no longer exposed.

    94.0.0release notes

  • getEncryptionPublicKey is no longer exposed.

    94.0.0release notes

  • hdPath is no longer serialized and is always MONEY_DERIVATION_PATH.

    94.0.0release notes

  • mnemonic is no longer stored in serialized state; it is resolved at deserialization time through the callback.

    94.0.0release notes

  • The constructor now requires a MoneyKeyringOptions object containing a getMnemonic callback.

    94.0.0release notes

  • numberOfAccounts is replaced in serialized state by the derived account address.

    94.0.0release notes

  • removeAccount() has been removed; accounts are permanent once added.

    94.0.0release notes

  • signMessage is no longer exposed.

    94.0.0release notes

New APIs and options 2

  • Custom cryptographic functions are supported and forwarded to the inner HdKeyring.

    94.0.0release notes

  • A GetMnemonicCallback type is newly exported.

    94.0.0release notes

Behavior and default changes 3

  • getAccounts() is now a cheap synchronous-like read that never triggers getMnemonic.

    94.0.0release notes

  • The inner HdKeyring is initialized lazily on the first signing call and protected by a mutex for single initialization under concurrency.

    94.0.0release notes

  • MoneyKeyring now uses composition and wraps an inner HdKeyring instead of extending it.

    94.0.0release notes