Skip to content

Comments

Draft: Add Schnorr/FROST scaffold and tBTC runtime signing adapter slice#3866

Draft
mswilkison wants to merge 41 commits intomainfrom
feat/frost-schnorr-migration-scaffold
Draft

Draft: Add Schnorr/FROST scaffold and tBTC runtime signing adapter slice#3866
mswilkison wants to merge 41 commits intomainfrom
feat/frost-schnorr-migration-scaffold

Conversation

@mswilkison
Copy link

@mswilkison mswilkison commented Feb 19, 2026

Summary

  • wire build-tagged native FROST engine registration into the transitional native signing provider
  • add a generic UniFFI native FROST signing engine adapter (uniFFINativeFROSTSigningEngine) with bridge abstraction and input/output validation
  • add default frost_native registration fallback (no-op when UniFFI bridge is not compiled in)
  • add optional UniFFI-backed registration path behind frost_native && frost_uniffi_sdk && cgo using github.com/zecdev/frost-uniffi-sdk/frost_go_ffi
  • add tests for adapter behavior and optional tagged end-to-end signing/verification path
  • thread canonical bridge wallet ID compatibility fields through tBTC chain/event models (WalletChainData, NewWalletRegisteredEvent) and map them in the Ethereum adapter via legacy-compatible derivation from wallet public key hash

Dependency Notes

  • this branch currently uses internal integration pinning:
    • replace github.com/zecdev/frost-uniffi-sdk => github.com/tlabs-xyz/frost-uniffi-sdk v0.0.0-20260221162625-51e08b3fb886
  • TODO after internal review: replace the fork pin with upstream zecdev/frost-uniffi-sdk commit/release once the upstream PR is opened and merged

Validation

  • GOCACHE=/tmp/keep-core-gocache go test ./pkg/tbtc -run TestDeriveLegacyWalletID
  • GOCACHE=/tmp/keep-core-gocache go test ./pkg/chain/ethereum -run TestCalculateWalletID
  • GOCACHE=/tmp/keep-core-gocache go test -tags frost_native ./pkg/frost/signing
  • GOCACHE=/tmp/keep-core-gocache go test -tags frost_native ./pkg/tbtc -run "TestConfigureFrostSigningBackend|TestNewNode_ConfiguresFrostSigningBackend|TestSigningExecutor_Sign_NativeBackend|TestSigningExecutor_Sign_FFIStrictBackend_WithNativeSignerMaterial|TestSigningExecutor_Sign_NativeBackend_FallsBackWhenOnlyLegacySignerMaterial"
  • GOCACHE=/tmp/keep-core-gocache CGO_ENABLED=1 CGO_LDFLAGS='-lfrost_uniffi_sdk -L/Users/maclane/Projects/claude-test/frost-uniffi-sdk/target/debug -lm -ldl' LD_LIBRARY_PATH='/Users/maclane/Projects/claude-test/frost-uniffi-sdk/target/debug' go test -tags 'frost_native frost_uniffi_sdk' ./pkg/frost/signing -run TestBuildTaggedUniFFINativeFROSTBridge_EndToEndSigning

Notes

  • Contributors: Threshold Labs
  • This PR remains scaffold/integration focused; GG18 runtime replacement is not in scope here.

@mswilkison mswilkison changed the title Draft: Add Schnorr/FROST migration scaffold package and RFC Draft: Add Schnorr/FROST scaffold and tBTC runtime signing adapter slice Feb 20, 2026
maclane added 26 commits February 20, 2026 09:30
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.

1 participant