Wallet integration checklist

As the StarkEx ecosystem grows, applications and end users increasingly need wallets to provide better security in managing private Stark keys and in the private Stark key signing process.

In order to integrate with StarkEx-powered applications a wallet needs to support the following:

  • ECDSA signing over the Stark curve.

  • The Pedersen hash function.

  • Derivation of Stark keys. Each wallet uses its own derivation logic.

  • Signing of StarkEx transactions, using raw signing or broadcast signing:

    Broadcast signing

    The wallet receives the transaction payload from the application. This method is fully transparent to the user, as the wallet can present the transaction’s parameters to the user. When the user approves, the wallet constructs the hash and computes the signature. Multi-Party Computation (MPC) wallets can use StarkEx transaction-specific parameters in the policy engine in order to limit some operations, such as adding another signer when the amount exceeds a given threshold.

    Raw signing

    The application hashes the transaction. The wallet receives the hash of the transaction and signs it.

    You can implement either signing method listed here via the API or the UI.

    In Ethereum, the wallet sends the signed transactions directly to the blockchain, whereas in StarkEx, the wallet sends the signature back to the application. Then the application, not the wallet, sends the signed transaction to StarkEx. The application is the only entity that has the necessary permissions to send transactions to StarkEx, because the application’s state and the StarkEx system state must be fully synchronized at all times.

Additional resources