▾ Documentation

Access

Connect to the Indexer via direct ClickHouse, custom REST APIs, or Python ETL.

// updated 2026-06-04

Three ways to query the Indexer, picked by your workload.

NOTE

Auth model: every request needs both HTTP Basic (database user / password) and the x-token header. Missing or invalid x-token returns 403 Forbidden.

How to get credentials

WARNING

v1 access is request-based, not self-service. We provision manually after review.

  1. 1
    Submit a request

    Request access via Telegram: @supanode_tgs.

  2. 2
    Receive credentials

    After review, we issue your x-token plus database username and password.

  3. 3
    Connect

    Use those credentials with the connection details below.

Pick your access path

Direct ClickHouse

Full SQL, your own queries, scheduled jobs.

Custom REST API

Recurring queries deployed as stable endpoints.

Python ETL

Batch jobs, materialized aggregates, warehouse pushes.

Direct ClickHouse

Connection details

PropertyValue
Hostsoldata.supanode.xyz
Port29001
ProtocolHTTPS / TLS 1.2+

Authentication layers

Two layers required on every request:

  1. Database credentials - HTTP Basic Auth (user / password).
  2. API token - x-token header.

First connection (curl)

  1. 1
    Run the test query
    curl -H "x-token: YOUR_TOKEN" \
      'https://soldata.supanode.xyz:29001/?user=YOUR_USER&password=YOUR_PASSWORD' \
      -d "SELECT version(), now(), 'Connect Success' as status"
    
  2. 2
    Verify response

    If you get rows back, your connection and both auth layers are working.

Code samples

import { createClient } from '@clickhouse/client';

const client = createClient({
  url: 'https://soldata.supanode.xyz:29001',
  username: 'YOUR_USER',
  password: 'YOUR_PASSWORD',
  http_headers: { 'x-token': 'YOUR_TOKEN' },
  tls: { rejectUnauthorized: false },
});

const result = await client.query({
  query: `
    SELECT signature, slot, signing_wallet, fee_paid
    FROM pumpfun_all_swaps
    WHERE block_date_utc = today()
    ORDER BY slot DESC
    LIMIT 10
  `,
  format: 'JSONEachRow',
});

console.log(await result.json());

Custom REST API

For specific recurring queries you don't want to write each time, we deploy custom REST endpoints.

You define what data you need (which tables, what filters, what aggregations); we deploy a stable URL that returns it. Useful for dashboards, partner integrations, and AI-agent workflows.

TIP

When to pick this over direct ClickHouse: the same query runs over and over from many places, or non-engineers need access without learning SQL.

To request a custom REST API, contact us with:

  • The query (or a sketch of what you need).
  • Expected request volume.
  • Authentication preference (x-token, public, OAuth - we can do most).

Contact: @supanode_tgs.

Python ETL flows

For batch transformations and scheduled aggregations beyond simple queries, we build custom Python ETL on top of the database.

Examples:

  • Daily aggregates pushed to your warehouse.
  • Custom indicators computed and stored as new tables.
  • Cross-protocol joins materialized for low-latency reads.

Same contact path: @supanode_tgs.

See also

Database schema

All tables and columns.

Nanosecond timestamps

Precision arrival data.