FRAME pallets
The FRAME development environment provides modules—called pallets—and support libraries that you can use, modify, and extend to build the runtime logic to suite the needs of your blockchain.
This section provides an overview of the predefined pallets and links to the Rust API reference documentation, where you can find details about each pallet's interfaces.
System pallets
The FRAME system pallets are integral to the Substrate runtime and provide core functionality that all other pallets depend on.
System pallet name |
What it's for |
---|---|
frame_executive |
Orchestrates incoming function calls by sending them to the appropriate pallets in the runtime. |
frame_support |
Provides Rust macros, types, traits, and modules that generate boilerplate code for the pallet structure when compiled. |
frame_system |
Defines low-level types for Substrate primitives, storage items, and core functions for the blockchain. All other pallets depend on the frame_system crate. |
Functional pallets
The Substrate development framework includes many functional pallets that provide features you might find generally useful as composable components of your blockchain. These functional pallets are prebuilt and freely available to enable the community to share, reuse, and improve the interfaces to address common use cases.
Prebuilt pallet name | What it's for |
---|---|
pallet_assets |
Provides simple and secure methods for dealing with fungible assets. |
pallet_atomic_swap |
Enables sending funds from an origin to a target. A proof is used to allow the target to claim the swap. If the swap is not claimed within a specified duration of time, the sender may cancel it. |
pallet_aura |
Extends the authority round (Aura) consensus model by managing offline reporting. |
pallet_authority_discovery |
Retrieves the current set of authorities, learns its own authority ID, and signs and verifies messages to and from other authorities. |
pallet_authorship |
Tracks the current author of the block and recent uncles. |
pallet_babe |
Extends BABE consensus by |
pallet_balances | Provides functionality for handling accounts and balances. |
frame_benchmarking |
Contains common runtime patterns for benchmarking and testing purposes. |
pallet_collective |
Allows a set of account IDs to make their collective feelings known through dispatched calls from specialized origins. |
pallet_contracts |
Provides functionality for the runtime to deploy and execute WebAssembly smart contracts. |
pallet_democracy |
Provides a democratic system that handles administration of general stakeholder voting. |
pallet_elections_phragmen |
Provides an election module based on sequential Phragmén. |
pallet_elections |
Provides an election module for stake-weighted membership in a collective. This pallet is no longer maintained. |
pallet_example |
Demonstrates concepts, APIs, and structures that are applicable for most pallets. |
pallet_example_offchain_worker | Demonstrates concepts, APIs, and structures that are applicable for most offchain workers. |
pallet_grandpa |
Extends the GRANDPA consensus by managing the GRANDPA authority set ready for the native code. |
pallet_identity |
Enables a federated naming system that allows multiple registrars to be added from a specified origin. Registrars can set a fee to provide identity-verification service. |
pallet_im_online |
Allows validators to gossip a heartbeat transaction with each new session to signal that the node is online. |
pallet_indices |
Allocates indices for newly created accounts. An index is a short form of an address. |
pallet_membership |
Allows control of membership of a set of AccountId s, useful for managing the membership of a collective. |
pallet_multisig |
Enables multi-signature dispatches. |
pallet_nicks |
Demonstrates simplified account naming on-chain. It makes no effort to create a name hierarchy, be a DNS replacement, or provide reverse lookups. |
pallet_offences |
Tracks reported offences. |
pallet_proxy |
Allows accounts to give permission to other accounts to dispatch types of calls from their signed origin. |
pallet_randomness_collective_flip |
Provides a random function that can be used in tests and generates low-influence random values based on the block hashes from the previous 81 blocks. This pallet is not intended for use in production. |
pallet_recovery |
Provides a social recovery tool for users to gain access to their accounts if their private key or other authentication mechanism is lost. This pallet enables an account owner to identify trusted parties who can act on the owner's behalf to recover access to an account. |
pallet_scheduler |
Exposes capabilities for scheduling dispatches to occur at a specified block number or at a specified period. These scheduled dispatches can be named or anonymous and can be canceled. |
pallet_scored_pool |
Maintains a scored membership pool where the highest scoring entities are made members. |
pallet_session |
Allows validators to manage their session keys, provides a function for changing the session length, and handles session rotation. |
pallet_society |
Provides economic incentives for users to participate and maintain a membership society. |
pallet_staking |
Manages funds that have been staked by network maintainers. |
pallet_sudo |
Allows for a single account—called the sudo key—to execute dispatchable functions that require a Root origin or designate a new account to replace them as the sudo key. |
pallet_timestamp |
Provides functionality to get and set the on-chain time. |
pallet_transaction_payment |
Provides the basic logic to compute pre-dispatch transaction fees. |
pallet_treasury |
Provides a reserve of funds that can be managed by stakeholders in the system and a structure for making spending proposals from this reserve. |
pallet_utility |
Provides a stateless helper module for managing dispatches. |
pallet_vesting |
Places a linear curve on an account's locked balance. This module ensures that there is a lock in place to prevent the balance to drop below the unvested amount for any reason other than transaction fee payment. |
Additional information
For detailed information about any pallet, refer to the Rust-generated API documentation or the source code for the individual pallet.