Verify message and transaction signatures using Ethers, Viem, or Wagmi
import { ethers } from "ethers"; async function verifyPersonalSignature( message: string, signature: string, signerAddress: string ) { const recoveredAddress = ethers.verifyMessage(message, signature); const isValid = recoveredAddress.toLowerCase() === signerAddress.toLowerCase(); console.log("Signature valid:", isValid); return isValid; }
import { ethers } from "ethers"; async function verifyTypedDataSignature( domain: any, types: any, value: any, signature: string, signerAddress: string ) { const recoveredAddress = ethers.verifyTypedData(domain, types, value, signature); const isValid = recoveredAddress.toLowerCase() === signerAddress.toLowerCase(); console.log("Signature valid:", isValid); return isValid; }