> 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/other-important-crates/frame_system.md).

# frame\_system

## frame\_system

You'll see this everywhere and wonder why. WHY!? WHAT IS THIS!? The same is true for `frame_support` but over time they start making sense.&#x20;

`frame_system` is the `System` crate that defines the core **types** for `runtime` such as Account ID, Header, Version, Hash, Origin, etc., as well as core [storage items](/developers/notes-about-substrate/frame-pallet/runtime-storage.md) such as Block Hash, Block Number, [Events](/developers/notes-about-substrate/frame-pallet/runtime-events.md), etc.

Luckily, substrate\_ makes it easy by including the `pallet_prelude` in both crates. Use this with the wildcard `*` and move on. You'll come back to it and it'll make more sense.

```rust
#[frame_support::pallet]
pub mod pallet {
    use frame_support::pallet_prelude::*;
    use frame_system::pallet_prelude::*;
    // other pallet dependencies...
```

## frame\_support
