Quasar offers a GraphQL API for ledgers, transactions, contracts, operations and events among others written in Rust.
Currently built to handle a subset of the Stellar dataset.
Because those who will build on top of Soroban need easy access to complex data and for them to succeed they need to focus on their core value proposition not build custom data pipes every time they need processed data or event notifications.
Quasar, aims to be a robust Soroban indexer built on top of the extended Stellar core node implementation. The tool is designed to provide high-quality Web3 infrastructure to wallets and other interfaces that connect raw data to user experiences, offering access to the Soroban ecosystem with greater efficiency and reliability. You can also think of it as an extension to the Horizon API, what Horizon is to core Stellar data, Quasar is to the Soroban ecosystem. Quasar can be build standalone or be an extension to the existing Horizon API.
docker run --rm -it -p "8000:8000" -p "8001:5432" --name stellar stellar/quickstart:latest --standalone --enable-soroban-rpc
docker run --name quasar -e POSTGRES_PASSWORD=quasar -e POSTGRES_DB=quasar_development -p 5432:5432 -v postgres-data:/var/lib/postgresql/data -d postgres
You will need a config file located in the path config/config.toml
.
Here is an example:
quasar_database_url = "postgres://postgres:postgres@localhost:5432/quasar_development"
stellar_node_database_url = "postgres://stellar:<password>@localhost:8001/core"
[ingestion]
polling_interval = 5
[api]
host = "127.0.0.1"
port = 8000
depth_limit = 16
complexity_limit = 64
[metrics]
database_polling_interval = 5
Install quasar
from the releases page. Here is an example in Linux:
curl -L https://github.com/eigerco/quasar/releases/download/<version>/quasar_indexer-x86_64-unknown-linux-gnu.tar.gz > quasar.tar.gz
tar -xf quasar.tar.gz
./quasar_indexer
GraphQL Playground will be available at http://localhost:8000/
. Prometheus metrics at http://localhost:8000/metrics
.
Clone the project
git clone https://github.com/eigerco/quasar
Go to the project directory
cd quasar
Run Tests
cargo test
Start the server
cargo run
Currently Quasar supports working with a limited subset of the Stellar dataset. We plan to support the full dataset, so that Quasar can run alongside a Full Validator, in the future. This will allow Quasar to be used as a data source for Stellar applications.
Subscriptions will allow clients to receive real-time updates from the indexer. For example a client can subscribe to a specific account and receive updates when the account's balance changes. This will be useful for building real-time applications.
The current version of Quasar supports only basic data types. Not all of their fields are ingested and processed. Some relationships between entities are also missing. We plan to add support for:
We plan to add more GraphQL queries that are specific to Stellar contracts.
We plan to add access control to the GraphQL API. This will allow owners of the server to restrict access to certain data.
Contributions are always welcome!
We are engineers. We contribute to various ecosystems by building low level implementations and core components. We built Quasar early in Sorobans development to help newcomers to the Stellar ecosystem. Contact us at hello@eiger.co Follow us on X/Twitter