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.
Configure custom RPC endpoints and chains for networks using Web3 libraries. This guide uses public testnet RPCs for demonstration and shows minimal setup with predefined and custom chains where applicable.
Prerequisites
You need to start with setting up your Web3 library clients with Para. This guide assumes you have already configured your Para instance and are ready to integrate with Ethers.js, Viem, or Wagmi.
import { useMemo } from "react";
import { ethers } from "ethers";
import { useParaEthersSigner } from "@getpara/react-sdk";
const chainId = 11155111;
const rpcUrl = "https://ethereum-sepolia-rpc.publicnode.com";
function ConfigureRPC() {
const provider = useMemo(
() => new ethers.JsonRpcProvider(rpcUrl, chainId, { staticNetwork: true }),
[]
);
const { ethersSigner } = useParaEthersSigner({ provider });
// ethersSigner is ready to use for signing and sending transactions
}
import { useParaViemClient } from "@getpara/react-sdk";
import { createPublicClient, http } from "viem";
import { sepolia } from "viem/chains";
const chain = sepolia;
const transport = http("https://ethereum-sepolia-rpc.publicnode.com");
const publicClient = createPublicClient({ chain, transport });
function ConfigureRPC() {
const { viemClient } = useParaViemClient({
walletClientConfig: { chain, transport }
});
// viemClient is ready to use for signing and sending transactions
}
For custom chains:const customChain = {
id: 99999,
name: "Custom Chain",
network: "custom",
nativeCurrency: { name: "Ether", symbol: "ETH", decimals: 18 },
rpcUrls: {
default: { http: ["https://custom-rpc.example.com"] },
},
};
const customTransport = http("https://custom-rpc.example.com");
const customPublicClient = createPublicClient({
chain: customChain,
transport: customTransport
});
function ConfigureCustomRPC() {
const { viemClient: customWalletClient } = useParaViemClient({
walletClientConfig: { chain: customChain, transport: customTransport }
});
}
import { createConfig, http } from "wagmi";
import { sepolia } from "wagmi/chains";
import { paraConnector } from "@getpara/wagmi-v2-integration";
const chains = [sepolia] as const;
const connector = paraConnector({
para,
chains,
appName: "Your App"
});
const config = createConfig({
chains,
connectors: [connector],
transports: {
[sepolia.id]: http("https://ethereum-sepolia-rpc.publicnode.com")
}
});
For custom chains:const customChain = {
id: 99999,
name: "Custom Chain",
network: "custom",
nativeCurrency: { name: "Ether", symbol: "ETH", decimals: 18 },
rpcUrls: {
default: { http: ["https://custom-rpc.example.com"] },
},
};
const extendedChains = [sepolia, customChain] as const;
const extendedConnector = paraConnector({
para,
chains: extendedChains,
appName: "Your App"
});
const extendedConfig = createConfig({
chains: extendedChains,
connectors: [extendedConnector],
transports: {
[sepolia.id]: http("https://ethereum-sepolia-rpc.publicnode.com"),
[customChain.id]: http("https://custom-rpc.example.com")
}
});
Next Steps