# 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).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://www.build3.network/developers/notes-about-substrate/frame-pallet/runtime-configuration-trait.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
