runicRPC Logo
runicRPCv0.1
Documentation

Providers

runicRPC supports multiple Solana RPC providers with easy configuration.

Quick Setup

The fastest way to configure providers is with environment variables:

# .env
HELIUS_API_KEY=your-helius-key
ALCHEMY_API_KEY=your-alchemy-key
import { RunicRPC } from '@runic-rpc/sdk';

// Auto-loads from .env
const rpc = RunicRPC.create();

Or use a config file (runic.config.json):

{
  "providers": {
    "helius": { "apiKey": "your-helius-key" },
    "alchemy": { "apiKey": "your-alchemy-key" }
  },
  "strategy": "latency-based"
}

Supported Providers

Helius

Helius provides high-performance Solana RPC infrastructure.

import { RunicRPC, createHeliusEndpoint } from '@runic-rpc/sdk';

const rpc = RunicRPC.create({
  providers: {
    helius: { apiKey: 'your-api-key' }
  }
});

// Or create endpoint directly
const endpoint = createHeliusEndpoint('your-api-key');

URLs:

  • HTTP: https://mainnet.helius-rpc.com/?api-key=KEY
  • WS: wss://mainnet.helius-rpc.com/?api-key=KEY

Alchemy

Alchemy offers enterprise-grade blockchain infrastructure.

const rpc = RunicRPC.create({
  providers: {
    alchemy: { apiKey: 'your-api-key' }
  }
});

URLs:

  • HTTP: https://solana-mainnet.g.alchemy.com/v2/KEY
  • WS: wss://solana-mainnet.g.alchemy.com/v2/KEY

QuickNode

QuickNode provides fast and reliable RPC endpoints.

const rpc = RunicRPC.create({
  providers: {
    quicknode: {
      rpcUrl: 'https://your-endpoint.quiknode.pro/token/',
      wsUrl: 'wss://your-endpoint.quiknode.pro/token/'
    }
  }
});

Or use environment variable:

QUICKNODE_RPC_URL=https://your-endpoint.quiknode.pro/token/

Public Solana

Free public endpoints with rate limits. Use for development only.

import { RunicRPC, createPublicEndpoint } from '@runic-rpc/sdk';

const rpc = RunicRPC.create({
  endpoints: [createPublicEndpoint()]
});

⚠️ Warning: Public endpoints have aggressive rate limits and may be unreliable.

Multiple Providers

Configure multiple providers for automatic failover:

const rpc = RunicRPC.create({
  providers: {
    helius: { apiKey: 'helius-key' },
    alchemy: { apiKey: 'alchemy-key' },
    quicknode: {
      rpcUrl: 'https://your-endpoint.quiknode.pro/token/',
      wsUrl: 'wss://your-endpoint.quiknode.pro/token/'
    }
  },
  strategy: 'latency-based', // Automatically route to fastest provider
});

Or use a config file (runic.config.json):

{
  "providers": {
    "helius": { "apiKey": "helius-key" },
    "alchemy": { "apiKey": "alchemy-key" },
    "quicknode": {
      "rpcUrl": "https://your-endpoint.quiknode.pro/token/",
      "wsUrl": "wss://your-endpoint.quiknode.pro/token/"
    }
  },
  "strategy": "latency-based"
}
// Auto-loads from runic.config.json
const rpc = RunicRPC.create();

Custom Endpoints

Add custom RPC endpoints:

const rpc = RunicRPC.create({
  endpoints: [
    {
      name: 'custom-rpc',
      rpcUrl: 'https://my-custom-rpc.com',
      wsUrl: 'wss://my-custom-rpc.com',
      weight: 2, // Higher weight = higher priority
      rateLimit: 100 // requests per second
    }
  ]
});

Environment Variables

Store API keys securely in environment variables:

# .env
HELIUS_API_KEY=your-helius-key
ALCHEMY_API_KEY=your-alchemy-key
QUICKNODE_RPC_URL=https://your-endpoint.quiknode.pro/token/

runicRPC auto-loads these when using create():

import { RunicRPC } from '@runic-rpc/sdk';

// Automatically loads from .env
const rpc = RunicRPC.create();

Supported prefixes: HELIUS_API_KEY, NEXT_PUBLIC_HELIUS_API_KEY, VITE_HELIUS_API_KEY

Next Steps