# metadata.rs - source
Source of the Rust file `docs/sdk/src/reference_docs/metadata.rs`.

#
pezkuwi_sdk_docs/reference_docs/
metadata.rs

    1//! # Metadata
    2//!
    3//! The existence of metadata in pezkuwi-sdk goes back to the (forkless) upgrade-ability of all
    4//! Bizinikiwi-based blockchains, which is achieved through
    5//! [`crate::reference_docs::wasm_meta_protocol`]. You can learn more about the details of how to
    6//! deal with these upgrades in [`crate::reference_docs::frame_runtime_upgrades_and_migrations`].
    7//!
    8//! Another consequence of upgrade-ability is that as a UI, wallet, or generally an offchain entity,
    9//! it is hard to know the types internal to the runtime, specifically in light of the fact that
    10//! they can change at any point in time.
    11//!
    12//! This is why all Bizinikiwi-based runtimes must expose a [`pezsp_api::Metadata`] api, which
    13//! mandates the runtime to return a description of itself. The return type of this api is
    14//! `Vec<u8>`, meaning that it is up to the runtime developer to decide on the format of this.
    15//!
    16//! All [`crate::pezkuwi_sdk::frame_runtime`] based runtimes expose a specific metadata language,
    17//! maintained in <https://github.com/paritytech/frame-metadata> which is adopted in the Pezkuwi
    18//! ecosystem.
    19//!
    20//! ## Metadata Explorers:
    21//!
    22//! A few noteworthy tools that inspect the (FRAME-based) metadata of a chain:
    23//!
    24//! - <https://wiki.network.pezkuwichain.io/docs/metadata>
    25//! - <https://paritytech.github.io/subxt-explorer/>