Verify message

ArConnect Injected API verifyMessage() function

This function allows verifying a cryptographic signature created by ArConnect.

ArgumentTypeDescription

data

ArrayBuffer

The data to verify the signature for

signature

ArrayBuffer | string

The signature to validate

publicKey?

string

Arweave wallet JWK.n field, transaction owner field or public key from ArConnect.

options?

Configuration for the signature

Note: This function requires the SIGNATURE permission.

Note: The publicKey argument is optional, if it is not provided, the extension will use the currently selected wallet's public key. You might only need this if the message to be verified was not made by the connected user.

Note: The options argument is optional, if it is not provided, the extension will use the default signature options (default hash algorithm) to sign the data.

Example usage

// connect to the extension
await window.arweaveWallet.connect(["SIGNATURE"]);

// data to be signed
const data = new TextEncoder().encode("The hash of this msg will be signed.");

// create signature
const signature = await window.arweaveWallet.signMessage(data);

// verify signature
const isValidSignature = await window.arweaveWallet.verifyMessage(data, signature);

console.log(`The signature is ${isValidSignature ? "valid" : "invalid"}`);

Last updated