Crypto signature

ArConnect Injected API signature() function
Deprecation warning: The signature() function is deprecated in ArConnect 1.0.0. Read about the alternatives below.


There are quite a few cases where you might need to generate a cryptographic signature for a piece of data or message so that you can verify them. The most common ones and their alternatives are the following:
The safety of our users' wallets is our top priority, so we've decided to deprecate our signature() function, following the example of and we expect other Arweave wallets now or in the future to do the same, so eventually, this should be a smooth transition to the new alternatives. We are sorry for any inconveniences caused by this change.
Often an application might need a piece of data that is created, authorized or confirmed by the owner of a wallet. The signature() function creates a cryptographical signature that allows applications to verify if a piece of data has been signed using a specific wallet. This function works similarly to the webcrypto sign API.
The encrypted data to be signed with the user's private key
RsaPssParams, AesCmacParams or EcdsaParams
An object specifying the algorithm to be used and any extra parameters if required
Note: This function requires the SIGNATURE permission.
Note: Not to be confused with the sign() function that is created to sign Arweave transactions.

Example usage

// connect to the extension
await window.arweaveWallet.connect(["SIGNATURE"]);
// sign data
const signature = await window.arweaveWallet.signature(new TextEncoder().encode("Data to sign"), {
name: 'RSA-PSS',
saltLength: 0,
console.log("The signature is", signature);