Your own Stellar indexer, deployed in minutes.
Sierpe is a self-hosted server that watches the Stellar network for the contracts you register and keeps their complete history in your own Postgres, behind an honest REST API.
No forks, no custom code, no vendor. Configuration is data: register contracts at runtime through an authenticated API, and Sierpe classifies them, backfills their full history — replaying the public archives for ranges no RPC serves anymore — and follows the tip.
- Deploy the container next to an empty Postgres
POST /v1/contracts {"contract_id": "C...", "from": "genesis"}- Sierpe discovers the contract’s events from its on-chain spec and walks its history backwards, honestly declaring coverage
GET /v1/contracts/C.../events?topic0=...&after=<cursor>— or just open/in a browser: the embedded UI covers it all
It indexes events, contract state, token transfers and the classic trustlines of SAC assets — each with full history and a current snapshot where that makes sense.
Honest by construction. Coverage and gaps are first-class data, declared in every API response. An empty page always tells you whether there is nothing — or whether it just hasn’t been indexed yet.
Latest news
Sierpe 1.11.0 — events hand over their original bytes
The first external consumer to build on a Sierpe instance was not a
dashboard — it was another pipeline: an escrow platform bridging a year
of indexed mainnet history into its own event queue. A bridge like that
does not want our decode of an event; it wants the event, the original
ContractEvent bytes, to carry through its own envelope untouched.
Sierpe 1.10.1 — two ways a gap could be recorded wrong
Sparse healing shipped yesterday. Answering an operator’s question about it — can I apply a plan before my next batch of registrations clamps? — turned up two bugs in how a gap gets recorded. The answer was no, and now it is yes.
Sierpe 1.10.0 — healing only where your contracts actually lived
The mainnet pilot finished walking the RPC window and started on what lies below it: six million ledgers with no live source, healed by replaying them through a captive stellar-core. The first measurements made the problem plain. Replay runs at 4.72 ledgers per second on that machine, which puts the remaining range at about two weeks — to recover data that lives in 0.15% of those ledgers. The rest was empty history being replayed at full price.
Sierpe 1.8.0 and 1.9.0 — the archive leg learns what deep healing actually costs
The mainnet pilot moved from backfilling the RPC window into the archive leg’s territory: healing the six million ledgers below it. That transition surfaced three problems in three days — two shipped in 1.8.0 while the window walk was still running, and the third, found the hour the deep heal started, is 1.9.0.
Sierpe 1.7.0 — one scan for many contracts, and a bandwidth bug the pilot caught
Two releases in one day, because deploying against mainnet for real is the fastest reviewer there is. 1.6.0 shipped this morning; by the afternoon the first production pilot — three contracts walking eleven months of history on a homelab machine — had exposed a cost model problem and a silent bandwidth bug. 1.7.0 fixes both.