Skip to main content
Send ETH and ERC-20 token transfers securely using Para’s wallet infrastructure.

Prerequisites

You need Web3 libraries configured with Para authentication.

Send ETH

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

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

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

  const {
    sendTransactionAsync,
    isPending,
    data: receipt,
  } = useParaEthersSendTransaction(ethersSigner);

  return (
    <div>
      <button
        onClick={() =>
          sendTransaction({
            to: "0x742d35Cc6634C0532925a3b844Bc9e7595f7BBB2",
            value: ethers.parseEther("0.01"),
          })
        }
        disabled={isPending}
      >
        {isPending ? "Sending..." : "Send 0.01 ETH"}
      </button>
      {receipt && <p>Transaction Hash: {receipt.hash}</p>}
    </div>
  );
}

Send ERC-20 Tokens

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

const ERC20_ABI = [
  "function transfer(address to, uint256 amount) returns (bool)"
];

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

function SendToken({
  tokenAddress,
  decimals,
}: {
  tokenAddress: string;
  decimals: number;
}) {
  const { ethersSigner } = useParaEthersSigner({ provider });

  const {
    writeContractAsync,
    isPending,
    data: receipt,
  } = useParaEthersWriteContract(ethersSigner);

  return (
    <button
      onClick={() =>
        writeContract({
          address: tokenAddress,
          abi: ERC20_ABI,
          functionName: "transfer",
          args: [
            "0x742d35Cc6634C0532925a3b844Bc9e7595f7BBB2",
            ethers.parseUnits("10", decimals),
          ],
        })
      }
      disabled={isPending}
    >
      {isPending ? "Sending..." : "Send 10 Tokens"}
    </button>
  );
}

Next Steps