smoldot
Primitives to build a client for Substrate-based blockchains
2.2.0
9.4M downloads/mo
#3213 most downloaded on crates.io
paritytech/smoldot
What this package is like to depend on
Last release 16 days ago
07 Aug 2026
Release timing varies
gaps range from 9 days to 5 months
Rarely documented
notes for 5 of 36 stable releases
Nothing withdrawn
no release was ever pulled
5 years old
36 releases · first in 2021
12 releases in the last 12 months
see the full history below
Release timeline
36 releases · Mar 2021 to Aug 2026Releases
latest 36-
2.2.007 Aug 2026Release notes
Open source →This is to:
- publish
smoldot-v3.4.0npm. - publish crates
smoldot-light v2.0.0,smoldot v2.2.0
Changes
Added
- Implement the
RFC-0163
elliptic curve host functions: scalar multiplication and multi-scalar
multiplication on bandersnatch (ed_on_bls12_381_bandersnatch), and
scalar multiplication, multi-scalar multiplication, multi Miller loop
and final exponentiation on BLS12-381. This lets smoldot execute
runtimes that verify bandersnatch ring-VRF proofs (proof-of-personhood
chains). The remaining RFC-0163 functions (Pallas, Vesta) are registered
but unimplemented.
(#3331; fixes
#3328)
Fixed
- Fix a panic (
assertion failed: task.event_pending_send.is_none()in
debug builds) or a silently lost connection event (release builds, later
causing a sync service panic on an unmatchedDisconnected) when a peer
ban raced with a network event that was still being delivered to
subscribers. (#3314;
fixes #3312) - No longer crash with an uncaught
InvalidStateErrorwhen sending on
anRTCDataChannelthat left theopenstate before itscloseevent
was delivered; the send is skipped, since the pendingcloseevent
resets the stream anyway.
(#3324; fixes
#3322) - In remote-instance mode, no longer crash with an uncaught
TypeError
when a message addressed to the first substream of a WebRTC connection
(stream id 0) raced with that substream's reset: stream id 0 was
accidentally exempt from the stale-message check.
(#3326; related to
#3322) - No longer crash with an uncaught
InvalidStateErrorwhen opening a
substream on anRTCPeerConnectionthat moved toclosedbefore its
connectionstatechangeevent was delivered.
(#3327; fixes
#3325) - Fix a panic in the connection task when the remote resets an inbound
notifications substream while a message about that substream is still in
flight (a duplicate reject, or a close right after an accept).
(#3329; fixes
#3304)
- publish
-
2.1.124 Jul 2026Release notes
Open source →This is to:
- publish
smoldot-v3.3.2npm. - publish crates
smoldot-light v1.3.2,smoldot v2.1.1
Changes
Changed
- Match incoming statements against statement-store subscriptions
through a topic index instead of scanning every subscription, making
statement matching efficient when many subscriptions are active. Filter
semantics are unchanged.
(#3281; fixes
#3144,
#3147)
Fixed
- Fix a panic (
called Result::unwrap() on an Err valuein
runtime_service) during parachain sync, caused by a relay chain block
being unpinned twice when its parahead fetch finished but the block was
pruned before being reported.
(#3287; fixes
#3286) - No longer crash the entire client when WebRTC is unavailable in the
environment (e.g. inside a worker thread, whereRTCPeerConnection
doesn't exist); WebRTC connections are now forbidden instead.
(#3303; fixes
#3302) - JS exceptions thrown by code called from within the Wasm are no longer
silently swallowed (which left an unusable instance and misleading
errors on later calls); they now trigger the regular crash handling with
awasm-panicevent carrying the original message and stack.
(#3308; related to
#3302,
#3306,
#3307) - Fix a panic (
same stream_id used multiple times in connection_stream_opened) when a browser delivers theopenevent of
anRTCDataChannelmore than once.
(#3309; fixes
#3305)
Also updates
docs/RELEASING.mdstep 5: changelog entries now link
related GitHub issues. - publish
-
2.1.002 Jul 2026Nothing published for this version
-
2.0.029 Jun 2026Release notes
Open source →Remove
- Removed
MalformedJsonRpcError. Malformed JSON-RPC requests now later generate an error JSON-RPC response where theidfield is equal tonull, in accordance with the JSON-RPC 2.0 specification. (#1116)
Changed
- Transactions submitted through the JSON-RPC server before the warp syncing process is finished will now immediately be dropped. (#1110)
- JSON-RPC requests that are very large are no longer rejected. In case where the JSON-RPC client is trusted, then there is nothing to do, and the potential lack of memory space will become a non-issue once the
Memory64WebAssembly proposal becomes widely available. In case where the JSON-RPC client is not trusted, the API user is encouraged to manually implement a limit to the size of JSON-RPC requests, as it should do already right now anyway. (#1115)
Fixed
- Fix
Chain.remove()not actually removing the chain until the warp syncing process is finished (which might never happen if for example bootnodes are misconfigured). (#1110) - Fix JSON-RPC server not processing requests if many transactions are submitted before the warp syncing process is finished. (#1110)
- Removed
-
1.2.002 Jun 2026Nothing published for this version
-
1.1.301 Jun 2026Nothing published for this version
-
1.1.213 May 2026Nothing published for this version
-
1.1.107 May 2026Nothing published for this version
-
1.1.017 Apr 2026Nothing published for this version
-
1.0.013 Apr 2026Release notes
Open source →Fixed
- Fix Deno throwing an exception when failing to connect to an unreachable node through a TCP/IP multiaddr. (#246)
-
0.21.002 Dec 2025Nothing published for this version
-
0.20.020 Oct 2025Nothing published for this version
-
0.19.427 May 2025Nothing published for this version
-
0.19.318 Feb 2025Nothing published for this version
-
0.19.219 Nov 2024Nothing published for this version
-
0.19.118 Nov 2024Nothing published for this version
-
0.19.008 Nov 2024Nothing published for this version
-
0.18.029 May 2024Nothing published for this version
-
0.17.024 Jan 2024Nothing published for this version
-
0.16.003 Jan 2024Nothing published for this version
-
0.15.011 Dec 2023Nothing published for this version
-
0.14.015 Nov 2023Nothing published for this version
-
0.13.002 Nov 2023Nothing published for this version
-
0.12.007 Sep 2023Nothing published for this version
-
0.11.014 Aug 2023Nothing published for this version
-
0.10.008 Aug 2023Nothing published for this version
-
0.9.010 Jul 2023Nothing published for this version
-
0.8.008 Jun 2023Nothing published for this version
-
0.7.026 May 2023Release notes
Open source →Removed
- Removed
Chain.databaseContentfunction. Use thechainHead_unstable_finalizedDatabaseJSON-RPC function to obtain the database content instead. (#2791)
Changed
Chain.sendJsonRpcnow throws aMalformedJsonRpcErrorexception if the JSON-RPC request is too large or malformed, or aQueueFullErrorif the queue of JSON-RPC requests of the chain is full. (#2778)- Removed
AddChainOptions.jsonRpcCallback. Use the newChain.nextJsonRpcResponseasynchronous function to pull JSON-RPC responses instead of registering a callback. AAddChainOptions.disableJsonRpcflag is now supported in order to bring the same effects as not passing anyjsonRpcCallback. (#2778) - Removed the
versionfield of the struct returned by therpc_methodsfunction. (#2756)
Fixed
- Removed
-
0.6.024 Apr 2023Nothing published for this version
-
0.5.001 Dec 2022Nothing published for this version
-
0.4.007 Sep 2022Nothing published for this version
-
0.3.023 Aug 2022Nothing published for this version
-
0.2.023 Nov 2021Nothing published for this version
-
0.1.106 Aug 2021Nothing published for this version
-
0.1.005 Mar 2021Nothing published for this version