Lute Wallet

This guide explains how to integrate Lute wallet with Sign-In with Algorand (SIWA) for transaction signing.

Get started quickly with SIWA Connect

Prerequisites

  1. Install the Lute wallet extension on Chrome

  2. Install the lute-connect NPM package

Overview

Lute wallet uses a transaction-based approach for signing SIWA messages. Here's how it works:

  1. Create a zero-amount payment transaction

  2. Set the transaction's note field to the encoded SIWA message

  3. Sign the transaction using Lute wallet

  4. Extract the signature from the signed transaction

Implementation

1. Connecting to Lute Wallet

To connect to Lute wallet, use the LuteConnect class:

2. Signing a SIWA Message

To sign a SIWA message with Lute wallet:

  1. Create a payment transaction with the SIWA message in the note field

  2. Sign the transaction using Lute wallet

  3. Extract the signature from the signed transaction

Here's the code to accomplish this:

Verification

When verifying the SIWA message signature for Lute wallet, the process is more complex due to the transaction-based approach. Here's how it works:

  1. The verification function receives the following parameters:

    • message: The original SIWA message

    • signature: The signature in base64 format

    • provider: The wallet provider (in this case, "Lute")

    • encodedTransaction: The encoded transaction in Base64 format

  2. The verification process for Lute wallet:

  1. The verifySignedTransaction function is used to validate the transaction:

This verification process ensures that:

  1. The transaction is properly signed

  2. The signature in the transaction matches the provided signature

  3. The transaction is valid according to Algorand's rules

Remember to handle any potential errors during the verification process and ensure that all required parameters are provided.

Last updated