Skip to main content
Sign structured data according to the EIP-712 standard, which provides a more readable and secure signing experience for users. This guide covers signing typed data with , , and .

Prerequisites

You need Web3 libraries configured with Para authentication.

Sign Typed Data

import { useParaEthersSigner, useParaEthersSignTypedData } from "@getpara/react-sdk";
import { JsonRpcProvider } from "ethers";

const provider = new JsonRpcProvider("https://ethereum-sepolia-rpc.publicnode.com");

function SignTypedData({
  domain,
  types,
  value,
}: {
  domain: any;
  types: any;
  value: any;
}) {
  const { ethersSigner } = useParaEthersSigner({ provider });

  const {
    signTypedDataAsync,
    isPending,
    data: signature,
  } = useParaEthersSignTypedData(ethersSigner);

  return (
    <div>
      <button
        disabled={isPending}
        onClick={() => signTypedData({ domain, types, value })}
      >
        {isPending ? "Signing..." : "Sign Typed Data"}
      </button>
      {signature && <p>Signature: {signature}</p>}
    </div>
  );
}