🔮
Flair
ExamplesCLIDiscordTelegram
  • 👋Flair: Fast EVM Indexer
  • 🙋FAQ
    • How to choose an indexer?
  • 💰Pricing
  • 👩‍💻Talk to an engineer
  • reference
    • ⚙️manifest.yml
    • 🧞‍♂️Custom Scripting
      • Event Processors
    • 🚄Backfilling
    • 🔋Database
      • JDBC (MySQL, Postgres)
      • MongoDB
      • DynamoDB
    • 😎CLI Commands
    • 🌟Best Practices
  • Advanced
    • 📶Aggregations
    • 🎆Integrations
Powered by GitBook

Flair: Fast EVM Indexer

Real-time and historical on-chain data indexing for any evm chain

Last updated 1 year ago

Was this helpful?

Flair offers reusable indexing primitives (such as fault-tolerant RPC ingestors, custom processors, re-org aware database integrations) to make it easy to receive, transform, store and access your on-chain data.

Why Flair?

Compared to other alternatives the main reasons why are:

  • 🚀 Adopting parallel and distributed processing paradigm means high scalability and resiliency for your indexing stack. Instead of constrained sequential processing (e.g Subgraph).

  • 🧩 Work out-of-box with any EVM chain, you plug-in an RPC and indexer starts.

  • 🚄 Native real-time stream processing for certain data workload (such as aggregations, rollups) for things like total volume per pool.

  • ☁️ Managed cloud services avoid DevOps and irrelevant engineering costs for dApp developers.

Features

  • ✅ Listen to any EVM chain with just an RPC URL.

    • Free managed RPC URLs for +8 popular chains already included.

    • Works with both websocket and https-only RPCs.

  • ✅ Track and ingest any contract for any event topic.

    • Auto-track new contracts deployed from factory contracts.

  • ✅ Custom processor scripts with Javascript runtime (with Typescript support)

    • Make external API or Webhook calls to third-party or your backend.

    • Get current or historical USD value of any ERC20 token amount of any contract address on any chain

    • Use any external NPM library.

  • ✅ Stream any stored data to your destination database (Postgres, MognoDB, Kafka, Elasticsearch, Timescale, etc)

Getting Started

git clone https://github.com/flair-sdk/starter-boilerplate.git
# ... follow instructions in README.md

Boilerplate instructions will create a new cluster, generate an API Key, and set up a manifest.yml to index your first contract with sample custom processor scripts.

  1. Explore your custom indexed data:

Replace "fuji-finance" with your own namespace selected in step 1 above.

query {
  sql(
    # Any arbitrary SQL query with JOIN or aggregations on your entities
    query:
    """
      SELECT
        COUNT(*) as totalCount,
        entityType
      FROM entities WHERE namespace = 'fuji-finance'
      GROUP BY entityType
      ORDER BY totalCount DESC LIMIT 100
    """
  ) {
    stats {
      elapsedMs
    }
    rows
  }
}

What next?

Tap into available features and primitives to make the best out of the indexing toolbox:

Learn about some advanced features if you want to expand your work:

╳ For generic pre-indexed blockchain data it will be more cost-effective to consider services that sell that data, instead of running an indexer. e.g. Try which has already indexed most of generic blockchain data and can sell them cheaper than cost of indexing.

Clone the template and follow the instructions:

Learn more about the .

Visit and run this query:

Stream the data to your .

👋
Dune
starter boilerplate
structure of manifest.yml
https://graph.flair.dev
own database
⚙️manifest.yml
🚄Backfilling
🧞‍♂️Custom Scripting
🔋Database
😎CLI Commands
🌟Best Practices
📶Aggregations
🎆Integrations
Comparing Flair parallelized EVM indexer vs sequential indexing
: RPC -> Fault-tolerant ingestors -> Your custom processors -> Any destination (Postgres, MongoDB, etc)
High-level Architecture