Linked Keys

package main

import (
	"fmt"

	ec "github.com/bitcoin-sv/go-sdk/primitives/ec"
)

// example using BRC-42 method for deriving a child key
func main() {
	merchantPrivKey, _ := ec.PrivateKeyFromWif("L4PoBVNHZb9wVs9TFqyFrKxmpkJPPyzbjQrCiiQUoCz7ceAq63Rt")

	invoiceNum := "test invoice number"

	customerPubKeyStr := "03121a7afe56fc8e25bca4bb2c94f35eb67ebe5b84df2e149d65b9423ee65b8b4b"
	customerPubKey, _ := ec.PublicKeyFromString(customerPubKeyStr)

	child, _ := merchantPrivKey.DeriveChild(customerPubKey, invoiceNum)

	fmt.Printf("%x", child.Serialize())
	// now use the child key to sign a message, transaction, etc
}

Last updated