Skip to content

impl: multisig btc staker#225

Merged
canu0205 merged 17 commits intofeat/staker-multisigfrom
chris/multisig
Jan 6, 2026
Merged

impl: multisig btc staker#225
canu0205 merged 17 commits intofeat/staker-multisigfrom
chris/multisig

Conversation

@canu0205
Copy link
Copy Markdown
Contributor

@canu0205 canu0205 commented Dec 16, 2025

Description

Closes: #208

Note: e2e tests currently failed because there are no images available on the docker hub for the given multisig supported babylon commit (7989574)

How to test

Will add e2e test in the other PR. you can test this with babylon-deployment chris/multisig branch here (babylonlabs-io/babylon-deployment#52).

after pulling chris/multisig branch of babylon-deployment, run btcstaking-demo.sh by this command:

make start-deployment-btcstaking-bitcoind-multisig-demo USE_DOCKERHUB_IMAGES=FALSE

@canu0205 canu0205 changed the base branch from main to feat/staker-multisig December 16, 2025 11:42
@canu0205 canu0205 self-assigned this Dec 16, 2025
@canu0205
Copy link
Copy Markdown
Contributor Author

canu0205 commented Dec 22, 2025

hey @Lazar955 , can u publish this commit(7989574) in the babylon repository to the docker hub? e2e test in the CI is failing because there are no such docker image on the hub. cc. @RafilxTenfen

@canu0205 canu0205 marked this pull request as ready for review December 22, 2025 10:28
@Lazar955
Copy link
Copy Markdown
Member

hey @Lazar955 , can u publish this commit(7989574) in the babylon repository to the docker hub? e2e test in the CI is failing because there are no such docker image on the hub. cc. @RafilxTenfen

cc @babylon-devops

@Lazar955
Copy link
Copy Markdown
Member

also @canu0205 feel free to tag our devops in the devops channel on slack when you need images built

@canu0205
Copy link
Copy Markdown
Contributor Author

thanks @Lazar955 ! but I think I'm not in the devops slack channel and don't have permission to mention a devops.

@RafilxTenfen
Copy link
Copy Markdown
Contributor

hey @Lazar955 , can u publish this commit(7989574) in the babylon repository to the docker hub? e2e test in the CI is failing because there are no such docker image on the hub. cc. @RafilxTenfen

I have asked @maiquanghiep 🙌

@RafilxTenfen
Copy link
Copy Markdown
Contributor

Comment thread docs/multisig-guide.md
Comment thread cmd/stakercli/daemon/daemoncommands.go
Comment thread stakercfg/config.go Outdated
// StakerKeysConfig holds private key material for the staker-controlled taproot
// multisig branch. These keys are loaded directly into stakerd (testing
// scenario) and are independent of the wallet RPC config.
type StakerKeysConfig struct {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lets specify in the name that this is for Multisig, maybe StakerMultisigConfig

Copy link
Copy Markdown
Contributor

@RafilxTenfen RafilxTenfen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, e2e at #226

Comment thread docs/multisig-guide.md Outdated
- In `stakerd.conf`, add a `[stakerkeys]` section with a comma-separated list of WIFs and a quorum:
```ini
[stakerkeys]
StakerKeyWIFs = wif1,wif2,wif3
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

could you add an example of the real keys

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

applied here f64337f

Comment thread docs/multisig-guide.md Outdated
## Configure multisig staker keys
- In `stakerd.conf`, add a `[stakerkeys]` section with a comma-separated list of WIFs and a quorum:
```ini
[stakerkeys]
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
[stakerkeys]
[multisigstakerkeys]

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

will make it stakermultisigconfig to be asymmetrical with stakerconfig

Copy link
Copy Markdown
Member

@Lazar955 Lazar955 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good! Nice work, let's merge so we can see the e2e working

}

// in case of multisig btc stake expansion, it populates DelegationData and adds to MsgBtcStakeExpand
if dg.MultisigInfo != nil {
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: but not sure if we can reduce duplication of this and at lines 570 of this file. Long nested ifs and building of the MultisigInfo, maybe a fcn populateMultisigInfo

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

and fix lint ofc

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

applied here f64337f


// NewImageConfig returns ImageConfig needed for running e2e test.
func NewImageConfig(t *testing.T) ImageConfig {
// TODO: Temporary fixed babylond version with snapshot tag
Copy link
Copy Markdown
Contributor Author

@canu0205 canu0205 Jan 6, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@RafilxTenfen @Lazar955 FYI. I've dealt with this TODO in this commit 5fb33ad.

now it supports babylond with snapshot tag on the docker hub is okay for btc-staker to run its own e2e test suites.

@canu0205 canu0205 merged commit 7383bb9 into feat/staker-multisig Jan 6, 2026
18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

BTC Staker multisig support

3 participants