Repository navigation
feat: sign DKLS safe VRF keygen messages and send BIP44 path on safe derive - #9983
Merged
Merged
Conversation
Contributor
danielpeng1
previously approved these changes
Oct 15, 2026
davidkaplanbitgo
force-pushed
the
WCN-2969-derive-r1-path
branch
from
October 15, 2026 23:59
aa7ddbc to
fa07e61
Compare
davidkaplanbitgo
marked this pull request as draft
October 16, 2026 00:09
pranishnepal
previously approved these changes
Oct 16, 2026
davidkaplanbitgo
dismissed stale reviews from pranishnepal and danielpeng1
via
October 16, 2026 14:12
dfb4169
davidkaplanbitgo
force-pushed
the
WCN-2969-derive-r1-path
branch
2 times, most recently
from
October 16, 2026 14:15
dfb4169 to
6f8d566
Compare
davidkaplanbitgo
force-pushed
the
WCN-2969-derive-r1-path
branch
from
October 16, 2026 15:22
6f8d566 to
4c2d45e
Compare
Contributor
|
|
davidkaplanbitgo
requested a deployment
to
breaking-changes-override
October 16, 2026 15:31 — with
GitHub Actions
Waiting
danielpeng1
self-requested a review
October 16, 2026 15:44
davidkaplanbitgo
force-pushed
the
WCN-2969-derive-r1-path
branch
from
October 16, 2026 16:12
4c2d45e to
cc54e4e
Compare
davidkaplanbitgo
deployed
to
breaking-changes-override
October 16, 2026 16:20 — with
GitHub Actions
Active
danielpeng1
marked this pull request as ready for review
October 16, 2026 16:36
danielpeng1
approved these changes
Oct 16, 2026
s84krish
approved these changes
Oct 16, 2026
|
Breaking change linter override approved. Re: Pre-GA. Note that the Audit API CI will continue to show as failing. That’s expected, but non blocking now. |
pranavjain97
approved these changes
Oct 16, 2026
bhargavirao24
approved these changes
Oct 16, 2026
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Tickets: WCN-3084, WCN-2969
Two commits, two independent changes to the safe MPC flows in
sdk-core:feat: align DKLS safe VRF keygen with the HSM(WCN-3084)feat(sdk-core): send the full BIP44 path on safe derive round 1(WCN-2969)The first commit is the work from #9982 (branch
sibikrishnan/wcn-3084-dkls-vrf-keygen-signed-messages), brought in here so both land together.1. DKLS safe VRF keygen signed messages (WCN-3084)
ecdsaMpckeygen fails at R1: the HSM returns 400 because the VRF messages are sent as unsignedbase64(JSON)strings.DklsComms.detachSignData), in the{from, message, signature}shape the HSM verifies.bitgoVrfMsg1. Decrypt and verifybitgoVrfMsgToUser/bitgoVrfMsgToBackup.bitgoVrfMsg2assertion, the local opaque VRF types, and the serialize helpers.2. Full BIP44 path on safe derive round 1 (WCN-2969)
sendDerivationRound1BySendersend the Safe childpath(m/44'/<coinType>'/<slot>'/<account>') in place of the account index. Removes theTODO(WCN-2969)markers.KeyGenSenderForSafeChild(both curves) now takes and sendscoin, so wallet-platform can resolve the coin type it expects in the path.createSafeChildKeychainskeeps validating the path withparseSafeBip44Pathbefore any network call.Dependency bump
@bitgo/public-types6.83.0 to 6.90.0 insdk-core,sdk-lib-safes,abstract-lightning,express,passkey-crypto,sdk-coin-flrp,sdk-coin-solandbitgo. 6.88.0 added the DKLS VRF codecs (change 1); 6.90.0 addspathon the derive round 1 requests (change 2).Depends on
ecdsaMpconly; it already fails today).pathandcoinonPOST /mpc/generatekey(bitgo-microservices draft PR, WCN-2963).Test
yarnbuild passes.bitgotest/v2/unit/internal/tssUtils/ecdsaVrfMPCv2/: 13 passing (createKeychains.tsfor change 1; the R1 nock increateSafeChildKeychains.tsmatchespathandcoinfor change 2).sdk-coreunit tests filtered toVRF|Vrf|derive|Derive|safe: 130 passing (includeseddsaVrfMPCv2.ts: R1 body carriespathandcoin, noderivationIndex).