> For the complete documentation index, see [llms.txt](https://bootcamp.openguild.wtf/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://bootcamp.openguild.wtf/building-a-blockchain-with-polkadot-sdk/polkadot-sdk/substrate/adding-a-custom-logic-to-runtime/extensions/transaction-extensions.md).

# Transaction Extensions

Means by which a transaction may be extended. This type embodies both the data and the logic that should be additionally associated with the transaction. It should be plain old data.

{% embed url="<https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_frame/traits/trait.TransactionExtension.html>" %}

Transaction extensions are capable of defining logic which is executed additionally to the dispatch of the call:

* They may define logic which must be executed prior to the dispatch of the call.
* They may also define logic which must be executed after the dispatch of the call.

{% embed url="<https://forum.polkadot.network/t/introducing-transactionextension/10827>" %}
