# Sigil SDKs

Sigil is a hardware-backed signer with a cloud co-signer. Service providers integrate by asking a user to **pair** their Sigil device, then sending **signing requests** that the device approves and signs. This documentation covers the four packages that make that happen.

## Packages

| Package                                          | Language           | Purpose                                                                                                              |
| ------------------------------------------------ | ------------------ | -------------------------------------------------------------------------------------------------------------------- |
| [`@sigil/jazz`](/typescript/jazz.md)             | TypeScript         | Headless SDK for the SP-side pair handshake. Mints sessions, awaits results, validates pairs, lists granted wallets. |
| [`@sigil/jazz-react`](/typescript/jazz-react.md) | TypeScript / React | Drop-in `<JazzPair>` widget that renders the pair UI (QR / deeplink) and manages the lifecycle.                      |
| [`astrotrain`](/rust/astrotrain.md)              | Rust               | Canonical Rust HTTP client for the SP-facing surface — pair sessions and signing requests. Chain-agnostic.           |
| [`cliffjumper`](/rust/cliffjumper.md)            | Rust               | Ethereum signer implementing `alloy_signer::Signer`. Drops into any alloy / ethers-based pipeline.                   |
| [`blurr`](/rust/blurr.md)                        | Rust               | Solana signer implementing `solana_signer::Signer`. Drops into any `solana-sdk`-based pipeline.                      |

## Where to start

* **First time integrating?** Read [Introduction](/introduction.md), then walk through the [Quickstart](/quickstart.md).
* **TypeScript SP backend?** Use `@sigil/jazz` (and the React widget if you want a drop-in UI).
* **Rust SP backend signing Ethereum tx?** Use `cliffjumper` — it re-exports `astrotrain::pairing` so you don't need a separate dep.
* **Rust SP backend signing Solana tx?** Use `blurr` — same pattern.
* **Rust SP backend with custom signing logic?** Use `astrotrain` directly.

## Environments

The SDKs talk to **octane**, Sigil's signing service. Two endpoints:

| Environment       | Octane URL                          |
| ----------------- | ----------------------------------- |
| Production        | `https://api.sigilvault.xyz/octane` |
| Local development | `http://127.0.0.1:8124`             |

You'll also need an **SP API key** (Bearer auth on every request) and, for the Rust signers, a 32-byte Ed25519 **SP signing seed** (the SP's half of the device co-signature). Both are issued by your Sigil administrator — see [Introduction](/introduction.md) for the onboarding flow.


---

# Agent Instructions: 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:

```
GET https://docs.sigilvault.xyz/readme.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
