MetaMask / MetaMask/internal-snaps

[bitcoin-wallet-snap] Add support for `keyring_createAccounts`

Open
#29 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
1
Forks
2
Avg merge
1d 21h
Merged PRs (30d)
105

Description

# Description

As part of the performance improvements around account management, the keyring API now supports a new method to allow the creation of multiple accounts in one request via the method `keyring_createAccounts` (`@metamask/keyring-api` version 22.0.0), this new RPC method accepts a batch request — either a single BIP-44 index or an inclusive index range — and creates all accounts in one call.

This ticket requires the Bitcoin snap to also support the method `keyring_createAccounts` and update the clients configuration to enable account creation batching. To do so, go to the file `controller-init/multichain/multichain-account-service-init.ts` (extension client case) and update the Bitcoin provider configuration to set `createAccounts > batched` to `true`

# Acceptance Criteria

1. The Bitcoin snap now supports `keyring_createAccounts`
2. A new version is released and both clients are updated to use it
3. Set the `createAccounts > batched` configuration value to `true` in both clients

# References

- Solana snap PR: https://github.com/MetaMask/snap-solana-wallet/pull/599
- [Method signature](https://github.com/MetaMask/accounts/blob/8488a657c5daf6203d1c59ca80081f54d03a77fb/packages/keyring-api/src/api/keyring.ts#L71)

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the Bitcoin snap's existing keyring methods and the linked keyring_createAccounts signature, then compare the Solana snap PR. Inspect controller-init/multichain/multichain-account-service-init.ts for the extension client and locate the corresponding configuration for the other client. Done means the Bitcoin snap supports the method, a new version is released, and both clients enable batched account creation.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
api, backend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.