Skip to main content

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.

Sign plain text messages using Para’s secure signing infrastructure.

Prerequisites

You need Web3 libraries configured with Para authentication.

Setup Web3 Libraries

Sign Personal Messages

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

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

function SignMessage() {
  const { ethersSigner } = useParaEthersSigner({ provider });

  const {
    signMessageAsync,
    isPending,
    data: signature,
  } = useParaEthersSignMessage(ethersSigner);

  return (
    <div>
      <button
        disabled={isPending}
        onClick={() => signMessage("Hello from Para!")}
      >
        {isPending ? "Signing..." : "Sign Message"}
      </button>
      {signature && <p>Signature: {signature.slice(0, 20)}...</p>}
    </div>
  );
}

Sign Structured Messages

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

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

function SignStructuredMessage() {
  const { ethersSigner } = useParaEthersSigner({ provider });

  const {
    signMessageAsync,
    isPending,
    data: signature,
  } = useParaEthersSignMessage(ethersSigner);

  const handleSign = () => {
    const data = {
      action: "authenticate",
      timestamp: Date.now(),
      nonce: Math.random().toString(36).substring(7),
    };
    signMessage(JSON.stringify(data, null, 2));
  };

  return (
    <div>
      <button onClick={handleSign} disabled={isPending}>
        {isPending ? "Signing..." : "Sign Structured Data"}
      </button>
      {signature && <p>Signature: {signature.slice(0, 30)}...</p>}
    </div>
  );
}

Next Steps

Sign Typed Data

Verify Signatures

Execute Transactions