Logo
New RPC users get 35% off their first monthView the offer
RPC Assistant

Sonic RPC Node: How to Connect to Sonic Mainnet

Summary

Sonic is an EVM-compatible Layer 1 blockchain designed for high-throughput DeFi applications. To interact with Sonic, developers need a reliable RPC node that can handle JSON-RPC requests, WebSocket subscriptions, and archive data queries.

This page explains how to configure your wallet or dApp to use Sonic RPC endpoints, what to look for in an RPC provider, and how to troubleshoot common connection issues. Whether you're building on Sonic or just need a dependable endpoint, we cover the essentials.

Quick Start: Sonic RPC Endpoint

If you just need a Sonic RPC endpoint to start building, here's the public endpoint provided by OnFinality:

https://sonic.api.onfinality.io/public

You can use this endpoint to send JSON-RPC requests, but for production applications you'll want a more reliable and scalable solution. OnFinality offers dedicated Sonic nodes and managed RPC services with higher rate limits, archive data, and WebSocket support.

Chain Settings at a Glance

Before connecting to Sonic, you need the correct network parameters. Here's a summary:

ParameterValue
Network NameSonic Mainnet
Chain ID146
Native CurrencyS (Sonic)
Block Explorerhttps://sonicscan.org
Public RPC URLhttps://sonic.api.onfinality.io/public

These settings are essential for configuring wallets, dApps, and development tools.

How to Add Sonic to Your Wallet

To interact with Sonic-based dApps, you'll need to add the network to your wallet (e.g., MetaMask). Here's a step-by-step guide:

  1. Open your wallet and navigate to the network settings.
  2. Click "Add Network" or "Custom RPC".
  3. Enter the following details:
    • Network Name: Sonic Mainnet
    • New RPC URL: https://sonic.api.onfinality.io/public
    • Chain ID: 146
    • Currency Symbol: S
    • Block Explorer URL: https://sonicscan.org
  4. Save the network and switch to it.

Once added, you can view your Sonic balance and interact with Sonic dApps.

Making Your First JSON-RPC Call

To verify your connection, you can make a simple JSON-RPC call using curl. For example, to get the current block number:

curl https://sonic.api.onfinality.io/public \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'

You should receive a response like:

{"jsonrpc":"2.0","result":"0x...","id":1}

The result is the hexadecimal block number. This confirms your RPC endpoint is working.

Using Sonic RPC with ethers.js or viem

For JavaScript developers, you can integrate Sonic RPC using popular libraries like ethers.js or viem. Here's an example using ethers.js:

import { ethers } from "ethers";

const provider = new ethers.JsonRpcProvider("https://sonic.api.onfinality.io/public");

async function getBlockNumber() {
  const blockNumber = await provider.getBlockNumber();
  console.log("Current block number:", blockNumber);
}

getBlockNumber();

With viem:

import { createPublicClient, http } from "viem";

const client = createPublicClient({
  chain: {
    id: 146,
    name: "Sonic Mainnet",
    network: "sonic",
    nativeCurrency: { name: "Sonic", symbol: "S", decimals: 18 },
    rpcUrls: { default: { http: ["https://sonic.api.onfinality.io/public"] } },
  },
  transport: http(),
});

const blockNumber = await client.getBlockNumber();
console.log("Current block number:", blockNumber);

WebSocket Subscriptions for Real-Time Data

If your dApp needs real-time updates (e.g., new blocks, pending transactions), you'll need a WebSocket endpoint. OnFinality provides WebSocket support for Sonic RPC nodes. The WebSocket URL typically follows the pattern:

wss://sonic.api.onfinality.io/public/ws

Note: The exact WebSocket URL may vary. Check the Sonic network page for the latest supported transports.

Here's an example of subscribing to new block headers using ethers.js:

import { ethers } from "ethers";

const provider = new ethers.WebSocketProvider("wss://sonic.api.onfinality.io/public/ws");

provider.on("block", (blockNumber) => {
  console.log("New block:", blockNumber);
});

