Documentation Index
Fetch the complete documentation index at: https://docs.getpara.com/llms.txt
Use this file to discover all available pages before exploring further.
Verify the authenticity of signed messages and typed data to ensure they originated from the expected address.
Prerequisites
You need Web3 libraries configured with Para authentication.
Verify Personal Signatures
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;
}
Verify Typed Data Signatures (EIP-712)
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;
}
Verify Personal Signatures
import { verifyMessage } from "viem";
async function verifyPersonalSignature(
address: `0x${string}`,
message: string,
signature: `0x${string}`
) {
const isValid = await verifyMessage({
address,
message,
signature,
});
console.log("Signature valid:", isValid);
return isValid;
}
Verify Typed Data Signatures (EIP-712)
import { verifyTypedData } from "viem";
async function verifyTypedDataSignature(
address: `0x${string}`,
domain: any,
types: any,
primaryType: string,
message: any,
signature: `0x${string}`
) {
const isValid = await verifyTypedData({
address,
domain,
types,
primaryType,
message,
signature,
});
console.log("Signature valid:", isValid);
return isValid;
}
Verify Personal Signatures
import { useVerifyMessage } from "@getpara/react-sdk/wagmi";
function VerifyPersonalSignature({
address,
message,
signature,
}: {
address: `0x${string}`;
message: string;
signature: `0x${string}`;
}) {
const { data: isValid, isLoading } = useVerifyMessage({
address,
message,
signature,
});
if (isLoading) return <div>Verifying signature...</div>;
return <div>Signature valid: {isValid ? "Yes" : "No"}</div>;
}
Verify Typed Data Signatures (EIP-712)
import { useVerifyTypedData } from "@getpara/react-sdk/wagmi";
function VerifyTypedDataSignature({
address,
domain,
types,
primaryType,
message,
signature,
}: {
address: `0x${string}`;
domain: any;
types: any;
primaryType: string;
message: any;
signature: `0x${string}`;
}) {
const { data: isValid, isLoading } = useVerifyTypedData({
address,
domain,
types,
primaryType,
message,
signature,
});
if (isLoading) return <div>Verifying typed data signature...</div>;
return <div>Typed Data Signature valid: {isValid ? "Yes" : "No"}</div>;
}
Next Steps