| SDK | Status | Package | Surface |
|---|---|---|---|
| Rust | Stable | sigil-sdk (in-repo) | Transaction builder, resolver, mail, SNS, NFT, storage |
| TypeScript | Stable | @sigil/sigil-web / contracts/client (in-repo) | JSON-RPC client + Ed25519 signer |
| Go | Use raw RPC | — | JSON-RPC over net/http, sign with crypto/ed25519 + BLAKE3 |
| Python | Use raw RPC | — | JSON-RPC over httpx, sign with cryptography + blake3 |
curl; the SDKs exist to remove boilerplate around signing, nonce management, and receipt polling.
Which SDK should you use?
Rust
Pick Rust if you are building validators, indexers, contracts, or any service that needs the strictest type guarantees. The Rust SDK is the canonical reference — every other SDK matches its wire format.
TypeScript
Pick TypeScript if you are building a wallet, dApp frontend, or Node service. The official wallet ships on the same client you’ll use.
Go
Pick Go for high-throughput indexers or backend services. Until a first-party wrapper lands you’ll call the JSON-RPC directly — the page shows the canonical pattern.
Python
Pick Python for scripts, data work, or research notebooks. Same story as Go: raw JSON-RPC with a thin signer helper.
Capability parity matrix
This table is generated from the SDK source. See SDK_AUDIT.md for the source of truth.| Capability | Rust | TypeScript | Go | Python |
|---|---|---|---|---|
| JSON-RPC client | Manual | Built-in | Manual | Manual |
| Ed25519 transaction signing | Built-in | Built-in | Manual | Manual |
TransactionBuilder (staking + gov + contracts) | Built-in | — | — | — |
Raw Transaction construction | Built-in | Built-in | Manual | Manual |
| OAS DID resolver | Built-in | — | — | — |
| Mail (envelope, mailbox, policy) | Built-in | — | — | — |
| SNS (name resolver, namehash) | Built-in | — | — | — |
| NFT helpers | Built-in | — | — | — |
| Storage market preflight | Built-in | — | — | — |
| GAL verification (feature-gated) | gal, gal-http | — | — | — |
| Sign-in transcript (SIWE-equivalent) | gal feature | — | — | — |
| WebSocket subscriptions | Roadmap | Roadmap | Roadmap | Roadmap |
Versioning and stability
- SDKs follow strict SemVer. The current released version of every SDK is
0.1.0. - Breaking changes to RPC method names are minor-version events. Breaking changes to request or response shapes are major-version events.
- The chain enforces wire-format compatibility through
contracts/client/rpc-methods.jsonandcontracts/client/system-contracts.json. Both files ship with every release.
Reporting bugs
File issues against thel1feai/sigil repository. For SDK-specific bugs, prefix the title with the language: [rust-sdk] ..., [ts-sdk] ....