> For the complete documentation index, see [llms.txt](https://www.build3.network/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://www.build3.network/developers/notes-about-substrate/frame-pallet/runtime-configuration-trait.md).

# Runtime Configuration Trait

substrate\_ is taking full advantage of the [extensibility features of Rust](https://permitzip.gitbook.io/building-blockchain-applications/core-knowledge/data-structures/extensible-features) by implementing the `Config` object as a trait.

The best practice when building your pallet is to implement [Generic Types](https://permitzip.gitbook.io/building-blockchain-applications/core-knowledge/data-structures/extensible-features/generic-types).

This will allow you to create all the functionality you want while leaving the concrete types a decision made at runtime.

The `Configutation Trait` is the way that substrate\_ empowers the use of that extensible framework writing.

The `Configuration Trait` definition is a requirement for all [pallets](/developers/notes-about-substrate/frame-pallet.md).
