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.

Send ETH and ERC-20 token transfers securely using Para’s wallet infrastructure.
Wagmi is not available on React Native. Use Ethers.js or Viem for EVM operations.

Send ETH

import { useParaEthersSigner, useParaEthersSendTransaction } from "@getpara/react-native-wallet/evm/ethers";
import { ethers, JsonRpcProvider } from "ethers";
import { View, Text, TouchableOpacity } from "react-native";

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

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

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

  return (
    <View>
      <TouchableOpacity
        onPress={() =>
          sendTransactionAsync({
            to: "0x742d35Cc6634C0532925a3b844Bc9e7595f7BBB2",
            value: ethers.parseEther("0.01"),
          })
        }
        disabled={isPending}
      >
        <Text>{isPending ? "Sending..." : "Send 0.01 ETH"}</Text>
      </TouchableOpacity>
      {receipt && <Text>Transaction Hash: {receipt.hash}</Text>}
    </View>
  );
}

Send ERC-20 Tokens

import { useParaEthersSigner, useParaEthersWriteContract } from "@getpara/react-native-wallet/evm/ethers";
import { ethers, JsonRpcProvider } from "ethers";
import { Text, TouchableOpacity } from "react-native";

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 (
    <TouchableOpacity
      onPress={() =>
        writeContractAsync({
          address: tokenAddress,
          abi: ERC20_ABI,
          functionName: "transfer",
          args: [
            "0x742d35Cc6634C0532925a3b844Bc9e7595f7BBB2",
            ethers.parseUnits("10", decimals),
          ],
        })
      }
      disabled={isPending}
    >
      <Text>{isPending ? "Sending..." : "Send 10 Tokens"}</Text>
    </TouchableOpacity>
  );
}

Next Steps