Starknet

The Starknet blockchain uses ECDSA signatures over the StarkCurve. Builder Vault supports this scheme and you can therefore use Builder Vault to build an MPC wallet for Starknet.

When you generate a new wallet, you will need to generate a new ECDSA master key in Builder Vault as follows:

curveName := "StarkCurve"
keyID, err := client.ECDSA().GenerateKey(context, sessionConfig, threshold, curveName, desiredKeyID)

To perform a transaction, you will need to generate the corresponding message hash to be signed in your application:

partialSignResult, err := client.ECDSA().Sign(context, sessionConfig, keyID, nil, msgHash)

Finally, when you have obtained a partial signature from each of the MPC nodes in the session, you can combine the partial signatures into the final signature using

signature, err := tsm.ECDSAFinalizeSignature(msgHash, partialSignatures)

Given the signature, it is up to your application to use the signature to build and submit the signed transaction. You can use any available 3rd party library for this, but we recommend using Blockdaemon's API Suite.

📘

Using Blockdaemon's API Suite

Blockdaemon offers an API Suite with packaged solutions specifically designed to meet your unique needs. It helps you perform blockchain-specific tasks across multiple blockchains. The Blockdaemon API Suite works well in combination with the Builder Vault if you want to build a secure and flexible wallet.

You can learn more about key generation and signing with Builder Vault here. There are also various code examples available, in Go, Java, Node.js and more, in our demo repository.