> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stablenet.network/llms.txt
> Use this file to discover all available pages before exploring further.

# Read On-chain Data

> Query blocks, transactions, logs, and contract state from StableNet using standard JSON-RPC.

> StableNet exposes a standard JSON-RPC API compatible with Ethereum tooling. Query historical logs, subscribe to real-time events, and read contract state using ethers.js, viem, or direct RPC calls.

For sending transactions, see [Stablecoin Transfers](/en/v0.3/build/use-cases/stablecoin-transfers). For the full RPC method reference, see [RPC API Reference](/en/v0.3/reference/rpc-api).

## Quickstarts

<CardGroup cols={2}>
  <Card title="Listen to Contract Events" icon="bell" href="/en/v0.3/build/tutorials/listen-to-events">
    **Beginner**. Subscribe to contract events using ethers.js and WebSocket.
  </Card>

  <Card title="Connect to StableNet" icon="plug" href="/en/v0.3/build/quickstart/connect-to-stablenet">
    **Beginner**. Set up your RPC provider.
  </Card>
</CardGroup>

## Why StableNet for reading on-chain data

<AccordionGroup>
  <Accordion title="Standard Ethereum JSON-RPC">
    StableNet implements the standard `eth_` namespace — `eth_getLogs`, `eth_getBlock`, `eth_call`, `eth_getTransactionReceipt`, and more. Any library or tool that speaks Ethereum JSON-RPC works without modification. See [RPC API Reference](/en/v0.3/reference/rpc-api) for the full method list.
  </Accordion>

  <Accordion title="WebSocket subscriptions">
    Real-time event subscriptions via `eth_subscribe` are supported over WebSocket. Subscribe to `newHeads`, `logs`, or `newPendingTransactions`. Bloom filter optimization reduces the overhead of high-volume log queries across large block ranges.
  </Accordion>

  <Accordion title="1-second blocks for fast indexing">
    With \~1-second block times, your indexer or event listener receives new data nearly in real time. Deterministic finality means you don't need to handle reorgs — every confirmed block is final.
  </Accordion>

  <Accordion title="Polling fallback for HTTP clients">
    For environments without WebSocket support, polling-based filters (`eth_newFilter`, `eth_getFilterChanges`) are available. Filters expire after 5 minutes of inactivity and are cleaned up automatically.
  </Accordion>
</AccordionGroup>
