Indexing for EVM-based blockchains

Local First

The index may be created and cached on your local machine

Multi Chain

Supports any EVM-based chain


Bloom filters massively reduce the size of data on disk

TrueBlocks is for crypto citizens ❤️

We've got you covered. See everything you or anyone else has ever done on-chain, with a single command or API call: transaction history, wallets' past balances, contracts that have been called and contract states. Go back in time as far as you like.

No need to write custom code or combine results from multiple API endpoints. You can even stop thinking in blocks, because our tools accept dates. All this while running locally on your computer or DAppNode (coming soon), which means total privacy and speed. Sounds insane? However, we find more on-chain information than API providers. And you can even use our software while offline.

Our index, Unchained Index, is the backbone of TrueBlocks. It is a decentralized public good and you can share it with others. You also benefit from others sharing the chunks you need.

Thoughtfully crafted


Blockchain data is all hashes, no matter if it is a log topic, method call, returned value, token balance or NFT name. Luckily, most chifra commands accept articulate option. When turned on, it will make chifra look for the smart contract ABI and turn those confusing strings of hex into human readable values.

Raw chain data
Articulation on
    "name": "FundsClaimed",
    "inputs": {
        "amount": "4531797996325397000000",
        "claimee": "0xf503017d7baf7fbc0fff7492b751025c6a78179b",
        "index": "897"

Block expressions

Blockchain data is organized in blocks. But sometimes we forget the block number or need information from a couple of blocks. This is why we introduced block expressions, which allow to use a date or range of blocks with an interval rather than block number.

Every 10th block between the first and the 100,000th.
Every block that has happened on April 8, 2023.

ENS support out of the box

When a command requires an address, you can use ENS domain instead.

Names database

Blockchain addresses are not the easiest to remember. ENS domains make it better, but not every address has a domain associated with it. This is why we maintain a database of about 13700 well-known names (for Ethereum mainnet), organized by tags. Users can also add custom names that will not be shared with others.

Solidity-like syntax for calling smart contracts

Use familiar Solidity syntax to call smart contract methods.

chifra state --call 'totalSupply()'
chifra state --call 'balanceOf(0xf503017d7baf7fbc0fff7492b751025c6a78179b)'
chifra state --call 'tokenURI(10)'

Locally running API server and SDKs

It is easy to build your own tools around chifra by using Typescript or Python SDKs or sending requests to API server that is running locally on your machine.

Different output formats

chifra can output data as a text, JSON or CSV making it easy to integrate with your current workflow.

What users say

This is probably one of the libraries i've tinkered with in web3 that has made me most excited in a while.

This has been an invaluable tool for me now. Absolutely love it

I found TrueBlocks today and have to say an amazing project

In terms of list speed it's a turtle against a rocket. Gathering 10K transactions, specifically distributed across a lot of blocks, takes ages in some other tools

  • No paid plans
  • No rate limits
  • Open source public good

Supported through grants from

  • Optimism
  • Ethereum Foundation
  • Moloch DAO
  • Giveth
  • Gitcoin
  • Consensys
  • IPFS
  • CLRFund