All posts
22 July 2026·5 min read·NodeFlare Team

Dedicated Sonic RPC Node — Full Method Access on Our Own Bare-Metal

Run Sonic on a dedicated NodeFlare RPC node: bare-metal, not a shared pool, full debug_/trace_ access, no noisy-neighbour rate spikes. Free keyed endpoint or a private node with an SLA.

Sonic's aBFT consensus gives you ~1-second finality — every accepted block is irreversible, no reorgs, latest is as trustworthy as finalized. That speed becomes a problem if your RPC endpoint can't keep up, or if a burst from another tenant bumps your requests into a rate-limit queue.

A dedicated node is the fix: your own endpoint, your own burst headroom, no shared pool.

What "dedicated" actually means at NodeFlare

NodeFlare isn't an aggregator routing calls through a pool of anonymous third-party backends. Every chain we serve runs on hardware we operate ourselves — bare-metal servers we rack, configure, and monitor. When you talk to a NodeFlare dedicated Sonic endpoint, you are talking to a specific sonicd instance that no other tenant shares.

That changes a few things:

  • No noisy-neighbour spikes. A traffic surge from another customer's job doesn't eat your quota or delay your calls.
  • Predictable latency. Same node, same routing path, every request.
  • Full method access. debug_traceTransaction, debug_traceBlockByNumber, trace_* — the methods that most shared endpoints restrict — are open on dedicated nodes.
  • Custom limits on request. Need higher burst ceilings or longer eth_getLogs ranges? That's negotiable on a dedicated node, not possible on a shared tier.

Sonic facts worth knowing for RPC design

Sonic produces blocks about every second. With that cadence, block ranges accumulate roughly 12× faster than Ethereum — an eth_getLogs window of 10,000 blocks on Sonic covers ~3 hours, not ~33 hours. Keep your windows tight and include address + topic filters to stay inside sensible compute-unit budgets.

A few chain-specific notes:

DetailValue
Chain ID146 (0x92)
Native currencyS
Block time~1 s
Finality~1 s (aBFT, irreversible)
WebSocketNot yet on free tier
Debug / traceSupported (debug_*, geth-style)
Explorersonicscan.org

Sonic launched end-2024 as the successor to Fantom Opera — it's a separate chain, not a fork. Fantom Opera (chain ID 250) still exists independently.

Quick-start with the free keyed endpoint

A free API key gives you a dedicated path (no shared pool) on the standard free tier — 3,000,000 compute units/month, no credit card. It's the fastest way to validate Sonic integration:

Terminal
# Check latest block — replace YOUR_KEY
curl -s https://rpc.nodeflare.app/sonic \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
TypeScript
// ethers v6 / TypeScript
import { JsonRpcProvider } from "ethers";

const provider = new JsonRpcProvider(
  "https://rpc.nodeflare.app/sonic",
  undefined,
  { staticNetwork: true }   // skip chainId probe — you already know it's 146
);

const block = await provider.getBlockNumber();

Public (no-key) endpoint for testing: https://rpc.nodeflare.app/sonic/public

Debug tracing on Sonic

Sonic's sonicd client supports geth-style debug tracing. Because every block is final on acceptance, a trace never changes after you fetch it — no need to wait for confirmations before tracing a transaction:

Terminal
curl -s https://rpc.nodeflare.app/sonic \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "debug_traceTransaction",
    "params": ["0xYOUR_TX_HASH", {"tracer": "callTracer"}],
    "id": 1
  }'

This costs more compute units than a simple read (expect 300–500 CU per trace call). On a shared tier that eats into your monthly budget fast. On a dedicated node, the headroom is part of what you're paying for.

When to upgrade to a private dedicated node

The free keyed tier covers most dev-to-staging workloads. Move to a private dedicated node when:

  • You need guaranteed uptime SLA for production.
  • Your eth_getLogs jobs run large ranges that a shared tier's per-call limits would block.
  • You want a private endpoint URL so your key is not in network traces.
  • You're running a trading bot or indexer and need burst headroom that the shared pool can't offer.

NodeFlare offers dedicated Sonic nodes with custom rate limits and an SLA — email [email protected] or see the dedicated nodes page for the full picture across all 23 chains.

Try it