Horizon Introduction
On August 1, 2024, the SDF truncated historical data on its Horizon instances to one year. This update allows us to optimize performance and ensure a streamlined experience for all users. We encourage you to explore third-party ecosystem providers of Horizon, which may provide a longer history retention window as well as other features.
Horizon provides an HTTP API to data in the Stellar network. It ingests and re-serves the data produced by the Stellar network in a form that is easier to consume by the average application relative to the performance-oriented data representations used by Stellar Core. This API serves the bridge between apps and Stellar Core. Projects like wallets, decentralized exchanges, and asset issuers use Horizon to submit transactions, query an account balance, or stream events like transactions to an account.
Horizon can be accessed via cURL, a browser, or one of the Stellar SDKs. To reduce the complexity of your project, we recommend you use an SDK instead of making direct API calls.
This guide describes how to administer a production Horizon instance (refer to the Developers' Blog for some background on the performance and architectural improvements of this major version bump). For information about developing on the Horizon codebase, check out the Development Guide.
Before we begin, it's worth reiterating the sentiment echoed in the Core Node documentation: we do not endorse running Horizon backed by a standalone Stellar Core instance, and especially not by a validating Stellar Core. These are two separate concerns, and decoupling them is important for both reliability and performance. Horizon instead manages its own, pared-down version of Stellar Core optimized for its own subset of needs (we'll refer to this as a "Captive Core" instance).
Why Run Horizon?
Running Horizon within your own infrastructure provides a number of benefits. You can:
- Have full operational control without dependency on the Stellar Development Foundation for network data and transaction submission to networks;
- Run multiple instances for redundancy and scalability.
The Stellar Development Foundation (SDF) runs two instances of Horizon:
- horizon-testnet.stellar.org for interacting with the testnet
- horizon-futurenet.stellar.org for interacting with the futurenet
In These Docs
- Admin Guide: how to set up your own Horizon instance.
- Structure: how Horizon is structured.
- Resources: descriptions of resources and their endpoints.
- Aggregations: descriptions of specialized endpoints.
- Errors: potential errors and what they mean.