torii reference

Name

torii - An automatic indexer and networking layer for a world contract.

USAGE

torii [OPTIONS]

DESCRIPTION

torii starts the indexer and exposes GraphQL/gRPC API endpoints. The indexer queries the specified Starknet RPC endpoint for transaction blocks and listens for transactions related to the world contract. These transactions can include component/system registrations, entity state updates, system calls, and events. The parsed data is then stored in a local SQLite database.

The GraphQL and gRPC API endpoints run in tandem with the indexer, providing custom queries specific to the world contract for client applications.

Database URL

torii uses a sqlite database to store indexed data. The database can be stored either in-memory or persistently on the filesystem.

  • The in-memory database is ephermal and only lasts as long as the indexer is running. This is a fast and simple option to start the indexer for development/testing.
  • Presistent storage should be used in production. It relies on the local filesystem for storage.

Note: If using in-memory db, the memory will be garbage collected after a period of inactivity, causing queries to result in errors. A workaround is to start katana with the --block-time option or use a persistent database.

# Persistent database storage using file indexer.db
torii --database-url sqlite:indexer.db

OPTIONS

General Options

-w, --world      Address of the world contract to index

--rpc      Starknet RPC endpoing to use [default: http//localhost:5050]

-m, --manifest <MANIFEST>      Specify a local manifest to initialize from

-d, --database-url <DATABASE_URL>      Database URL (read more above) [default: sqlite::memory:]

-s, --start-block <START_BLOCK>      Specify a block to start indexing from, ignored if stored head exists [default: 0]

-h, --help      Print help

-V, --version      Print version