SkillAgentSearch skills...

Rindexer

A no-code or framework to build blazing fast EVM indexers - built in rust.

Install / Use

/learn @joshstevens19/Rindexer
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

🦀 rindexer 🦀

Note rindexer is brand new and actively under development, things will change and bugs will exist - if you find any bugs or have any feature requests please open an issue on github.

rindexer is an opensource powerful, high-speed indexing toolset developed in Rust, designed for compatibility with any EVM chain. This tool allows you to index chain events using a simple YAML file, requiring no additional coding. For more advanced needs, the rindexer provides foundations and advanced capabilities to build whatever you want. It's highly extendable, enabling you to construct indexing pipelines with ease and focus exclusively on the logic. rindexer out the box also gives you a GraphQL API to query the data you have indexed instantly.

You can get to the full rindexer documentation.

Install

curl -L https://rindexer.xyz/install.sh | bash

If you’re on Windows, you will need to install and use Git BASH or WSL, as your terminal, since rindexer installation does not support Powershell or Cmd.

Use rindexer

Once installed you can run rindexer --help in your terminal to see all the commands available to you.

rindexer --help
Blazing fast EVM indexing tool built in rust

Usage: rindexer [COMMAND]

Commands:
  new           Creates a new rindexer no-code project or rust project
  start         Start various services like indexers, GraphQL APIs or both together
  add           Add elements such as contracts to the rindexer.yaml file
  codegen       Generates rust code based on rindexer.yaml or graphql queries
  delete        Delete data from the postgres database or csv files
  phantom       Use phantom events to add your own events to contracts
  help          Print this message or the help of the given subcommand(s)

Options:
  -h, --help     Print help
  -V, --version  Print version

We have full documentation https://rindexer.xyz/docs/introduction/installation which goes into more detail on how to use rindexer and all the commands available to you.

Docker

There's a pre-built docker image which can be used to run rindexer inside your dockerized infra:

Create new project

To create a new no-code project in your current directory, you can run the following:

docker run -it -v $PWD:/app/project_path ghcr.io/joshstevens19/rindexer new -p /app/project_path no-code

Use with existing project

To use it with an existing project and a running postgres instance you can simply invoke:

export PROJECT_PATH=/path/to/your/project
export DATABASE_URL="postgresql://user:pass@postgres/db"

docker-compose up -d

This will start all local indexing and if you have enabled the graphql endpoint, it will become exposed under:

http://localhost:3001

Helm Chart

We also provide a Helm chart for deploying rindexer in Kubernetes environments. The Helm chart simplifies the deployment process and allows for easy customization of the deployment parameters.

You can find the Helm chart in the following directory:

To use the Helm chart, follow the instructions in the Helm Chart README to deploy rindexer to your Kubernetes cluster.

What can I use rindexer for?

  • Hackathons: spin up a quick indexer to index events for your dApp with an API without any code needed
  • Data reporting
  • Building advanced indexers
  • Building a custom indexer for your project
  • Fast prototyping and MVP developments
  • Quick proof-of-concept projects
  • Enterprise standard indexing solutions for projects
  • Much more...

Crate.io

rindexer rust project building is available on crate.io but we strongly recommend using the git repository to install it and use it in your project. To use the CLI please install it using the above instructions.

https://crates.io/crates/rindexer

What networks do you support?

rindexer supports any EVM chain out of the box. If you have a custom chain, you can easily add support for it by adding the chain's RPC URL to the YAML configuration file and defining the chain ID. No code changes are required.

Code structure

core

This is the core of rindexer, it contains all the logic for indexing and where most the code lives.

cli

This is the cli for rindexer, it contains all the logic for the cli and is how users interact with rindexer.

graphql

This is the express project which leverages postgraphile rindexer GraphQL, it is automatically built into a binary during the Rust build process using pkg.

Build Process:

  • Automatically builds during cargo build
  • Detects target architecture (macOS, Linux, Windows)
  • Smart rebuilding - only rebuilds when source files change
  • Requires Node.js and npm for development/building

Development:

cd graphql
npm install
npm start

The binary is embedded into the Rust application and started automatically when GraphQL functionality is enabled.

documentation

This is the documentation for rindexer, it is built using voc which is an incredible tool to build documentation. Big shout out to wevm team for all the work they have done on vocs, viem and wagmi.

examples

Example projects showing different ways to use rindexer. There are three types: no-code (YAML-only, no Rust project), table (data transformations before storage), and rust (full Rust projects with custom handlers).

No-code examples

Rust examples

  • rindexer_rust_playground — Multi-contract, multi-network, dual storage (PostgreSQL + CSV), event filtering, and global contracts.
  • rindexer_factory_indexing — Factory pattern indexing: dynamically discovers and indexes contracts created by Uniswap V3 factory events.
  • clickhouse_factory_indexing — Same factory pattern as above, but using ClickHouse as the storage backend.
  • rust_clickhouse — Minimal "hello world" for rindexer with ClickHouse: single contract, single network.

Table examples

Summary table

| Example | Type | Key differentiator | Storage | Complexity | |---|---|---|---|---| | rindexer_demo_cli | No-code | Basic PostgreSQL indexing | PostgreSQL | Low | | nocode_clickhouse | No-code | Basic ClickHouse indexing | ClickHouse | Low | | rindexer_demo_custom_indexing | No-code | Custom indexing patterns | PostgreSQL | Low | | rindexer_native_transfers | No-code | Native ETH transfer indexing | Streams | Medium | | streams_playground | No-code | Stream integrations (Kafka, RabbitMQ, etc.) | Streams | Medium | | rust_clickhouse | Rust | Minimal starter example | ClickHouse | Low | | rindexer_factory_indexing | Rust | Factory pattern (dynamic contract discovery) | PG + CSV | Medium | | clickhouse_factory_indexing | Rust | Factory pattern on ClickHouse | ClickHouse | Medium | | rindexer_rust_playground | Rust | Multi-contract, multi-network, dual storage | PG + CSV | High | | tables_erc20_balances | Table | Balance tracking with add/subtract | PostgreSQL | Medium | | tables_erc20_allowances | Table | Approval allowances tracking | PostgreSQL | Medium | | tables_erc721_ownership | Table | NFT ownership tracking | PostgreSQL | Medium | | tables_erc1155_balances | Table | Multi-token balance tracking | PostgreSQL | Medium | | tables_dex_pool | T

View on GitHub
GitHub Stars679
CategoryDevelopment
Updated2d ago
Forks93

Languages

Rust

Security Score

95/100

Audited on Apr 1, 2026

No findings