The Fuel indexer project can currently be used in a number of different ways:
We'll describe these three different implementations below.
The Fuel indexer provides functionality to make it easy to build and compile abitrary indexers by using forc index
. For info on how to use indexer tooling to compile arbitrary indexers, check out our Quickstart and Hello World examples for a more in-depth exploration of how to compile indexers.
You can also start the Fuel indexer as a standalone binary that connects to a Fuel node to monitor the Fuel blockchain for new blocks and transactions. To do so, run the requisite database migrations, adjust the configuration to connect to a Fuel node, and start the service.
Finally, you can run the Fuel indexer as part of a project that uses other components of the Fuel ecosystem, such as Sway. The convention for a Fuel project layout including an indexer is as follows:
.
├── contracts
│ └── hello-contract
│ ├── Forc.toml
│ └── src
│ └── main.sw
├── frontend
│ └── index.html
└── indexer
└── hello-indexer
├── Cargo.toml
├── hello_indexer.manifest.yaml
├── schema
│ └── hello_indexer.schema.graphql
└── src
└── lib.rs
Every Fuel indexer project requires three components: