Once a web application has connected to the ME Solana wallet, it can prompt users to sign a message, send transactions, and more. Signing is commonplace amongst many dApps, as it gives application owners the ability to verify ownership of the wallet. Signing a message does not require any transaction fees.
To invoke, you can call the signMessage method on the provider directly.
import { MagicEdenProvider } from"../types/types";/** * Prompts the user to sign a message using the MagicEden Provider object * @param{MagicEdenProvider} provider The MagicEdenProvider object * @param{string} message The message to sign * @returns{Promise<string>} A promise that resolves to the signed message * @throws{Error} If an unexpected error occurs while signing the message */exportconstsignMessage=async ( provider:MagicEdenProvider, message:string):Promise<string> => {try {constencodedText=newTextEncoder().encode(message);constsignedMessage=awaitprovider.signMessage(encodedText);return signedMessage; } catch (error) {console.warn(error);thrownewError("An unexpected error occured while signing the message."); }};
Signing a message is relatively simple and doesn't require any real interaction with web3 libraries. Check out the signMessage functionality in the demo app for a more well rounded implementation.