> For the complete documentation index, see [llms.txt](https://emeditweb.gitbook.io/pulsar-stellar-sdk/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://emeditweb.gitbook.io/pulsar-stellar-sdk/readme.md).

# Introduction

<div align="center"><img src="https://3948426311-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtyR6OhMv6ngnxffkP3GT%2Fuploads%2Fgit-blob-be5a20d668c1fff4087ffca4aab8e12b9c6b3529%2Fpulsar.png?alt=media" alt="Pulsar Stellar" height="140" width="140"></div>

## Pulsar Stellar

Soroban RPC keeps contract events for about seven days. A dapp that needs a user's transaction history, an audit trail, or analytics older than a week has nowhere on chain to read it from. Pulsar Stellar is a developer toolkit that keeps that history, serves it over HTTP, and decodes it into typed data.

It gives you one event type and one set of methods whether an event comes from the live network or from stored history, so the source is a deployment choice rather than a rewrite.

### What is in the toolkit

* **TypeScript SDK, `@pulsar-stellar/sdk`.** A typed client, published on npm. It reads decoded event history from an indexer, or tails events straight from Stellar RPC. Both paths return the same `DecodedEvent`.
* **Go indexer.** A self-hostable daemon that polls Soroban RPC, decodes events, and stores them in Postgres or SQLite past the RPC retention window.
* **Reference contract, `pulsar-showcase`.** A Soroban contract deployed to testnet whose functions emit specific event shapes. It is the test fixture and the live demo for the decoder.

### Current status

The toolkit is under active development. What is real today:

| Piece                                         | State                                                                                                                    |
| --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| `@pulsar-stellar/sdk`                         | Shipped. Published on npm, release `v0.1.0-app`.                                                                         |
| `pulsar-showcase` contract                    | Shipped. Deployed to testnet, release `v0.1.0-contracts`.                                                                |
| Indexer polling and storage                   | Shipped. Polls RPC, decodes events, stores them in Postgres or SQLite.                                                   |
| Indexer read API (`/health` and `/contracts`) | Implemented and tested. The handlers and their wire contract are done; the daemon does not serve them on a listener yet. |
| Indexer event routes                          | In progress. Specified and called by the SDK, not built yet.                                                             |
| Hosted public indexer                         | Not yet. Self-host it today.                                                                                             |
| `pulsar-web` explorer                         | Coming soon. Scaffolded, not deployed.                                                                                   |
| `pulsar-decoder` Rust crate                   | Coming soon. A placeholder until `v0.2.0-contracts`.                                                                     |

What this means in practice:

* **The RPC path works today with no infrastructure.** `fetchLiveEvents` and `liveEventStream` read the live network directly. You need only a public Soroban RPC URL.
* **The indexer path needs a running indexer that serves its routes.** The SDK methods exist and are tested, and the indexer polls and stores events today, but the daemon does not serve its HTTP API yet, so the indexer-path methods have no live endpoint to call. Track the remaining work in the repo's `PENDING-DOCS-UPDATES.md`.

The showcase contract is live on testnet at `CDNWTVUDKCCGW7GOC6SBLUFXXUCD2YDHWRDUSXZ6CYBQKQWLCUYYWI5L`. Its event history is browsable on [stellar.expert](https://stellar.expert/explorer/testnet/contract/CDNWTVUDKCCGW7GOC6SBLUFXXUCD2YDHWRDUSXZ6CYBQKQWLCUYYWI5L). Testnet is reset periodically, so the contract will eventually be archived and the ID will stop resolving.

### Which piece do I need?

* **Read live events, no setup.** Use the SDK's RPC path. See [Getting Started](/pulsar-stellar-sdk/getting-started.md).
* **Read full history past the retention wall.** Run the indexer and point the SDK at it. See the [Indexer Guide](/pulsar-stellar-sdk/indexer-guide.md).
* **Call a contract or map events to a binding's shape.** Use `buildContractCall` and the `as*Event` helpers. See the [SDK Reference](/pulsar-stellar-sdk/sdk-reference.md).

### Repositories

* [pulsar-core](https://github.com/pulsar-stellar/pulsar-core): the Rust contract layer. The `pulsar-showcase` contract and the `pulsar-decoder` crate.
* [pulsar-app](https://github.com/pulsar-stellar/pulsar-app): the TypeScript SDK, the Go indexer, and the web explorer.
* [pulsar-docs](https://github.com/pulsar-stellar/pulsar-docs): this documentation.

### Where to go next

* [Getting Started](/pulsar-stellar-sdk/getting-started.md): install the SDK and read your first events.
* [Concepts](/pulsar-stellar-sdk/concepts.md): the ideas the SDK is built on, worth reading once before you build.
* [SDK Reference](/pulsar-stellar-sdk/sdk-reference.md): every export, with signatures and examples.
* [Indexer Guide](/pulsar-stellar-sdk/indexer-guide.md): run your own indexer.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://emeditweb.gitbook.io/pulsar-stellar-sdk/readme.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