Choosing the Right Sonic RPC Provider

When selecting an RPC provider for Sonic, consider the following factors:

FactorWhat to CheckWhy It Matters
Rate LimitsRequests per second, daily quotaPublic endpoints often have strict limits that can throttle your dApp
Archive DataSupport for eth_getLogs and historical stateNeeded for analytics, indexing, and debugging
WebSocket SupportAvailability of wss endpointsEssential for real-time features
Dedicated NodesOption for a private, isolated nodeProvides consistent performance and no noisy neighbors
Uptime & ReliabilityHistorical uptime, redundancyDowntime can break your application

OnFinality offers both shared public RPC and dedicated Sonic nodes. Dedicated nodes give you full control over your infrastructure, with clear rate limits and access to archive data.

Public vs. Dedicated Sonic RPC Nodes

For development and testing, a public RPC endpoint is often sufficient. However, for production workloads, you should consider a dedicated node. Here's a comparison:

AspectPublic RPCDedicated Node
CostFree or low costSubscription-based
Rate LimitsYes, often strictNo (or very high)
PerformanceShared, variableConsistent, isolated
Archive DataUsually not availableAvailable on request
WebSocketMay be limitedFull support
ControlNoneFull access to node config

If your dApp handles a high volume of requests or requires historical data, a dedicated node is the better choice.

Troubleshooting Common Sonic RPC Issues

Even with a reliable provider, you may encounter issues. Here are common problems and how to fix them:

1. Connection Timeouts

If you're experiencing timeouts, check:

  • Your network connection
  • The RPC endpoint URL (ensure it's correct)
  • Whether you're using the right transport (HTTP vs WebSocket)

2. Rate Limit Errors

Public endpoints often return 429 Too Many Requests. To avoid this:

  • Implement caching on your client
  • Use a dedicated node for high-traffic applications
  • Consider using multiple endpoints with failover

3. Incorrect Chain ID

Ensure your wallet or dApp is configured with the correct chain ID (146). Using the wrong chain ID can cause transactions to fail.

4. Missing Archive Data

If you need historical data, ensure your provider supports archive requests. Public endpoints often only serve recent state.

Monitoring Your Sonic RPC Node

Once your RPC connection is live, you should monitor its health. You can set up a simple health check using a script:

#!/bin/bash

# Check if the RPC endpoint is responding
response=$(curl -s -o /dev/null -w "%{http_code}" -X POST \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' \
  https://sonic.api.onfinality.io/public)

if [ "$response" -eq 200 ]; then
  echo "RPC is healthy"
else
  echo "RPC is down"
fi

You can run this script periodically to ensure your endpoint is operational.

Key Takeaways

  • Sonic is an EVM-compatible Layer 1 blockchain with chain ID 146.
  • The public RPC endpoint is https://sonic.api.onfinality.io/public.
  • For production, consider a dedicated Sonic node to avoid rate limits and get archive data.
  • Always verify your chain settings and use the correct transport (HTTP/WebSocket).
  • Monitor your RPC endpoint to ensure high availability.

Frequently Asked Questions

Q: What is the Sonic RPC URL? A: The public RPC URL is https://sonic.api.onfinality.io/public. For production, you may want a dedicated endpoint.

Q: What is the Sonic chain ID? A: The chain ID is 146.

Q: Does OnFinality support Sonic WebSocket? A: Yes, OnFinality provides WebSocket support for Sonic RPC nodes. Check the Sonic network page for details.

Q: Can I get archive data for Sonic? A: Yes, dedicated Sonic nodes on OnFinality can be configured with archive data. Contact us for more information.

Q: How do I choose between public and dedicated RPC? A: Public RPC is fine for development, but for production apps with high traffic, dedicated nodes offer better performance and reliability.

For more information about RPC providers and network support, visit our RPC pricing page and supported networks list.

RPC Knowledge Base

Related RPC details

Never Worry about Infrastructure Again

OnFinality takes away the heavy lifting of DevOps so you can build smarter and faster.

Get Started