Skip to content

Add external HSM signing flow - #631

Merged
andrewnguyen22 merged 3 commits into
developmentfrom
feat/hsm-offline-signer
Oct 12, 2026
Merged

andrewnguyen22 merged 3 commits into
developmentfrom
feat/hsm-offline-signer

Conversation

@andrewnguyen22

Copy link
Copy Markdown
Collaborator

Adds a prepare/finalize flow so external HSMs can sign native sends without implementing Canopy protobuf encoding. Supports Ed25519 and secp256k1, including raw and DER ECDSA signatures.

@andrewnguyen22
andrewnguyen22 changed the base branch from main to development October 12, 2026 14:22
@andrewnguyen22 andrewnguyen22 self-assigned this Oct 12, 2026
if prepared == nil {
return nil, nil, signingProfile{}, fmt.Errorf("prepared send is nil")
}
if prepared.Version != PreparedSendVersion {

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

PreparedSendVersion is a string and is a full equality check, wouldn't this locks of out of version upgrades that may have backwards compatibility?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

It’s the external signer version, not the Canopy node/release version - it shouldn't affect version upgrades. Canopy software can release many versions while continuing to use canopy-hsm-v1

@andrewnguyen22
andrewnguyen22 merged commit f37b60d into development Oct 12, 2026
3 checks passed
@andrewnguyen22
andrewnguyen22 deleted the feat/hsm-offline-signer branch October 12, 2026 18:36
@pablocampogo pablocampogo mentioned this pull request Oct 12, 2026
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.

3 participants