61 releases (37 major breaking)

new 39.1.0 Mar 27, 2025
38.0.2 Dec 20, 2024
38.0.0 Sep 26, 2024
37.0.1 Dec 12, 2024
2.0.0-alpha.5 Mar 24, 2020

#367 in Magic Beans

Download history 33819/week @ 2024-12-08 26882/week @ 2024-12-15 7930/week @ 2024-12-22 13760/week @ 2024-12-29 25420/week @ 2025-01-05 37768/week @ 2025-01-12 35583/week @ 2025-01-19 29440/week @ 2025-01-26 33528/week @ 2025-02-02 37932/week @ 2025-02-09 37019/week @ 2025-02-16 15389/week @ 2025-02-23 7089/week @ 2025-03-02 9351/week @ 2025-03-09 7141/week @ 2025-03-16 7358/week @ 2025-03-23

31,758 downloads per month
Used in 144 crates (48 directly)

Apache-2.0

3MB
49K SLoC

Transaction Payment Pallet

This pallet provides the basic logic needed to pay the absolute minimum amount needed for a transaction to be included. This includes:

  • weight fee: A fee proportional to amount of weight a transaction consumes.
  • length fee: A fee proportional to the encoded length of the transaction.
  • tip: An optional tip. Tip increases the priority of the transaction, giving it a higher chance to be included by the transaction queue.

Additionally, this pallet allows one to configure:

  • The mapping between one unit of weight to one unit of fee via Config::WeightToFee.
  • A means of updating the fee for the next block, via defining a multiplier, based on the final state of the chain at the end of the previous block. This can be configured via Config::FeeMultiplierUpdate

License: Apache-2.0

Release

Polkadot SDK Stable 2412


lib.rs:

Transaction Payment Pallet

This pallet provides the basic logic needed to pay the absolute minimum amount needed for a transaction to be included. This includes:

  • base fee: This is the minimum amount a user pays for a transaction. It is declared as a base weight in the runtime and converted to a fee using WeightToFee.
  • weight fee: A fee proportional to amount of weight a transaction consumes.
  • length fee: A fee proportional to the encoded length of the transaction.
  • tip: An optional tip. Tip increases the priority of the transaction, giving it a higher chance to be included by the transaction queue.

The base fee and adjusted weight and length fees constitute the inclusion fee, which is the minimum fee for a transaction to be included in a block.

The formula of final fee:

inclusion_fee = base_fee + length_fee + [targeted_fee_adjustment * weight_fee];
final_fee = inclusion_fee + tip;
  • targeted_fee_adjustment: This is a multiplier that can tune the final fee based on the congestion of the network.

Additionally, this pallet allows one to configure:

Dependencies

~19–34MB
~580K SLoC