An Elixir based Cardano Indexer.
- Index outputs by address.
- Persist to local database (SQLite)
- HTTP endpoint for querying assets by address
- Metrics printed to standard out
- Tested with Preview + Mainnet
- Run with Docker
- Ability to stop/resume syncing.
- In-memory indexer (look into ETS)
- Metrics LiveView Dashboard
- Metrics exported to Prometheus
- Clustered indexer with (BEAM) process distribution
- Adjust persistence to fit with a clustered environment (look into Mnesia)
- Index more data (TBD)
- Add more endpoints (TBD)
Set a OGMIOS_URL environment variable to the URL of the OGMIOS instance you want to connect to.
export OGMIOS_URL=http://localhost:1337Run the application with iex -S mix. This should immediately start the syncing process. Defaults to syncing from the origin so it will take a while to catch up.
To sync from a specific point in the chain, set the sync_from option on lib/fester/chain_sync.ex.
Listing assets for a particular address:
Fester.Indexer.list_assets_by_address("addr_test1...")or a straight-up list of UTXOs:
Fester.Indexer.list_utxos_by_address("addr_test1...")Build the Docker image with:
docker build -t fester .Populate the proper environment variables in docker_run.sh and run it with:
./docker_run.shA GET request to the /api/address/$ADDR/assets endpoint returns the assets for an address.
