github.com/LumeraProtocol/sdk-rs as it appears in the repository. For a guided start see the Rust SDK page.
The crate is lumera-sdk-rs and the library name is lumera_sdk_rs. It is at version 0.1.0 with no published releases, so add it from git rather than from crates.io.
The crate is pre-1.0 and has no tagged releases. Pin a specific commit if you need a stable surface.
Crate layout
The crate exposes seven modules. Three of them carry the client surfaces you will use most.
These items are re-exported at the crate root.
Settings
SdkSettings holds the six values every client needs.
The defaults point at a local devnet. Override them for testnet or mainnet.
Loading settings
Environment variables win over file values, which makes deployment-time overrides straightforward. Any other file extension returns
SdkError::InvalidInput.
Environment variables
Cascade surface
CascadeSdk owns a ChainClient and an SnApiClient as public fields, so you can drop to either layer directly.
Configuration
CascadeConfig carries a ChainConfig plus the SN-API base URL.
Workflow methods
register_ticket does the full registration in one call. It reads the file, hashes it, builds the RaptorQ layout, signs it, computes layout IDs, looks up the fee, and submits the action. Both upload and download return a task ID you poll through snapi.
Deterministic helpers
These are associated functions, so call them on the type rather than an instance.compute_data_hash_b64 is BLAKE3 over the file bytes, base64 encoded. generate_ids compresses with zstd level 3, hashes with BLAKE3, and encodes with base58, which is what keeps IDs byte-compatible with the SuperNode implementation.
Cascade types
Chain surface
ChainClient::new(cfg: ChainConfig) builds the client. ChainConfig has the same five chain fields as SdkSettings minus snapi_base, plus a builder for each one (with_chain_id, with_grpc_endpoint, with_rpc_endpoint, with_rest_endpoint, with_gas_price).
Queries
Transactions
Every
signing_key above is a &cosmrs::crypto::secp256k1::SigningKey. send_any_msgs lets you submit arbitrary Cosmos messages, so the SDK is not limited to Cascade actions.
BroadcastMode is Async, Sync, or Commit.
Waiting
Chain types
Log helpers
extract_action_id_from_log is a shorthand that looks for the action_id attribute on the action_registered event.
SN-API surface
SnApiClient::new(base: String) builds the client, and base is public.
start_cascade reads the file and delegates to start_cascade_bytes, so use the bytes form when the data is already in memory. request_download retries transient server errors, because a download can race with finalization right after an upload completes. Status methods return raw serde_json::Value rather than typed structs.
See the SN-API reference for the endpoint payloads.
Signing identity
SigningIdentity derives both signing keys the SDK needs from one mnemonic.
Two keys exist because chain transactions and arbitrary payload signatures use different libraries.
derive_signing_keys_from_mnemonic is a module-level convenience that assumes the lumera prefix and the m/44'/118'/0'/0/0 path.
Crypto helpers
sign_raw_message_b64 signs the raw bytes and base64 encodes the signature. make_adr36_sign_bytes builds the ADR-036 MsgSignData document used for offline signature verification. See LumeraID for how ADR-036 signatures gate access to private objects.
Errors
Every fallible call returnsResult<T, SdkError>.
Examples in the repo
Next steps
Rust SDK
The guided walkthrough for installing and using the SDK.
How Cascade works
The storage flow behind register, upload, and download.
SN-API reference
The REST endpoints the
snapi module calls.Go SDK reference
The equivalent surface in Go.