Configure custom RPC endpoints for Solana to optimize performance, use private nodes, or connect to different networks. This guide covers RPC setup for all supported libraries.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.
Setup Solana Libraries First
- @solana/kit
- @solana/web3.js
- Anchor
import { useParaSolanaSigner } from '@getpara/react-sdk';
import { createSolanaRpc } from '@solana/kit';
const rpc = createSolanaRpc("https://api.mainnet-beta.solana.com");
function ConfigureRPC() {
// Use different RPC endpoints by creating different rpc instances
const mainnetRpc = createSolanaRpc('https://api.mainnet-beta.solana.com');
const devnetRpc = createSolanaRpc('https://api.devnet.solana.com');
const customRpc = createSolanaRpc('https://your-custom-rpc-endpoint.com');
// Pass any rpc instance to the hook
const { solanaSigner, isLoading } = useParaSolanaSigner({ rpc: mainnetRpc });
const checkHealth = async () => {
const health = await mainnetRpc.getHealth().send();
const version = await mainnetRpc.getVersion().send();
return { health, version };
};
return { solanaSigner, checkHealth };
}
import { ParaSolanaWeb3Signer } from '@getpara/solana-web3.js-v1-integration';
import { Connection, clusterApiUrl, Commitment } from '@solana/web3.js';
import { para } from './para';
function useCustomRPC() {
// Using Solana public RPC endpoints
const mainnetConnection = new Connection(
clusterApiUrl('mainnet-beta'),
'confirmed'
);
const devnetConnection = new Connection(
clusterApiUrl('devnet'),
'confirmed'
);
// Using custom RPC endpoint (e.g., QuickNode, Alchemy, Helius)
const customConnection = new Connection(
'https://your-custom-rpc-endpoint.com',
{
commitment: 'confirmed',
wsEndpoint: 'wss://your-custom-websocket-endpoint.com',
httpHeaders: {
'Authorization': 'Bearer YOUR_API_KEY',
},
disableRetryOnRateLimit: false,
confirmTransactionInitialTimeout: 30000,
}
);
// Create signers with different connections
const mainnetSigner = new ParaSolanaWeb3Signer(para, mainnetConnection);
const devnetSigner = new ParaSolanaWeb3Signer(para, devnetConnection);
const customSigner = new ParaSolanaWeb3Signer(para, customConnection);
// Example: Get network performance metrics
const checkPerformance = async () => {
const start = Date.now();
const slot = await customConnection.getSlot();
const latency = Date.now() - start;
console.log('Current slot:', slot);
console.log('RPC latency:', latency, 'ms');
const perfSamples = await customConnection.getRecentPerformanceSamples(5);
console.log('Recent performance:', perfSamples);
};
return { mainnetSigner, devnetSigner, customSigner, checkPerformance };
}
RPC configuration works the same as @solana/kit — pass different RPC URLs when creating the rpc client:
import { useParaSolanaSigner } from "@getpara/react-sdk";
import { createSolanaRpc } from "@solana/kit";
const mainnetRpc = createSolanaRpc("https://api.mainnet-beta.solana.com");
const devnetRpc = createSolanaRpc("https://api.devnet.solana.com");
const customRpc = createSolanaRpc("https://your-custom-rpc-endpoint.com");
function ConfigureRPC() {
// Pass the desired RPC to the hook
const { solanaSigner, isLoading } = useParaSolanaSigner({ rpc: mainnetRpc });
if (isLoading) return <p>Loading...</p>;
return <p>Connected to: {solanaSigner?.address}</p>;
}