Magic Eden Wallet Developer Docs
  • 👋Welcome
    • Wallet Introduction
  • 📙Bitcoin
    • Diving into Bitcoin
    • Detecting the Provider
    • Connecting to the Wallet
    • Signing a Message
    • Signing a Transaction
    • Sending BTC
    • Provider API Methods
    • Provider Events
    • FAQs
  • 📗Solana
    • Diving Into Solana
    • Solana Wallet Adapter
    • Connect Directly to the ME Solana Provider
    • Signing a Message
    • Sending a Transaction
    • Provider API Methods
    • Provider Events
    • FAQs
  • 📘EVM
    • Diving into the EVM
    • Connect Directly to the ME EVM Provider
    • Signing a Message
    • Sending a Transaction
    • Library Integrations
      • Wallet Connect
      • Rainbow Kit
      • Wagmi
    • Provider API Methods
    • Provider Events
    • FAQs
  • ❓Resources
    • Demo Apps
    • Logos and Brand Assets
Powered by GitBook
On this page
  • Direct Signing
  • Using Ethers.js
  1. EVM

Signing a Message

Once a web application has connected to the ME Ethereum wallet, it can prompt users to sign messages. Signing is commonplace amongst many dApps, as it gives application owners the ability to verify ownership of the wallet, without requiring any transaction fees.

Direct Signing

Triggering this directly would look make use of the provider request function and look like this:

const message =
	"Hello, World! 🌍 Welcome to the Magic Eden wallet on Ethereum";

// can also use Buffer.from for a simpler implementation, but polyfills :/
const msg =
	"0x" +
	Array.from(message)
		.map((c) => c.charCodeAt(0).toString(16).padStart(2, "0"))
		.join("");
const sign = await provider.request({
	method: "personal_sign",
	params: [msg, address, "Example password"],
});

Using Ethers.js

 const signer = await provider?.getSigner();
 await signer!.signMessage(
   "Hello, World! 🌍 Welcome to the Magic Eden wallet on Ethereum"
 );
PreviousConnect Directly to the ME EVM ProviderNextSending a Transaction

Last updated 10 months ago

Alternatively, you can make use of the popular web3 javascript library to abstract away some of the above complexity. Instead of directly invoking personal_sign on the provider request, you can wrap the ME browser provider in a Web3Provider object from ethers. Doing so allows you to invoke the signMessage function directly.

📘
ethers.js