coinbase / coinbase/mesh-specifications
[More Research Required] Bitcoin-Style Multi-sig
- Dominant language
- Shell
- Stars
- 342
- Forks
- 100
- PR merge metrics
- No merged PRs in 30d
Description
The Construction API currently assumes there is **at most** one KeyPair associated with a given `AccountIdentifier` (this does not mean there can only be a single KeyPair associated with an `AccountIdentifier` as there can be multiple `AccountIdentifiers` with the same `Address` with different `SubAccounts`). This restriction does not prevent many stake-based multi-sig flows but does block "Bitcoin-style" multi-sig transactions.
We should find some way to support returning multiple `PublicKeys` for a given `AccountIdentifier` (likely just wrapping `PublicKey` with the associated `AccountIdentifier`) in `/construction/metadata` and `/construction/payloads`. We may also need to add a field to `SigningPayload` to indicate which `PublicKey` should be used to sign a particular payload (when it is possible to use multiple).
Contributor guide
Research direction
Start by reviewing the Construction API endpoints /construction/metadata and /construction/payloads, focusing on how PublicKeys are returned for an AccountIdentifier. Then inspect SigningPayload and determine the requirements for selecting among multiple keys. Done means the API can represent multiple PublicKeys for one AccountIdentifier and identify which key signs each applicable payload.
Written by the indexing model from the issue text.
Assessment
- Domain
- api, blockchain
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100