Agent-native · IDL-driven · Zero config

Agent-native Solana Indexing
for your application

Feed it an IDL, get a typed API in minutes. Postgres tables, REST endpoints, and WebSocket subscriptions — auto-generated from your program's events.

terminal
Capabilities

Everything you need to index Solana

From IDL to production API in minutes, not weeks.

IDL → Typed Schema

Upload your Anchor IDL, get PostgreSQL tables with correct types for every event field. No manual migrations.

Instant REST APIs

Auto-generated endpoints with filtering, pagination, and sorting. Query events by any field out of the box.

Real-Time Streams

WebSocket subscriptions push events the moment they land on-chain. Sub-second for dashboards and bots.

Multi-Tenant Isolation

Each project gets its own schema and endpoints. One account, unlimited indexers, zero interference.

Workflow

Three steps. That's it.

01

Upload Your IDL

Paste or upload your Anchor IDL file. Uho parses every event type and field automatically.

02

Auto-Index Events

Tables are created, indexing starts immediately. Historical backfill runs in parallel.

03

Query & Subscribe

Hit your REST endpoints or open a WebSocket. Filter, paginate, aggregate — production-ready.

Agent-Native

Built for the agentic era

Uho isn't just developer-friendly — it's agent-friendly. Structured responses, introspectable schemas, and webhook-driven workflows make it the ideal data layer for autonomous Solana agents.

Structured Output

Every endpoint returns typed JSON that agents can parse without extraction. No HTML scraping, no guessing.

Webhook Triggers

Push events to your agent's endpoint in real-time. Build reactive workflows without polling.

Schema Introspection

Agents can discover available events, fields, and types via the /schema endpoint. Self-documenting APIs.

agent.ts
// Your agent queries Uho directly
const events = await fetch(
  "https://api.uhoindexing.com/v1/my_program" +
  "/events/SwapExecuted" +
  "?where=amount.gte:1000" +
  "&order=slot.desc&limit=10"
);

// Typed, structured, zero parsing
const { data } = await events.json();
// → [{ user, amount, slot, tx, ... }]

// Or subscribe to real-time events
const ws = new WebSocket(
  "wss://api.uhoindexing.com/v1/my_program/ws"
);
ws.send(JSON.stringify({
  subscribe: "SwapExecuted",
  filter: { amount: { gte: 1000 } }
}));

Start indexing in minutes

No infrastructure to manage. No subgraph manifests. No YAML configs. Just your IDL and two commands.

Open source · Free tier available · No credit card required