Initial Mintlayer Rust SDK - #1
Merged
Merged
Conversation
…ecurity review fixes)
…curity review fixes)
…, order and statistics surface
…ity review fixes)
…and order surface
…(security review fixes)
…ardening (security review fixes)
…g docs (security review fixes)
…ctions, staking and tokens
…coins fee guard, error naming (final review fixes)
…ts (DRY review fix)
…nt gating (DRY + test review fixes)
…ultisig-rejection assertions
nullPointerEnjoyer
force-pushed
the
initial-sdk
branch
from
September 17, 2026 14:23
b05ba15 to
c1a6acd
Compare
erubboli
self-requested a review
September 17, 2026 15:04
erubboli
approved these changes
Sep 17, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Initial release of the Mintlayer Rust SDK — the Rust equivalent of the Go SDK, with the embedded WASM cryptography runtime replaced by native bindings to mintlayer-core.
Modules
nodeindexerwalletcrypto7f4393ac9)Feature flags: default
node,indexer,wallet;cryptoopt-in;full= everything. Each feature combination compiles and is tested in isolation (CI matrix).Design notes
wasmsub-client operation-for-operation, but exchanges typed values (Transaction,TxOutput,PrivateKey, ...) instead of opaque byte arrays; SCALEEncode/DecodeAllre-exports provide byte-level access.[patch.crates-io]parity-scale-codec entry (documented in the rootCargo.tomland README) — Cargo ignores patches from non-root workspaces.TrustPolicysemantics, walletsubmit_transactionhardcodesTrusted.Security hardening (all covered by tests)
Debugoutput across all client/builder/param types.Tests
88 integration tests: wire-format pins for every RPC/REST shape (incl. string-encoded numbers, tuple-wired fee points/banned peers, tagged enums), consensus vectors for the crypto module (BIP39 legacy derivations, transaction ids, fee schedule, timelock SCALE bytes, token-id/pool-id bech32 pins, orders-V1 fork straddle), HTLC spend/refund/secret-extraction end-to-end, signed-intent sign→verify with tamper negatives, concurrent-id uniqueness, and security regression tests (redaction, oversize bodies, path traversal).
Examples & docs
examples/send-coins.rs— native derive → fetch UTXOs → build/sign → submit flow (with fee-semantics guard)examples/issue-token.rs— wallet daemon token issuance flowdocs/— full references for each sub-client plus transactions/staking/tokens guides