Custom Somnia Mainnet APIs and analytics
Turn your Somnia Mainnet contracts into real-time APIs with HyperIndex, and query historical and live chain data through HyperSync and HyperRPC.
Aerodrome
Yield Basis
Curve
WLFI
Caldera
OstiumIndex and query Somnia Mainnet
HyperIndex
Index Somnia Mainnet contract events into a GraphQL API, with backfill and live events in one pipeline.
- Create an indexer
Run pnpx envio init to scaffold a HyperIndex project. Give it your Envio API token and it saves it to .env, so local runs can read Somnia Mainnet from HyperSync. Indexers deployed to Envio Cloud don't need one.
$ pnpx envio init - Add Somnia Mainnet to config.yaml
List Somnia Mainnet under chains with your contract and events. HyperSync is the data source by default, so no RPC URL is needed.
config.yamlname: my-indexer contracts: - name: MyContract events: - event: "Transfer(address indexed from, address indexed to, uint256 value)" chains: - id: 5031 # Somnia Mainnet start_block: 0 contracts: - name: MyContract address: "0x0000000000000000000000000000000000000000" - Run it
Start it with pnpm dev, which needs Docker. It opens the local Hasura dashboard with your indexed data.
$ pnpm dev
HyperSync
Read raw Somnia Mainnet logs, transactions and blocks in bulk, selecting only the fields you need.
Every request requires an API token. Get an API token
https://somnia.hypersync.xyzimport { HypersyncClient } from "@envio-dev/hypersync-client";
const client = new HypersyncClient({
url: "https://somnia.hypersync.xyz",
apiToken: process.env.ENVIO_API_TOKEN!,
});
// ERC-20 and ERC-721 Transfer events from the last 10 blocks.
const height = await client.getHeight();
const res = await client.get({
fromBlock: height - 10,
logs: [{ topics: [["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"]] }],
fieldSelection: { log: ["BlockNumber", "Address", "Topic1", "Topic2"] },
});
console.log(res.data.logs.length, "Transfer events in the last 10 blocks");HyperRPC
A read-only endpoint for existing RPC code, with the MIP-16 query methods. Add your token to the end of the URL. It cannot send transactions.
Every request requires an API token. Get an API token
https://somnia.rpc.hypersync.xyzcurl https://somnia.rpc.hypersync.xyz/$ENVIO_API_TOKEN \
-X POST -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}'An EVM-compatible layer 1 blockchain designed for real-time consumer applications such as games, social apps and metaverses.
Prompt for your AI agent
Build a HyperIndex indexer on Somnia Mainnet (chain ID 5031) that indexes [CONTRACT ADDRESS]'s [EVENTS] into a GraphQL API. Before writing code, read https://envio.dev/chains/somnia.md and https://envio.dev/llms.txt. If you can add MCP servers, add Envio's docs server at https://docs.envio.dev/mcp. 1. Run pnpx envio init and choose Contract Import with the address above. 2. Put my API token in ENVIO_API_TOKEN in .env (I'll create it at https://envio.dev/app/api-tokens). 3. Shape the entities in schema.graphql and the event handlers, then run pnpm codegen. 4. Start it with pnpm dev (needs Docker) and confirm the entities appear in the local Hasura GraphQL API. 5. Add tests for the handlers and run pnpm test.
Somnia Mainnet indexing FAQ
Endpoints, chain IDs, data sources and getting started with Somnia Mainnet on Envio.
Does Envio support Somnia Mainnet?
Yes. Somnia Mainnet has first-class support across HyperIndex, HyperSync, and HyperRPC. We run dedicated HyperSync and HyperRPC endpoints for Somnia Mainnet so you can stream historical and real-time data straight into a production GraphQL API.
HyperSync supported chains →Is there a testnet for Somnia Mainnet?
Yes. Envio also supports Somnia Testnet, so you can build and test there before indexing Somnia Mainnet.
HyperSync supported chains →Other supported chains
Start indexing Somnia Mainnet
Build on the free development plan, then deploy a production indexer on Envio Cloud.