Crate pallet_utility

source ·
Expand description

§Utility Pallet

A stateless pallet with helpers for dispatch management which does no re-authentication.


This pallet contains two basic pieces of functionality:

  • Batch dispatch: A stateless operation, allowing any origin to execute multiple calls in a single dispatch. This can be useful to amalgamate proposals, combining set_code with corresponding set_storages, for efficient multiple payouts with just a single signature verify, or in combination with one of the other two dispatch functionality.
  • Pseudonymal dispatch: A stateless operation, allowing a signed origin to execute a call from an alternative signed origin. Each account has 2 * 2**16 possible “pseudonyms” (alternative account IDs) and these can be stacked. This can be useful as a key management tool, where you need multiple distinct accounts (e.g. as controllers for many staking accounts), but where it’s perfectly fine to have each of them controlled by the same underlying keypair. Derivative accounts are, for the purposes of proxy filtering considered exactly the same as the origin and are thus hampered with the origin’s filters.

Since proxy filters are respected in all dispatches of this pallet, it should never need to be filtered by any proxy.


§Dispatchable Functions

§For batch dispatch
  • batch - Dispatch multiple calls from the sender’s origin.
§For pseudonymal dispatch
  • as_derivative - Dispatch a call from a derivative signed origin.



  • The pallet module in each FRAME pallet hosts the most important items needed to construct this pallet.
  • Autogenerated weights for pallet_utility


  • A pallet identifier. These are per pallet and should be stored in a registry somewhere.