| description | Go tooling that makes Stellar and Soroban legible. |
|---|
Almost everything that matters on Stellar arrives as XDR encoded in base64 — transaction envelopes, results, ledger entries, contract events, return values. A developer who hits an error gets an opaque string and very little else.
Stellar Optics is a family of Go tools that make that data readable at each point you meet it: at rest, in motion, and under test.
| Tool | Role | Use it when |
|---|---|---|
| stellar-xdr-lens | Data at rest | You have a blob and need to know what it says |
| stellar-prism | Data in motion | You need to watch a contract as it runs |
| stellar-focus | Data under test | You need to assert on XDR in a Go test |
They share a core. prism and focus both import stellar-xdr-lens as a Go module, so decoded output looks the same everywhere — whether you inspected a blob by hand, watched it stream past, or read it in a failing test.
New to the toolchain? Install it, then work through the quickstart.
Want to understand the design first? Read why XDR is hard to read and how the three tools fit together.
All three repos live under github.com/stellar-optics and are licensed Apache-2.0.