PackageTrack
Sign in Get early access

frame-decode

Decode extrinsics and storage from Substrate based chains

0.18.1 6.4M downloads/mo #3986 most downloaded on crates.io paritytech/frame-decode

What this package is like to depend on

Last release 17 days ago

06 Aug 2026

Release timing varies

gaps range from 8 days to 5 months

Most releases are documented

notes for 28 of 35 stable releases

1 version withdrawn

withdrawn after publishing

2 years old

37 releases · first in 2024

16 releases in the last 12 months

see the full history below

Release timeline

37 releases · Sep 2024 to Aug 2026
2025 2026
Release Pre-release Withdrawn

Releases

latest 37
  1. 0.18.1 06 Aug 2026
    Release notes

    Note: 0.18.0 was published to crates.io by accident and yanked; this release takes its place.

    • Fix V5 signer payloads to hash the transaction extension version and call, followed by the extension values and implicits of only the extensions after the last authorization extension (such as VerifyMultiSignature), matching FRAME's transaction extension pipeline semantics.
    • Add TransactionExtension::is_authorization_extension (and the corresponding TransactionExtensions method), which extensions like VerifyMultiSignature should override to return true. It defaults to false.
    • Remove TransactionExtension::encode_value_for_signer_payload_to and TransactionExtensions::encode_extension_value_for_signer_payload_to; extension values are now encoded identically in transactions and signer payloads, with authorization extensions excluded via is_authorization_extension instead.
    • Change encode_v5_signer_payload_with_info to require the transaction extension version needed to construct a valid V5 signer payload.
    Open source →
  2. 0.18.0 23 Feb 2026 withdrawn
    Release notes
    • Fix V5 signer payloads to hash the transaction extension version and call, followed by the extension values and implicits of only the extensions after the last authorization extension (such as VerifyMultiSignature), matching FRAME's transaction extension pipeline semantics.
    • Add TransactionExtension::is_authorization_extension (and the corresponding TransactionExtensions method), which extensions like VerifyMultiSignature should override to return true. It defaults to false.
    • Remove TransactionExtension::encode_value_for_signer_payload_to and TransactionExtensions::encode_extension_value_for_signer_payload_to; extension values are now encoded identically in transactions and signer payloads, with authorization extensions excluded via is_authorization_extension instead.
    • Change encode_v5_signer_payload_with_info to require the transaction extension version needed to construct a valid V5 signer payload.
    Open source →
  3. 0.17.2 12 Mar 2026
    Release notes
    • When encoding extrinsics, unknown Transaction Extensions that are Option<SomeType> will now be accepted, and encoded as 0u8 (ie the None variant) by default if an extension with the corresponding name is not provided by the user. This allows transaction encoding to succeed in more cases, such as when a bunch of optional extensions exist for a chian, but still allows the user to properly implement and provide those extensions if they wish.
    Open source →
  4. 0.17.1 23 Feb 2026
    Release notes
    • Fixed: update some Kusama types to fix decode issues (#94).
    Open source →
  5. 0.17.0 13 Feb 2026
    Release notes
    • Add extrinsic encode methods in frame_decode::extrinsics. This covers encoding v4 and v5 unsigned and signed extrinsics, new traits for providing transaction extensions, encoding v4 and v5 signer payloads and encoding call data.
    Open source →
  6. 0.17.0-beta.1 12 Feb 2026 pre-release

    Nothing published for this version

  7. 0.16.1 03 Dec 2025
    Release notes
    • Expose the crate::helpers::ToTypeRegistry trait so that inputs to crate::helpers::type_registry_from_metadata can be named. Make it sealed so that others cannot rely on it.
    Open source →
  8. 0.16.0 26 Nov 2025
    Release notes
    • Add a flag to StorageInfo which can be set in order to tell frame-decode to use the old version of V9 storage hashers when decoding storage keys. We need to manually toggle this flag when using metadata produced by runtimes prior to this change, which altered the storage hashers (and thus their encoding/decoding). Kusama prior to spec version 1032 is one such case when this needs to be toggled.
    Open source →
  9. 0.15.0 20 Nov 2025
    Release notes
    • Update to scale-info-legacy 0.4.0.
    • Tweak AccountId32 types to be unnamed structs rather than tuple types, so that they get a path.
    • Add legacy_types::from_bytes to convert provided bytes into a ChainTypeRegistry, negating the need to include serde_yaml or whatever in other crates.
    Open source →
  10. 0.14.0 19 Nov 2025
    Release notes
    • Add Kusama RC types capable of decoding historic blocks.
    • Enforce that type definitions have sane variable names and use snake case rather than camel case for field names. If field names were relied on, then note that some of them will change as a result of this.
    Open source →
  11. 0.13.0 14 Nov 2025
    Release notes
    • Separate the iterating over entries from the core frame-decode *Info traits; One only needs to implement *Info traits to work with frame-decode; the other traits are convenience traits.
    • Make Entry type generic so that it can potentially be used in more places, expose it, and expose concrete versions from each module.
    • Expose Kusama RC and AH types (though keep these hidden until the types are more complete).
    • Remove helpers::list_storage_entries_any: it was a bit of an anomaly to have this and not a version for any other thing. Better to keep this upstream for now.
    Open source →
  12. 0.12.1 12 Nov 2025
    Release notes
    • Add map_ids() functions to RuntimeApiInfo, StorageInfo and ViewFunctionInfo to make translating the TypeId parameter simpler. This adds a 'static bound to StorageInfo type IDs, but it is not expected that this will break anything as this is already the case for u32 and LookupName IDs (and is required in many other places).
    Open source →
  13. 0.12.0 10 Nov 2025
    Release notes
    • Bump to scale-info-legacy 0.3.0.
    • It's now easier to iterate over items handed back in *Info traits, and to do so in only one pallet/trait where that is applicable.
    Open source →
  14. 0.11.1 24 Oct 2025
    Release notes

    Fix storage info logic in the case of one hasher and a tuple of keys.

    Open source →
  15. 0.11.0 21 Oct 2025
    Release notes

    This release adds encode/decode logic for Runtime APIs, Constants and Custom Values, and removes some unused bits and pieces. Additionally we merge the trait functions for getting lists of entries into the main *TypeInfo traits, and do a little renaming for consistency. See #46 for more information.

    Open source →
  16. 0.10.0 29 Aug 2025
    Release notes
    • Provide information about the default value in StorageInfo, if one exists. This may be borrowed, and so adds a lifetime to the StorageInfo type (which .into_owned() can handle if necessary).
    Open source →
  17. 0.9.0 24 Jul 2025
    Release notes
    • Remove the _legacy functions; just use the non suffixed versions which are identical.
    • Adds storage key encoding via frame_decode::storage::encode_storage_key, frame_decode::storage::encode_storage_key_to, andframe_decode::storage::encode_storage_key_with_info_to, with supporting traits.
    • Rename prefix to encode_prefix to align with the above.
    Open source →
  18. 0.8.3 17 Jul 2025
    Release notes
    • Make a couple of methods in crate::extrinsics return impl ExactSizeIterator rather than impl Iterator, enabling them to be used with scale_decode::DecodeAsFields.
    Open source →
  19. 0.8.2 16 Jul 2025
    Release notes
    • Make the crate::extrinsics::NamedArg type public, since it's in the public interface.`
    Open source →
  20. 0.8.1 15 Jul 2025
    Release notes
    • Expose a crate::legacy_types module which provides crate::legacy_types::polkadot::relay_chain() to access the relay chain types. This is gated behind the "legacy-types" feature which is disabled by default.
    Open source →
  21. 0.8.0 07 May 2025
    Release notes
    • Support frame-metadata v23. That stabilized V16 metadata, so we implement the relevant traits for that here to support it.
    Open source →
  22. 0.7.1 23 Apr 2025
    Release notes
    • Support frame-metadata v20-v21.
    Open source →
  23. 0.7.0 05 Mar 2025
    Release notes
    • Bump frame-metadata to latest: 20.0.0
    Open source →
  24. 0.6.1 30 Jan 2025
    Release notes
    • Fix a decoding error where the ranges end at 0 if an extrinsic is 0 bytes in length (#30)
    Open source →
  25. 0.6.0 18 Nov 2024
    Release notes
    • Bump frame-metadata to 18.0, scale-decode to 0.16 and scale-value to 0.18 (latest versions at time of release).
    Open source →
  26. 0.5.1 31 Jan 2025

    Nothing published for this version

  27. 0.5.0 23 Oct 2024
    Release notes

    0.5.0 (2024-10-23)

    • Bump scale-decode 0.14, scale-value 0.17 and scale-info v2.11.4 (#7)
    • Remove unused dependency hex (#8)
    • Bump frame-metadata from 16.0.0 to 17.0.0 (#9)
    • Bump scale-info-legacy from 0.2.1 to 0.2.2 (#10)
    Open source →
    Release notes
    • Bump scale-decode 0.14, scale-value 0.17 and scale-info v2.11.4 (#7)
    • Remove unused dependency hex (#8)
    • Bump frame-metadata from 16.0.0 to 17.0.0 (#9)
    • Bump scale-info-legacy from 0.2.1 to 0.2.2 (#10)
    Open source →
  28. 0.4.0 22 Oct 2024
    Release notes
    • Split ExtrinsicTypeInfo trait to get signature and extensions info separately, and support being given an extension version in the latter.
    • Remove support for V5 signed extrinsics, which are no longer a thing (see #3685 for context).
    Open source →
  29. 0.3.0 30 Sep 2024
    Release notes
    • Fix extrinsic.call_range() and extensions.range() functions, and clarify descriptions.
    • Add extrinsic.call_args_range() to return the call data arguments.
    Open source →
  30. 0.2.0 30 Sep 2024
    Release notes
    • Consistify helper functions; have list_storage_entries{_any} and type_registry_from_metadata{_any}, where the any versions take a RuntimeMetadata enum and the others take the specific metadata versions contained within.
    • Improve the top level docs.
    Open source →
  31. 0.1.0 27 Sep 2024
    Release notes

    Initial release.

    Open source →
  32. 0.0.7 26 Sep 2024

    Nothing published for this version

  33. 0.0.6 26 Sep 2024

    Nothing published for this version

  34. 0.0.5 25 Sep 2024

    Nothing published for this version

  35. 0.0.4 23 Sep 2024

    Nothing published for this version

  36. 0.0.3 23 Sep 2024

    Nothing published for this version

  37. 0.0.1 20 Sep 2024

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive