1 unstable release
| 0.44.0 | Dec 29, 2025 |
|---|
#27 in #relayer
Used in 3 crates
(via pezkuwi-sdk)
4MB
53K
SLoC
Meta Tx (Meta Transaction) Pezpallet
This pezpallet enables the dispatch of transactions that are authorized by one party (the signer) and executed by an untrusted third party (the relayer), who covers the transaction fees.
Pezpallet API
See the pezpallet module for more information about the interfaces this pezpallet exposes,
including its configuration trait, dispatchables, storage items, events and errors.
Overview
The pezpallet provides a client-level API, typically not meant for direct use by end users.
A meta transaction, constructed with the help of a wallet, contains a target call, necessary
extensions, and the signer's signature. This transaction is then broadcast, and any interested
relayer can pick it up and execute it. The relayer submits a regular transaction via the
dispatch function, passing the meta transaction as an argument to
execute the target call on behalf of the signer while covering the fees.
Example
Low-Level / Implementation Details
The structure of a meta transaction is identical to the
General transaction.
It contains the target call along with a configurable set of extensions and its associated
version. Typically, these extensions include type like
pezpallet_verify_signature::VerifySignature, which provides the signer address
and the signature of the payload, encompassing the call and the meta-transaction’s
configurations, such as its mortality. The extensions follow the same TransactionExtension
contract, and common types such as pezframe_system::CheckGenesis,
pezframe_system::CheckMortality, pezframe_system::CheckNonce, etc., are applicable in
the context of meta transactions. Check the mock setup for the example.
Dependencies
~28–53MB
~771K SLoC