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.

Setup Solana Libraries First

import { ParaSolanaWeb3Signer } from '@getpara/solana-web3.js-v1-integration@alpha';
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 };
}

Next Steps