chore: migrate git dependencies to Gitea mirror (git.pezkuwichain.io)

This commit is contained in:
2026-04-21 18:52:54 +03:00
parent 95bf48f240
commit 672682558f
947 changed files with 91913 additions and 12 deletions
@@ -0,0 +1,162 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Learn about Bizinikiwi, the main blockchain framework used in the Pezkuwi ecosystem."><title>pezkuwi_sdk_docs::pezkuwi_sdk::bizinikiwi - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="pezkuwi_sdk_docs" data-themes="" data-resource-suffix="" data-rustdoc-version="1.91.1 (ed61e7d7e 2025-11-07)" data-channel="1.91.1" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-c3e638e9.js" data-settings-js="settings-c38705f0.js" ><script src="../../../static.files/storage-e2aeef58.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../../static.files/main-6dc2a7f3.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-263c88ec.css"></noscript><link rel="icon" href="https://pezkuwichain.io/favicon.ico"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Module bizinikiwi</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../pezkuwi_sdk_docs/index.html">pezkuwi_<wbr>sdk_<wbr>docs</a><span class="version">0.0.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module bizinikiwi</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#bizinikiwi" title="Bizinikiwi">Bizinikiwi</a><ul><li><a href="#overview-philosophy" title="Overview, Philosophy">Overview, Philosophy</a></li><li><a href="#how-to-get-started" title="How to Get Started">How to Get Started</a></li><li><a href="#structure" title="Structure">Structure</a></li><li><a href="#teyrchain" title="Teyrchain?">Teyrchain?</a></li><li><a href="#where-to-go-next" title="Where To Go Next?">Where To Go Next?</a></li></ul></li></ul></section><div id="rustdoc-modnav"><h2><a href="../index.html">In pezkuwi_<wbr>sdk_<wbr>docs::<wbr>pezkuwi_<wbr>sdk</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">pezkuwi_sdk_docs</a>::<wbr><a href="../index.html">pezkuwi_sdk</a></div><h1>Module <span>bizinikiwi</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/bizinikiwi.rs.html#1-140">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Learn about Bizinikiwi, the main blockchain framework used in the Pezkuwi ecosystem.</p>
<h2 id="bizinikiwi"><a class="doc-anchor" href="#bizinikiwi">§</a>Bizinikiwi</h2>
<p>Bizinikiwi is a Rust framework for building blockchains in a modular and extensible way. While
in itself un-opinionated, it is the main engine behind the Pezkuwi ecosystem.</p>
<h3 id="overview-philosophy"><a class="doc-anchor" href="#overview-philosophy">§</a>Overview, Philosophy</h3>
<p>Bizinikiwi approaches blockchain development with an acknowledgement of a few self-evident
truths:</p>
<ol>
<li>Society and technology evolves.</li>
<li>Humans are fallible.</li>
</ol>
<p>This makes the task of designing a correct, safe and long-lasting blockchain system hard.</p>
<p>Nonetheless, in strive towards achieving this goal, Bizinikiwi embraces the following:</p>
<ol>
<li>Use of <strong>Rust</strong> as a modern and safe programming language, which limits human error through
various means, most notably memory and type safety.</li>
<li>Bizinikiwi is written from the ground-up with a <em>generic, modular and extensible</em> design.
This ensures that software components can be easily swapped and upgraded. Examples of this is
multiple consensus mechanisms provided by Bizinikiwi, as listed below.</li>
<li>Lastly, the final blockchain system created with the above properties needs to be
upgradeable. In order to achieve this, Bizinikiwi is designed as a meta-protocol, whereby the
application logic of the blockchain (called “Runtime”) is encoded as a WASM blob, and is
stored in the state. The rest of the system (called “node”) acts as the executor of the WASM
blob.</li>
</ol>
<p>In essence, the meta-protocol of all Bizinikiwi based chains is the “Runtime as WASM blob”
accord. This enables the Runtime to become inherently upgradeable, crucially without <a href="https://en.wikipedia.org/wiki/Fork_(blockchain)">forks</a>. The
upgrade is merely a matter of the WASM blob being changed in the state, which is, in principle,
same as updating an accounts balance. Learn more about this in detail in
<a href="../../reference_docs/wasm_meta_protocol/index.html" title="mod pezkuwi_sdk_docs::reference_docs::wasm_meta_protocol"><code>crate::reference_docs::wasm_meta_protocol</code></a>.</p>
<blockquote>
<p>A great analogy for bizinikiwi is the following: Bizinikiwi node is a gaming console, and a
WASM
runtime, possibly created with FRAME is the game being inserted into the console.</p>
</blockquote>
<p><a href="../frame_runtime/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime"><code>frame</code></a>, Bizinikiwis default runtime development library, takes the above safety practices
even further by embracing a declarative programming model whereby correctness is enhanced and
the system is highly configurable through parameterization. Learn more about this in
<a href="../../reference_docs/trait_based_programming/index.html" title="mod pezkuwi_sdk_docs::reference_docs::trait_based_programming"><code>crate::reference_docs::trait_based_programming</code></a>.</p>
<h3 id="how-to-get-started"><a class="doc-anchor" href="#how-to-get-started">§</a>How to Get Started</h3>
<p>Bizinikiwi offers different options at the spectrum of technical freedom &lt;-&gt; development ease.</p>
<ul>
<li>The easiest way to use Bizinikiwi is to use one of the templates (some of which listed at
<a href="../templates/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::templates"><code>crate::pezkuwi_sdk::templates</code></a>) and only tweak the parameters of the runtime or node. This
allows you to launch a blockchain in minutes, but is limited in technical freedom.</li>
<li>Next, most developers wish to develop their custom runtime modules, for which the de-facto way
is <a href="../frame_runtime/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime"><code>frame</code></a>.</li>
<li>Finally, Bizinikiwi is highly configurable at the node side as well, but this is the most
technically demanding.</li>
</ul>
<blockquote>
<p>A notable Bizinikiwi-based blockchain that has built both custom FRAME pallets and custom
node-side components is <a href="https://github.com/Cardinal-Cryptography/aleph-node">https://github.com/Cardinal-Cryptography/aleph-node</a>.</p>
</blockquote>
<pre class="mermaid" style="text-align:center;background: transparent;">
flowchart LR
T[Using a Template] --> P[Writing Your Own FRAME-Based Pallet] --> C[Custom Node]
</pre><script src="https://cdn.jsdelivr.net/npm/mermaid@9.4.3/dist/mermaid.min.js"></script>
<script>
mermaid.initialize({
startOnLoad: false,
theme: 'dark',
flowchart: { useMaxWidth: true, htmlLabels: true },
suppressErrorRendering: true
});
document.addEventListener('DOMContentLoaded', async () => {
const elements = document.querySelectorAll('.mermaid');
for (const el of elements) {
const code = el.textContent;
try {
const { svg } = await mermaid.render('mermaid-' + Math.random().toString(36).substr(2, 9), code);
el.innerHTML = svg;
} catch (e) {
// On error, show as styled code block
el.style.fontFamily = 'monospace';
el.style.whiteSpace = 'pre';
el.style.background = '#1e293b';
el.style.padding = '1rem';
el.style.borderRadius = '8px';
el.style.color = '#94a3b8';
el.style.fontSize = '0.85rem';
el.style.border = '1px solid #334155';
}
}
});
</script>
<h3 id="structure"><a class="doc-anchor" href="#structure">§</a>Structure</h3>
<p>Bizinikiwi contains a large number of crates, therefore it is useful to have an overview of what
they are, and how they are organized. In broad terms, these crates are divided into three
categories:</p>
<ul>
<li><code>sc-*</code> (short for <em>Bizinikiwi-client</em>) crates, located under <code>./client</code> folder. These are all
the crates that lead to the node software. Notable examples are [<code>pezsc_network</code>], various
consensus crates, RPC ([<code>pezsc_rpc_api</code>]) and database ([<code>pezsc_client_db</code>]), all of which are
expected to reside in the node side.</li>
<li><code>sp-*</code> (short for <em>bizinikiwi-primitives</em>) crates, located under <code>./primitives</code> folder. These
are crates that facilitate both the node and the runtime, but are not opinionated about what
framework is using for building the runtime. Notable examples are [<code>pezsp_api</code>] and
[<code>pezsp_io</code>], which form the communication bridge between the node and runtime.</li>
<li><code>pezpallet-*</code> and <code>frame-*</code> crates, located under <code>./frame</code> folder. These are the crates
related to FRAME. See <a href="../frame_runtime/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime"><code>frame</code></a> for more information.</li>
</ul>
<h4 id="wasm-build"><a class="doc-anchor" href="#wasm-build">§</a>WASM Build</h4>
<p>Many of the Bizinikiwi crates, such as entire <code>sp-*</code>, need to compile to both WASM (when a WASM
runtime is being generated) and native (for example, when testing). To achieve this, Bizinikiwi
follows the convention of the Rust community, and uses a <code>feature = "std"</code> to signify that a
crate is being built with the standard library, and is built for native. Otherwise, it is built
for <code>no_std</code>.</p>
<p>This can be summarized in <code>#![cfg_attr(not(feature = "std"), no_std)]</code>, which you can often find
in any Bizinikiwi-based runtime.</p>
<p>Bizinikiwi-based runtimes use [<code>bizinikiwi_wasm_builder</code>] in their <code>build.rs</code> to automatically
build their WASM files as a part of normal build command (e.g. <code>cargo build</code>). Once built, the
wasm file is placed in <code>./target/{debug|release}/wbuild/{runtime_name}/{runtime_name}.wasm</code>.</p>
<p>In order to ensure that the WASM build is <strong>deterministic</strong>, the <a href="https://github.com/paritytech/srtool">Bizinikiwi Runtime Toolbox (srtool)</a> can be used.</p>
<h4 id="anatomy-of-a-binary-crate"><a class="doc-anchor" href="#anatomy-of-a-binary-crate">§</a>Anatomy of a Binary Crate</h4>
<p>From the above, [<code>node_cli</code>]/[<code>pez_kitchensink_runtime</code>] and <code>node-template</code> are essentially
blueprints of a Bizinikiwi-based project, as the name of the latter is implying. Each
Bizinikiwi-based project typically contains the following:</p>
<ul>
<li>
<p>Under <code>./runtime</code>, a <code>./runtime/src/lib.rs</code> which is the top level runtime amalgamator file.
This file typically contains the [<code>pezframe::runtime::prelude::construct_runtime</code>] and
[<code>pezframe::runtime::prelude::impl_runtime_apis</code>] macro calls, which is the final definition of a
runtime.</p>
</li>
<li>
<p>Under <code>./node</code>, a <code>main.rs</code>, which is the starting point, and a <code>./service.rs</code>, which contains
all the node side components. Skimming this file yields an overview of the networking,
database, consensus and similar node side components.</p>
</li>
</ul>
<blockquote>
<p>The above two are conventions, not rules.</p>
</blockquote>
<blockquote>
<p>See <a href="https://github.com/pezkuwichain/pezkuwi-sdk/issues/241">https://github.com/pezkuwichain/pezkuwi-sdk/issues/241</a> for an update on how the node side
components are being amalgamated.</p>
</blockquote>
<h3 id="teyrchain"><a class="doc-anchor" href="#teyrchain">§</a>Teyrchain?</h3>
<p>As noted above, Bizinikiwi is the main engine behind the Pezkuwi ecosystem. One of the ways
through which Pezkuwi can be utilized is by building “teyrchains”, blockchains that are
connected to Pezkuwis shared security.</p>
<p>To build a teyrchain, one could use <a href="../pezcumulus/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::pezcumulus">Pezcumulus</a>, the library on
top of Bizinikiwi, empowering any bizinikiwi-based chain to be a Pezkuwi teyrchain.</p>
<h3 id="where-to-go-next"><a class="doc-anchor" href="#where-to-go-next">§</a>Where To Go Next?</h3>
<p>Additional noteworthy crates within bizinikiwi:</p>
<ul>
<li>RPC APIs of a Bizinikiwi node: [<code>pezsc_rpc_api</code>]/[<code>pezsc_rpc</code>]</li>
<li>CLI Options of a Bizinikiwi node: [<code>pezsc_cli</code>]</li>
<li>All of the consensus related crates provided by Bizinikiwi:
<ul>
<li>[<code>pezsc_consensus_aura</code>]</li>
<li>[<code>pezsc_consensus_babe</code>]</li>
<li>[<code>pezsc_consensus_grandpa</code>]</li>
<li>[<code>pezsc_consensus_beefy</code>] (TODO: @adrian, add some high level docs <a href="https://github.com/pezkuwichain/pezkuwi-sdk/issues/305">https://github.com/pezkuwichain/pezkuwi-sdk/issues/305</a>)</li>
<li>[<code>pezsc_consensus_manual_seal</code>]</li>
<li>[<code>pezsc_consensus_pow</code>]</li>
</ul>
</li>
</ul>
</div></details></section></div></main></body></html>
@@ -0,0 +1 @@
window.SIDEBAR_ITEMS = {};
@@ -0,0 +1,187 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Learn about FRAME, the framework used to build Bizinikiwi runtimes."><title>pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="pezkuwi_sdk_docs" data-themes="" data-resource-suffix="" data-rustdoc-version="1.91.1 (ed61e7d7e 2025-11-07)" data-channel="1.91.1" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-c3e638e9.js" data-settings-js="settings-c38705f0.js" ><script src="../../../static.files/storage-e2aeef58.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../../static.files/main-6dc2a7f3.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-263c88ec.css"></noscript><link rel="icon" href="https://pezkuwichain.io/favicon.ico"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Module frame_runtime</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../pezkuwi_sdk_docs/index.html">pezkuwi_<wbr>sdk_<wbr>docs</a><span class="version">0.0.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module frame_<wbr>runtime</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#frame" title="FRAME">FRAME</a><ul><li><a href="#introduction" title="Introduction">Introduction</a></li><li><a href="#pallets" title="Pallets">Pallets</a></li><li><a href="#runtime" title="Runtime">Runtime</a></li><li><a href="#more-examples" title="More Examples">More Examples</a></li><li><a href="#alternatives-" title="Alternatives 🌈">Alternatives 🌈</a></li></ul></li></ul><h3><a href="#modules">Module Items</a></h3><ul class="block"><li><a href="#modules" title="Modules">Modules</a></li></ul></section><div id="rustdoc-modnav"><h2><a href="../index.html">In pezkuwi_<wbr>sdk_<wbr>docs::<wbr>pezkuwi_<wbr>sdk</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">pezkuwi_sdk_docs</a>::<wbr><a href="../index.html">pezkuwi_sdk</a></div><h1>Module <span>frame_<wbr>runtime</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/frame_runtime.rs.html#1-177">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Learn about FRAME, the framework used to build Bizinikiwi runtimes.</p>
<h2 id="frame"><a class="doc-anchor" href="#frame">§</a>FRAME</h2><div class="example-wrap"><pre class="language-no_compile"><code> ______ ______ ________ ___ __ __ ______
/_____/\ /_____/\ /_______/\ /__//_//_/\ /_____/\
\::::_\/_\:::_ \ \ \::: _ \ \\::\| \| \ \\::::_\/_
\:\/___/\\:(_) ) )_\::(_) \ \\:. \ \\:\/___/\
\:::._\/ \: __ `\ \\:: __ \ \\:.\-/\ \ \\::___\/_
\:\ \ \ \ `\ \ \\:.\ \ \ \\. \ \ \ \\:\____/\
\_\/ \_\/ \_\/ \__\/\__\/ \__\/ \__\/ \_____\/</code></pre></div>
<blockquote>
<p><strong>F</strong>ramework for <strong>R</strong>untime <strong>A</strong>ggregation of <strong>M</strong>odularized <strong>E</strong>ntities: Bizinikiwis
State Transition Function (Runtime) Framework.</p>
</blockquote>
<h3 id="introduction"><a class="doc-anchor" href="#introduction">§</a>Introduction</h3>
<p>As described in <a href="../../reference_docs/wasm_meta_protocol/index.html" title="mod pezkuwi_sdk_docs::reference_docs::wasm_meta_protocol"><code>crate::reference_docs::wasm_meta_protocol</code></a>, at a high-level Bizinikiwi-based
blockchains are composed of two parts:</p>
<ol>
<li>A <em>runtime</em> which represents the state transition function (i.e. “Business Logic”) of a
blockchain, and is encoded as a WASM blob.</li>
<li>A node whose primary purpose is to execute the given runtime.</li>
</ol>
<pre class="mermaid" style="text-align:center;background: transparent;">
graph TB
subgraph Bizinikiwi
direction LR
subgraph Node
end
subgraph Runtime
end
end
</pre><script src="https://cdn.jsdelivr.net/npm/mermaid@9.4.3/dist/mermaid.min.js"></script>
<script>
mermaid.initialize({
startOnLoad: false,
theme: 'dark',
flowchart: { useMaxWidth: true, htmlLabels: true },
suppressErrorRendering: true
});
document.addEventListener('DOMContentLoaded', async () => {
const elements = document.querySelectorAll('.mermaid');
for (const el of elements) {
const code = el.textContent;
try {
const { svg } = await mermaid.render('mermaid-' + Math.random().toString(36).substr(2, 9), code);
el.innerHTML = svg;
} catch (e) {
// On error, show as styled code block
el.style.fontFamily = 'monospace';
el.style.whiteSpace = 'pre';
el.style.background = '#1e293b';
el.style.padding = '1rem';
el.style.borderRadius = '8px';
el.style.color = '#94a3b8';
el.style.fontSize = '0.85rem';
el.style.border = '1px solid #334155';
}
}
});
</script>
<p><em>FRAME is the Bizinikiwis framework of choice to build a runtime.</em></p>
<p>FRAME is composed of two major components, <strong>pallets</strong> and a <strong>runtime</strong>.</p>
<h3 id="pallets"><a class="doc-anchor" href="#pallets">§</a>Pallets</h3>
<p>A pezpallet is a unit of encapsulated logic. It has a clearly defined responsibility and can be
linked to other pallets. In order to be reusable, pallets shipped with FRAME strive to only care
about its own responsibilities and make as few assumptions about the general runtime as
possible. A pezpallet is analogous to a <em>module</em> in the runtime.</p>
<p>A pezpallet is defined as a <code>mod pezpallet</code> wrapped by the [<code>pezframe::pezpallet</code>] macro. Within
this macro, pezpallet components/parts can be defined. Most notable of these parts are:</p>
<ul>
<li><a href="pezframe::pezpallet_macros::config">Config</a>, allowing a pezpallet to make itself configurable
and generic over types, values and such.</li>
<li><a href="pezframe::pezpallet_macros::storage">Storage</a>, allowing a pezpallet to define onchain storage.</li>
<li><a href="pezframe::pezpallet_macros::call">Dispatchable function</a>, allowing a pezpallet to define
extrinsics that are callable by end users, from the outer world.</li>
<li><a href="pezframe::pezpallet_macros::event">Events</a>, allowing a pezpallet to emit events.</li>
<li><a href="pezframe::pezpallet_macros::error">Errors</a>, allowing a pezpallet to emit well-formed errors.</li>
</ul>
<p>Some of these pezpallet components resemble the building blocks of a smart contract. While both
models are programming state transition functions of blockchains, there are crucial differences
between the two. See <a href="../../reference_docs/runtime_vs_smart_contract/index.html" title="mod pezkuwi_sdk_docs::reference_docs::runtime_vs_smart_contract"><code>crate::reference_docs::runtime_vs_smart_contract</code></a> for more.</p>
<p>Most of these components are defined using macros, the full list of which can be found in
[<code>pezframe::pezpallet_macros</code>].</p>
<h4 id="example"><a class="doc-anchor" href="#example">§</a>Example</h4>
<p>The following example showcases a minimal pezpallet.</p>
<div class="example-wrap ignore"><a href="#" class="tooltip" title="This example is not tested"></a><pre class="rust rust-example-rendered"><code><span class="attr">#[pezframe::pezpallet(dev_mode)]
</span><span class="kw">pub mod </span>pezpallet {
<span class="kw">use </span>pezframe::prelude::<span class="kw-2">*</span>;
<span class="doccomment">/// The configuration trait of a pezpallet. Mandatory. Allows a pezpallet to receive types at a
/// later point from the runtime that wishes to contain it. It allows the pezpallet to be
/// parameterized over both types and values.
</span><span class="attr">#[pezpallet::config]
</span><span class="kw">pub trait </span>Config: pezframe_system::Config {
<span class="doccomment">/// A type that is not known now, but the runtime that will contain this pezpallet will
/// know it later, therefore we define it here as an associated type.
</span><span class="attr">#[allow(deprecated)]
</span><span class="kw">type </span>RuntimeEvent: IsType&lt;&lt;<span class="self">Self </span><span class="kw">as </span>pezframe_system::Config&gt;::RuntimeEvent&gt;
+ From&lt;Event&lt;<span class="self">Self</span>&gt;&gt;;
<span class="doccomment">/// A parameterize-able value that we receive later via the `Get&lt;_&gt;` trait.
</span><span class="kw">type </span>ValueParameter: Get&lt;u32&gt;;
<span class="doccomment">/// Similar to [`Config::ValueParameter`], but using `const`. Both are functionally
/// equal, but offer different tradeoffs.
</span><span class="kw">const </span>ANOTHER_VALUE_PARAMETER: u32;
}
<span class="doccomment">/// A mandatory struct in each pezpallet. All functions callable by external users (aka.
/// transactions) must be attached to this type (see [`pezframe::pezpallet_macros::call`]). For
/// convenience, internal (private) functions can also be attached to this type.
</span><span class="attr">#[pezpallet::pezpallet]
</span><span class="kw">pub struct </span>Pezpallet&lt;T&gt;(PhantomData&lt;T&gt;);
<span class="doccomment">/// The events that this pezpallet can emit.
</span><span class="attr">#[pezpallet::event]
</span><span class="kw">pub enum </span>Event&lt;T: Config&gt; {}
<span class="doccomment">/// A storage item that this pezpallet contains. This will be part of the state root trie
/// of the blockchain.
</span><span class="attr">#[pezpallet::storage]
</span><span class="kw">pub type </span>Value&lt;T&gt; = StorageValue&lt;Value = u32&gt;;
<span class="doccomment">/// All *dispatchable* call functions (aka. transactions) are attached to `Pezpallet` in a
/// `impl` block.
</span><span class="attr">#[pezpallet::call]
</span><span class="kw">impl</span>&lt;T: Config&gt; Pezpallet&lt;T&gt; {
<span class="doccomment">/// This will be callable by external users, and has two u32s as a parameter.
</span><span class="kw">pub fn </span>some_dispatchable(
_origin: OriginFor&lt;T&gt;,
_param: u32,
_other_para: u32,
) -&gt; DispatchResult {
<span class="prelude-val">Ok</span>(())
}
}
}</code></pre></div><h3 id="runtime"><a class="doc-anchor" href="#runtime">§</a>Runtime</h3>
<p>A runtime is a collection of pallets that are amalgamated together. Each pezpallet typically has
some configurations (exposed as a <code>trait Config</code>) that needs to be <em>specified</em> in the runtime.
This is done with [<code>pezframe::runtime::prelude::construct_runtime</code>].</p>
<p>A (real) runtime that actually wishes to compile to WASM needs to also implement a set of
runtime-apis. These implementation can be specified using the
[<code>pezframe::runtime::prelude::impl_runtime_apis</code>] macro.</p>
<h4 id="example-1"><a class="doc-anchor" href="#example-1">§</a>Example</h4>
<p>The following example shows a (test) runtime that is composing the pezpallet demonstrated above,
next to the [<code>pezframe::prelude::pezframe_system</code>] pezpallet, into a runtime.</p>
<div class="example-wrap ignore"><a href="#" class="tooltip" title="This example is not tested"></a><pre class="rust rust-example-rendered"><code><span class="kw">pub mod </span>runtime {
<span class="kw">use </span><span class="kw">super</span>::pezpallet <span class="kw">as </span>pezpallet_example;
<span class="kw">use </span>pezframe::{prelude::<span class="kw-2">*</span>, testing_prelude::<span class="kw-2">*</span>};
<span class="comment">// The major macro that amalgamates pallets into `enum Runtime`
</span><span class="macro">construct_runtime!</span>(
<span class="kw">pub enum </span>Runtime {
System: pezframe_system,
Example: pezpallet_example,
}
);
<span class="comment">// These `impl` blocks specify the parameters of each pezpallet's `trait Config`.
</span><span class="attr">#[derive_impl(pezframe_system::config_preludes::TestDefaultConfig)]
</span><span class="kw">impl </span>pezframe_system::Config <span class="kw">for </span>Runtime {
<span class="kw">type </span>Block = MockBlock&lt;<span class="self">Self</span>&gt;;
}
<span class="kw">impl </span>pezpallet_example::Config <span class="kw">for </span>Runtime {
<span class="kw">type </span>RuntimeEvent = RuntimeEvent;
<span class="kw">type </span>ValueParameter = ConstU32&lt;<span class="number">42</span>&gt;;
<span class="kw">const </span>ANOTHER_VALUE_PARAMETER: u32 = <span class="number">42</span>;
}
}</code></pre></div><h3 id="more-examples"><a class="doc-anchor" href="#more-examples">§</a>More Examples</h3>
<p>You can find more FRAME examples that revolve around specific features at
[<code>pezpallet_examples</code>].</p>
<h3 id="alternatives-"><a class="doc-anchor" href="#alternatives-">§</a>Alternatives 🌈</h3>
<p>There is nothing in the Bizinikiwis node side code-base that mandates the use of FRAME. While
FRAME makes it very simple to write Bizinikiwi-based runtimes, it is by no means intended to be
the only one. At the end of the day, any WASM blob that exposes the right set of runtime APIs is
a valid Runtime form the point of view of a Bizinikiwi client (see
<a href="../../reference_docs/wasm_meta_protocol/index.html" title="mod pezkuwi_sdk_docs::reference_docs::wasm_meta_protocol"><code>crate::reference_docs::wasm_meta_protocol</code></a>). Notable examples are:</p>
<ul>
<li>writing a runtime in pure Rust, as done in <a href="https://github.com/JoshOrndorff/frameless-node-template">this template</a>.</li>
<li>writing a runtime in AssemblyScript, as explored in <a href="https://github.com/LimeChain/subsembly">this project</a>.</li>
</ul>
</div></details><h2 id="modules" class="section-header">Modules<a href="#modules" class="anchor">§</a></h2><dl class="item-table"><dt><a class="mod" href="pezpallet/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet">pezpallet</a></dt><dd>The <code>pezpallet</code> module in each FRAME pezpallet hosts the most important items needed
to construct this pezpallet.</dd><dt><a class="mod" href="runtime/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime">runtime</a></dt><dd>A simple runtime that contains the above pezpallet and <code>pezframe_system</code>, the mandatory
pezpallet of all runtimes. This runtime is for testing, but it shares a lot of similarities with
a <em>real</em> runtime.</dd></dl></section></div></main></body></html>
@@ -0,0 +1,6 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="This will be callable by external users, and has two u32s as a parameter."><title>some_dispatchable in pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::dispatchables - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../../../" data-static-root-path="../../../../../static.files/" data-current-crate="pezkuwi_sdk_docs" data-themes="" data-resource-suffix="" data-rustdoc-version="1.91.1 (ed61e7d7e 2025-11-07)" data-channel="1.91.1" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-c3e638e9.js" data-settings-js="settings-c38705f0.js" ><script src="../../../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../../../static.files/main-6dc2a7f3.js"></script><noscript><link rel="stylesheet" href="../../../../../static.files/noscript-263c88ec.css"></noscript><link rel="icon" href="https://pezkuwichain.io/favicon.ico"></head><body class="rustdoc fn"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">some_dispatchable</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../../../pezkuwi_sdk_docs/index.html">pezkuwi_<wbr>sdk_<wbr>docs</a><span class="version">0.0.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">some_<wbr>dispatchable</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#warning-doc-only" title="Warning: Doc-Only">Warning: Doc-Only</a></li></ul></section><div id="rustdoc-modnav"><h2><a href="index.html">In pezkuwi_<wbr>sdk_<wbr>docs::<wbr>pezkuwi_<wbr>sdk::<wbr>frame_<wbr>runtime::<wbr>pezpallet::<wbr>dispatchables</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../../../index.html">pezkuwi_sdk_docs</a>::<wbr><a href="../../../index.html">pezkuwi_sdk</a>::<wbr><a href="../../index.html">frame_runtime</a>::<wbr><a href="../index.html">pezpallet</a>::<wbr><a href="index.html">dispatchables</a></div><h1>Function <span class="fn">some_<wbr>dispatchable</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/frame_runtime.rs.html#97">Source</a> </span></div><pre class="rust item-decl"><code>pub fn some_dispatchable&lt;T: <a class="trait" href="../trait.Config.html" title="trait pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::Config">Config</a>&gt;(_param: <a class="primitive" href="https://doc.rust-lang.org/1.91.1/std/primitive.u32.html">u32</a>, _other_para: <a class="primitive" href="https://doc.rust-lang.org/1.91.1/std/primitive.u32.html">u32</a>)</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>This will be callable by external users, and has two u32s as a parameter.</p>
<h2 id="warning-doc-only"><a class="doc-anchor" href="#warning-doc-only">§</a>Warning: Doc-Only</h2>
<p>This function is an automatically generated, and is doc-only, uncallable
stub. See the real version in
<a href="../struct.Pezpallet.html#method.some_dispatchable" title="associated function pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::Pezpallet::some_dispatchable"><code>Pezpallet::some_dispatchable</code></a>.</p>
</div></details></section></div></main></body></html>
@@ -0,0 +1,6 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Auto-generated docs-only module listing all defined dispatchables for this pezpallet."><title>pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::dispatchables - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../../../" data-static-root-path="../../../../../static.files/" data-current-crate="pezkuwi_sdk_docs" data-themes="" data-resource-suffix="" data-rustdoc-version="1.91.1 (ed61e7d7e 2025-11-07)" data-channel="1.91.1" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-c3e638e9.js" data-settings-js="settings-c38705f0.js" ><script src="../../../../../static.files/storage-e2aeef58.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../../../../static.files/main-6dc2a7f3.js"></script><noscript><link rel="stylesheet" href="../../../../../static.files/noscript-263c88ec.css"></noscript><link rel="icon" href="https://pezkuwichain.io/favicon.ico"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Module dispatchables</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../../../pezkuwi_sdk_docs/index.html">pezkuwi_<wbr>sdk_<wbr>docs</a><span class="version">0.0.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module dispatchables</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#warning-doc-only" title="Warning: Doc-Only">Warning: Doc-Only</a></li></ul><h3><a href="#functions">Module Items</a></h3><ul class="block"><li><a href="#functions" title="Functions">Functions</a></li></ul></section><div id="rustdoc-modnav"><h2><a href="../index.html">In pezkuwi_<wbr>sdk_<wbr>docs::<wbr>pezkuwi_<wbr>sdk::<wbr>frame_<wbr>runtime::<wbr>pezpallet</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../../../index.html">pezkuwi_sdk_docs</a>::<wbr><a href="../../../index.html">pezkuwi_sdk</a>::<wbr><a href="../../index.html">frame_runtime</a>::<wbr><a href="../index.html">pezpallet</a></div><h1>Module <span>dispatchables</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/frame_runtime.rs.html#97">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Auto-generated docs-only module listing all defined dispatchables for this pezpallet.</p>
<h2 id="warning-doc-only"><a class="doc-anchor" href="#warning-doc-only">§</a>Warning: Doc-Only</h2>
<p>Members of this module cannot be used directly and are only provided for documentation
purposes. To see the real version of each dispatchable, look for them in <a href="../struct.Pezpallet.html" title="struct pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::Pezpallet"><code>Pezpallet</code></a> or
<a href="../enum.Call.html" title="enum pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::Call"><code>Call</code></a>.</p>
</div></details><h2 id="functions" class="section-header">Functions<a href="#functions" class="anchor">§</a></h2><dl class="item-table"><dt><a class="fn" href="fn.some_dispatchable.html" title="fn pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::dispatchables::some_dispatchable">some_<wbr>dispatchable</a></dt><dd>This will be callable by external users, and has two u32s as a parameter.</dd></dl></section></div></main></body></html>
@@ -0,0 +1 @@
window.SIDEBAR_ITEMS = {"fn":["some_dispatchable"]};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,26 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="The `pezpallet` module in each FRAME pezpallet hosts the most important items needed to construct this pezpallet."><title>pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="pezkuwi_sdk_docs" data-themes="" data-resource-suffix="" data-rustdoc-version="1.91.1 (ed61e7d7e 2025-11-07)" data-channel="1.91.1" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-c3e638e9.js" data-settings-js="settings-c38705f0.js" ><script src="../../../../static.files/storage-e2aeef58.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../../../static.files/main-6dc2a7f3.js"></script><noscript><link rel="stylesheet" href="../../../../static.files/noscript-263c88ec.css"></noscript><link rel="icon" href="https://pezkuwichain.io/favicon.ico"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Module pezpallet</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../../pezkuwi_sdk_docs/index.html">pezkuwi_<wbr>sdk_<wbr>docs</a><span class="version">0.0.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module pezpallet</a></h2><h3><a href="#modules">Module Items</a></h3><ul class="block"><li><a href="#modules" title="Modules">Modules</a></li><li><a href="#structs" title="Structs">Structs</a></li><li><a href="#enums" title="Enums">Enums</a></li><li><a href="#traits" title="Traits">Traits</a></li><li><a href="#types" title="Type Aliases">Type Aliases</a></li></ul></section><div id="rustdoc-modnav"><h2><a href="../index.html">In pezkuwi_<wbr>sdk_<wbr>docs::<wbr>pezkuwi_<wbr>sdk::<wbr>frame_<wbr>runtime</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../../index.html">pezkuwi_sdk_docs</a>::<wbr><a href="../../index.html">pezkuwi_sdk</a>::<wbr><a href="../index.html">frame_runtime</a></div><h1>Module <span>pezpallet</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/frame_runtime.rs.html#98">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The <code>pezpallet</code> module in each FRAME pezpallet hosts the most important items needed
to construct this pezpallet.</p>
<p>The main components of this pezpallet are:</p>
<ul>
<li>[<code>Pezpallet</code>], which implements all of the dispatchable extrinsics of the pezpallet, among
other public functions.
<ul>
<li>The subset of the functions that are dispatchable can be identified either in the
[<code>dispatchables</code>] module or in the [<code>Call</code>] enum.</li>
</ul>
</li>
<li>[<code>storage_types</code>], which contains the list of all types that are representing a
storage item. Otherwise, all storage items are listed among <a href="#types"><em>Type Definitions</em></a>.</li>
<li>[<code>Config</code>], which contains the configuration trait of this pezpallet.</li>
<li>[<code>Event</code>] and [<code>Error</code>], which are listed among the <a href="#enums"><em>Enums</em></a>.</li>
</ul>
<p>A FRAME based pezpallet. This <code>mod</code> is the entry point for everything else. All
<code>#[pezpallet::xxx]</code> macros must be defined in this <code>mod</code>. Although, frame also provides an
experimental feature to break these parts into different <code>mod</code>s. See [<code>pezpallet_examples</code>] for
more.</p>
</div></details><h2 id="modules" class="section-header">Modules<a href="#modules" class="anchor">§</a></h2><dl class="item-table"><dt><a class="mod" href="dispatchables/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::dispatchables">dispatchables</a></dt><dd>Auto-generated docs-only module listing all defined dispatchables for this pezpallet.</dd><dt><a class="mod" href="storage_types/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::storage_types">storage_<wbr>types</a></dt><dd>Auto-generated docs-only module listing all (public and private) defined storage types
for this pezpallet.</dd></dl><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><dl class="item-table"><dt><a class="struct" href="struct.Pezpallet.html" title="struct pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::Pezpallet">Pezpallet</a></dt><dd>A mandatory struct in each pezpallet. All functions callable by external users (aka.
transactions) must be attached to this type (see [<code>pezframe::pezpallet_macros::call</code>]). For
convenience, internal (private) functions can also be attached to this type.</dd></dl><h2 id="enums" class="section-header">Enums<a href="#enums" class="anchor">§</a></h2><dl class="item-table"><dt><a class="enum" href="enum.Call.html" title="enum pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::Call">Call</a></dt><dd>All <em>dispatchable</em> call functions (aka. transactions) are attached to <code>Pezpallet</code> in a
<code>impl</code> block.</dd><dt><a class="enum" href="enum.Event.html" title="enum pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::Event">Event</a></dt><dd>The events that this pezpallet can emit.</dd></dl><h2 id="traits" class="section-header">Traits<a href="#traits" class="anchor">§</a></h2><dl class="item-table"><dt><a class="trait" href="trait.Config.html" title="trait pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::Config">Config</a></dt><dd>Configuration trait of this pezpallet.</dd></dl><h2 id="types" class="section-header">Type Aliases<a href="#types" class="anchor">§</a></h2><dl class="item-table"><dt><a class="type" href="type.Module.html" title="type pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::Module">Module</a><wbr><span class="stab deprecated" title="">Deprecated</span></dt><dd>Type alias to <code>Pezpallet</code>, to be used by <code>construct_runtime</code>.</dd><dt><a class="type" href="type.Value.html" title="type pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::Value">Value</a></dt><dd>A storage item that this pezpallet contains. This will be part of the state root trie
of the blockchain.</dd></dl></section></div></main></body></html>
@@ -0,0 +1 @@
window.SIDEBAR_ITEMS = {"enum":["Call","Event"],"mod":["dispatchables","storage_types"],"struct":["Pezpallet"],"trait":["Config"],"type":["Module","Value"]};
@@ -0,0 +1,9 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Auto-generated docs-only module listing all (public and private) defined storage types for this pezpallet."><title>pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::storage_types - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../../../" data-static-root-path="../../../../../static.files/" data-current-crate="pezkuwi_sdk_docs" data-themes="" data-resource-suffix="" data-rustdoc-version="1.91.1 (ed61e7d7e 2025-11-07)" data-channel="1.91.1" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-c3e638e9.js" data-settings-js="settings-c38705f0.js" ><script src="../../../../../static.files/storage-e2aeef58.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../../../../static.files/main-6dc2a7f3.js"></script><noscript><link rel="stylesheet" href="../../../../../static.files/noscript-263c88ec.css"></noscript><link rel="icon" href="https://pezkuwichain.io/favicon.ico"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Module storage_types</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../../../pezkuwi_sdk_docs/index.html">pezkuwi_<wbr>sdk_<wbr>docs</a><span class="version">0.0.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module storage_<wbr>types</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#warning-doc-only" title="Warning: Doc-Only">Warning: Doc-Only</a></li></ul><h3><a href="#structs">Module Items</a></h3><ul class="block"><li><a href="#structs" title="Structs">Structs</a></li></ul></section><div id="rustdoc-modnav"><h2><a href="../index.html">In pezkuwi_<wbr>sdk_<wbr>docs::<wbr>pezkuwi_<wbr>sdk::<wbr>frame_<wbr>runtime::<wbr>pezpallet</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../../../index.html">pezkuwi_sdk_docs</a>::<wbr><a href="../../../index.html">pezkuwi_sdk</a>::<wbr><a href="../../index.html">frame_runtime</a>::<wbr><a href="../index.html">pezpallet</a></div><h1>Module <span>storage_<wbr>types</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/frame_runtime.rs.html#97">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Auto-generated docs-only module listing all (public and private) defined storage types
for this pezpallet.</p>
<h2 id="warning-doc-only"><a class="doc-anchor" href="#warning-doc-only">§</a>Warning: Doc-Only</h2>
<p>Members of this module cannot be used directly and are only provided for documentation
purposes.</p>
<p>To see the actual storage type, find a struct with the same name at the root of the
pezpallet, in the list of <a href="../index.html#types"><em>Type Definitions</em></a>.</p>
</div></details><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><dl class="item-table"><dt><a class="struct" href="struct.Value.html" title="struct pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::storage_types::Value">Value</a></dt><dd>A storage item that this pezpallet contains. This will be part of the state root trie
of the blockchain.</dd></dl></section></div></main></body></html>
@@ -0,0 +1 @@
window.SIDEBAR_ITEMS = {"struct":["Value"]};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,19 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Configuration trait of this pezpallet."><title>Config in pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="pezkuwi_sdk_docs" data-themes="" data-resource-suffix="" data-rustdoc-version="1.91.1 (ed61e7d7e 2025-11-07)" data-channel="1.91.1" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-c3e638e9.js" data-settings-js="settings-c38705f0.js" ><script src="../../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../../static.files/main-6dc2a7f3.js"></script><noscript><link rel="stylesheet" href="../../../../static.files/noscript-263c88ec.css"></noscript><link rel="icon" href="https://pezkuwichain.io/favicon.ico"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Config</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../../pezkuwi_sdk_docs/index.html">pezkuwi_<wbr>sdk_<wbr>docs</a><span class="version">0.0.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Config</a></h2><h3><a href="#required-associated-consts">Required Associated Constants</a></h3><ul class="block"><li><a href="#associatedconstant.ANOTHER_VALUE_PARAMETER" title="ANOTHER_VALUE_PARAMETER">ANOTHER_VALUE_PARAMETER</a></li></ul><h3><a href="#required-associated-types">Required Associated Types</a></h3><ul class="block"><li><a href="#associatedtype.RuntimeEvent" title="RuntimeEvent">RuntimeEvent</a></li><li><a href="#associatedtype.ValueParameter" title="ValueParameter">ValueParameter</a></li></ul><h3><a href="#dyn-compatibility">Dyn Compatibility</a></h3><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In pezkuwi_<wbr>sdk_<wbr>docs::<wbr>pezkuwi_<wbr>sdk::<wbr>frame_<wbr>runtime::<wbr>pezpallet</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../../index.html">pezkuwi_sdk_docs</a>::<wbr><a href="../../index.html">pezkuwi_sdk</a>::<wbr><a href="../index.html">frame_runtime</a>::<wbr><a href="index.html">pezpallet</a></div><h1>Trait <span class="trait">Config</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/frame_runtime.rs.html#105-118">Source</a> </span></div><pre class="rust item-decl"><code>pub trait Config: Config + Config&lt;RuntimeEvent: <a class="trait" href="https://doc.rust-lang.org/1.91.1/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="enum" href="enum.Event.html" title="enum pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::Event">Event</a>&lt;Self&gt;&gt;&gt; {
type <a href="#associatedtype.RuntimeEvent" class="associatedtype">RuntimeEvent</a>: IsType&lt;&lt;Self as Config&gt;::RuntimeEvent&gt; + <a class="trait" href="https://doc.rust-lang.org/1.91.1/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="enum" href="enum.Event.html" title="enum pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::Event">Event</a>&lt;Self&gt;&gt;;
type <a href="#associatedtype.ValueParameter" class="associatedtype">ValueParameter</a>: Get&lt;<a class="primitive" href="https://doc.rust-lang.org/1.91.1/std/primitive.u32.html">u32</a>&gt;;
const <a href="#associatedconstant.ANOTHER_VALUE_PARAMETER" class="constant">ANOTHER_VALUE_PARAMETER</a>: <a class="primitive" href="https://doc.rust-lang.org/1.91.1/std/primitive.u32.html">u32</a>;
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Configuration trait of this pezpallet.</p>
<p>The main purpose of this trait is to act as an interface between this pezpallet and the runtime in
which it is embedded in. A type, function, or constant in this trait is essentially left to be
configured by the runtime that includes this pezpallet.</p>
<p>Consequently, a runtime that wants to include this pezpallet must implement this trait.
The configuration trait of a pezpallet. Mandatory. Allows a pezpallet to receive types at a
later point from the runtime that wishes to contain it. It allows the pezpallet to be
parameterized over both types and values.</p>
</div></details><h2 id="required-associated-consts" class="section-header">Required Associated Constants<a href="#required-associated-consts" class="anchor">§</a></h2><div class="methods"><details class="toggle" open><summary><section id="associatedconstant.ANOTHER_VALUE_PARAMETER" class="method"><a class="src rightside" href="../../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/frame_runtime.rs.html#117">Source</a><h4 class="code-header">const <a href="#associatedconstant.ANOTHER_VALUE_PARAMETER" class="constant">ANOTHER_VALUE_PARAMETER</a>: <a class="primitive" href="https://doc.rust-lang.org/1.91.1/std/primitive.u32.html">u32</a></h4></section></summary><div class="docblock"><p>Similar to <a href="trait.Config.html#associatedtype.ValueParameter" title="associated type pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::Config::ValueParameter"><code>Config::ValueParameter</code></a>, but using <code>const</code>. Both are functionally
equal, but offer different tradeoffs.</p>
</div></details></div><h2 id="required-associated-types" class="section-header">Required Associated Types<a href="#required-associated-types" class="anchor">§</a></h2><div class="methods"><details class="toggle" open><summary><section id="associatedtype.RuntimeEvent" class="method"><a class="src rightside" href="../../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/frame_runtime.rs.html#109-110">Source</a><h4 class="code-header">type <a href="#associatedtype.RuntimeEvent" class="associatedtype">RuntimeEvent</a>: IsType&lt;&lt;Self as Config&gt;::RuntimeEvent&gt; + <a class="trait" href="https://doc.rust-lang.org/1.91.1/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="enum" href="enum.Event.html" title="enum pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::Event">Event</a>&lt;Self&gt;&gt;</h4></section></summary><div class="docblock"><p>A type that is not known now, but the runtime that will contain this pezpallet will
know it later, therefore we define it here as an associated type.</p>
</div></details><details class="toggle" open><summary><section id="associatedtype.ValueParameter" class="method"><a class="src rightside" href="../../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/frame_runtime.rs.html#113">Source</a><h4 class="code-header">type <a href="#associatedtype.ValueParameter" class="associatedtype">ValueParameter</a>: Get&lt;<a class="primitive" href="https://doc.rust-lang.org/1.91.1/std/primitive.u32.html">u32</a>&gt;</h4></section></summary><div class="docblock"><p>A parameterize-able value that we receive later via the <code>Get&lt;_&gt;</code> trait.</p>
</div></details></div><h2 id="dyn-compatibility" class="section-header">Dyn Compatibility<a href="#dyn-compatibility" class="anchor">§</a></h2><div class="dyn-compatibility-info"><p>This trait is <b>not</b> <a href="https://doc.rust-lang.org/1.91.1/reference/items/traits.html#dyn-compatibility">dyn compatible</a>.</p><p><i>In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.</i></p></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><details class="toggle implementors-toggle"><summary><section id="impl-Config-for-Runtime" class="impl"><a class="src rightside" href="../../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/frame_runtime.rs.html#172-176">Source</a><a href="#impl-Config-for-Runtime" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.Config.html" title="trait pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::Config">Config</a> for <a class="struct" href="../runtime/struct.Runtime.html" title="struct pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::Runtime">Runtime</a></h3></section></summary><div class="impl-items"><section id="associatedconstant.ANOTHER_VALUE_PARAMETER-1" class="associatedconstant trait-impl"><a class="src rightside" href="../../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/frame_runtime.rs.html#175">Source</a><a href="#associatedconstant.ANOTHER_VALUE_PARAMETER-1" class="anchor">§</a><h4 class="code-header">const <a href="#associatedconstant.ANOTHER_VALUE_PARAMETER" class="constant">ANOTHER_VALUE_PARAMETER</a>: <a class="primitive" href="https://doc.rust-lang.org/1.91.1/std/primitive.u32.html">u32</a> = 42u32</h4></section><section id="associatedtype.RuntimeEvent-1" class="associatedtype trait-impl"><a class="src rightside" href="../../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/frame_runtime.rs.html#173">Source</a><a href="#associatedtype.RuntimeEvent-1" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.RuntimeEvent" class="associatedtype">RuntimeEvent</a> = <a class="enum" href="../runtime/enum.RuntimeEvent.html" title="enum pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::RuntimeEvent">RuntimeEvent</a></h4></section><section id="associatedtype.ValueParameter-1" class="associatedtype trait-impl"><a class="src rightside" href="../../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/frame_runtime.rs.html#174">Source</a><a href="#associatedtype.ValueParameter-1" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.ValueParameter" class="associatedtype">ValueParameter</a> = ConstU32&lt;42&gt;</h4></section></div></details></div><script src="../../../../trait.impl/pezkuwi_sdk_docs/pezkuwi_sdk/frame_runtime/pezpallet/trait.Config.js" async></script></section></div></main></body></html>
@@ -0,0 +1,3 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Type alias to `Pezpallet`, to be used by `construct_runtime`."><title>Module in pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="pezkuwi_sdk_docs" data-themes="" data-resource-suffix="" data-rustdoc-version="1.91.1 (ed61e7d7e 2025-11-07)" data-channel="1.91.1" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-c3e638e9.js" data-settings-js="settings-c38705f0.js" ><script src="../../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../../static.files/main-6dc2a7f3.js"></script><noscript><link rel="stylesheet" href="../../../../static.files/noscript-263c88ec.css"></noscript><link rel="icon" href="https://pezkuwichain.io/favicon.ico"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Module</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../../pezkuwi_sdk_docs/index.html">pezkuwi_<wbr>sdk_<wbr>docs</a><span class="version">0.0.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module</a></h2><h3><a href="#aliased-type">Aliased Type</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In pezkuwi_<wbr>sdk_<wbr>docs::<wbr>pezkuwi_<wbr>sdk::<wbr>frame_<wbr>runtime::<wbr>pezpallet</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../../index.html">pezkuwi_sdk_docs</a>::<wbr><a href="../../index.html">pezkuwi_sdk</a>::<wbr><a href="../index.html">frame_runtime</a>::<wbr><a href="index.html">pezpallet</a></div><h1>Type Alias <span class="type">Module</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/frame_runtime.rs.html#123">Source</a> </span></div><pre class="rust item-decl"><code>pub type Module&lt;T&gt; = <a class="struct" href="struct.Pezpallet.html" title="struct pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::Pezpallet">Pezpallet</a>&lt;T&gt;;</code></pre><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated: use <code>Pezpallet</code> instead</span></div></span><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Type alias to <code>Pezpallet</code>, to be used by <code>construct_runtime</code>.</p>
<p>Generated by <code>pezpallet</code> attribute macro.</p>
</div></details><h2 id="aliased-type" class="section-header">Aliased Type<a href="#aliased-type" class="anchor">§</a></h2><pre class="rust item-decl"><code>pub struct Module&lt;T&gt;(<span class="comment">/* private fields */</span>);</code></pre><script src="../../../../type.impl/pezkuwi_sdk_docs/pezkuwi_sdk/frame_runtime/pezpallet/struct.Pezpallet.js" data-self-path="pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::Module" async></script></section></div></main></body></html>
@@ -0,0 +1,4 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="A storage item that this pezpallet contains. This will be part of the state root trie of the blockchain."><title>Value in pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="pezkuwi_sdk_docs" data-themes="" data-resource-suffix="" data-rustdoc-version="1.91.1 (ed61e7d7e 2025-11-07)" data-channel="1.91.1" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-c3e638e9.js" data-settings-js="settings-c38705f0.js" ><script src="../../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../../static.files/main-6dc2a7f3.js"></script><noscript><link rel="stylesheet" href="../../../../static.files/noscript-263c88ec.css"></noscript><link rel="icon" href="https://pezkuwichain.io/favicon.ico"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Value</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../../pezkuwi_sdk_docs/index.html">pezkuwi_<wbr>sdk_<wbr>docs</a><span class="version">0.0.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Value</a></h2><h3><a href="#aliased-type">Aliased Type</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In pezkuwi_<wbr>sdk_<wbr>docs::<wbr>pezkuwi_<wbr>sdk::<wbr>frame_<wbr>runtime::<wbr>pezpallet</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../../index.html">pezkuwi_sdk_docs</a>::<wbr><a href="../../index.html">pezkuwi_sdk</a>::<wbr><a href="../index.html">frame_runtime</a>::<wbr><a href="index.html">pezpallet</a></div><h1>Type Alias <span class="type">Value</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/frame_runtime.rs.html#133">Source</a> </span></div><pre class="rust item-decl"><code>pub type Value&lt;T&gt; = StorageValue&lt;_GeneratedPrefixForStorageValue&lt;T&gt;, <a class="primitive" href="https://doc.rust-lang.org/1.91.1/std/primitive.u32.html">u32</a>, OptionQuery, GetDefault&gt;;</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A storage item that this pezpallet contains. This will be part of the state root trie
of the blockchain.</p>
<p>Storage type is [<code>StorageValue</code>] with value type <code>u32</code>.</p>
</div></details><h2 id="aliased-type" class="section-header">Aliased Type<a href="#aliased-type" class="anchor">§</a></h2><pre class="rust item-decl"><code>pub struct Value&lt;T&gt;(<span class="comment">/* private fields */</span>);</code></pre><script src="../../../../type.impl/pezframe_support/storage/types/value/struct.StorageValue.js" data-self-path="pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::Value" async></script></section></div></main></body></html>
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,6 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="A simple runtime that contains the above pezpallet and `pezframe_system`, the mandatory pezpallet of all runtimes. This runtime is for testing, but it shares a lot of similarities with a real runtime."><title>pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="pezkuwi_sdk_docs" data-themes="" data-resource-suffix="" data-rustdoc-version="1.91.1 (ed61e7d7e 2025-11-07)" data-channel="1.91.1" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-c3e638e9.js" data-settings-js="settings-c38705f0.js" ><script src="../../../../static.files/storage-e2aeef58.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../../../static.files/main-6dc2a7f3.js"></script><noscript><link rel="stylesheet" href="../../../../static.files/noscript-263c88ec.css"></noscript><link rel="icon" href="https://pezkuwichain.io/favicon.ico"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Module runtime</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../../pezkuwi_sdk_docs/index.html">pezkuwi_<wbr>sdk_<wbr>docs</a><span class="version">0.0.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module runtime</a></h2><h3><a href="#structs">Module Items</a></h3><ul class="block"><li><a href="#structs" title="Structs">Structs</a></li><li><a href="#enums" title="Enums">Enums</a></li><li><a href="#types" title="Type Aliases">Type Aliases</a></li></ul></section><div id="rustdoc-modnav"><h2><a href="../index.html">In pezkuwi_<wbr>sdk_<wbr>docs::<wbr>pezkuwi_<wbr>sdk::<wbr>frame_<wbr>runtime</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../../index.html">pezkuwi_sdk_docs</a>::<wbr><a href="../../index.html">pezkuwi_sdk</a>::<wbr><a href="../index.html">frame_runtime</a></div><h1>Module <span>runtime</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/frame_runtime.rs.html#154">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A simple runtime that contains the above pezpallet and <code>pezframe_system</code>, the mandatory
pezpallet of all runtimes. This runtime is for testing, but it shares a lot of similarities with
a <em>real</em> runtime.</p>
</div></details><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><dl class="item-table"><dt><a class="struct" href="struct.PalletInfo.html" title="struct pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::PalletInfo">Pallet<wbr>Info</a></dt><dd>Provides an implementation of <code>PalletInfo</code> to provide information
about the pezpallet setup in the runtime.</dd><dt><a class="struct" href="struct.Runtime.html" title="struct pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::Runtime">Runtime</a></dt><dt><a class="struct" href="struct.RuntimeGenesisConfig.html" title="struct pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::RuntimeGenesisConfig">Runtime<wbr>Genesis<wbr>Config</a></dt><dt><a class="struct" href="struct.RuntimeOrigin.html" title="struct pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::RuntimeOrigin">Runtime<wbr>Origin</a></dt><dd>The runtime origin type representing the origin of a call.</dd></dl><h2 id="enums" class="section-header">Enums<a href="#enums" class="anchor">§</a></h2><dl class="item-table"><dt><a class="enum" href="enum.OriginCaller.html" title="enum pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::OriginCaller">Origin<wbr>Caller</a></dt><dt><a class="enum" href="enum.RuntimeCall.html" title="enum pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::RuntimeCall">Runtime<wbr>Call</a></dt><dd>The aggregated runtime call type.</dd><dt><a class="enum" href="enum.RuntimeError.html" title="enum pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::RuntimeError">Runtime<wbr>Error</a></dt><dt><a class="enum" href="enum.RuntimeEvent.html" title="enum pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::RuntimeEvent">Runtime<wbr>Event</a></dt><dt><a class="enum" href="enum.RuntimeFreezeReason.html" title="enum pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::RuntimeFreezeReason">Runtime<wbr>Freeze<wbr>Reason</a></dt><dd>A reason for placing a freeze on funds.</dd><dt><a class="enum" href="enum.RuntimeHoldReason.html" title="enum pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::RuntimeHoldReason">Runtime<wbr>Hold<wbr>Reason</a></dt><dd>A reason for placing a hold on funds.</dd><dt><a class="enum" href="enum.RuntimeLockId.html" title="enum pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::RuntimeLockId">Runtime<wbr>Lock<wbr>Id</a></dt><dd>An identifier for each lock placed on funds.</dd><dt><a class="enum" href="enum.RuntimeSlashReason.html" title="enum pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::RuntimeSlashReason">Runtime<wbr>Slash<wbr>Reason</a></dt><dd>A reason for slashing funds.</dd><dt><a class="enum" href="enum.RuntimeTask.html" title="enum pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::RuntimeTask">Runtime<wbr>Task</a></dt><dd>An aggregation of all <code>Task</code> enums across all pallets included in the current runtime.</dd><dt><a class="enum" href="enum.RuntimeViewFunction.html" title="enum pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::RuntimeViewFunction">Runtime<wbr>View<wbr>Function</a></dt><dd>Runtime query type.</dd></dl><h2 id="types" class="section-header">Type Aliases<a href="#types" class="anchor">§</a></h2><dl class="item-table"><dt><a class="type" href="type.AllPalletsWithSystem.html" title="type pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::AllPalletsWithSystem">AllPallets<wbr>With<wbr>System</a></dt><dd>All pallets included in the runtime as a nested tuple of types.</dd><dt><a class="type" href="type.AllPalletsWithoutSystem.html" title="type pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::AllPalletsWithoutSystem">AllPallets<wbr>Without<wbr>System</a></dt><dd>All pallets included in the runtime as a nested tuple of types.
Excludes the System pezpallet.</dd><dt><a class="type" href="type.Example.html" title="type pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::Example">Example</a></dt><dt><a class="type" href="type.System.html" title="type pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::System">System</a></dt><dt><a class="type" href="type.SystemConfig.html" title="type pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::SystemConfig">System<wbr>Config</a></dt></dl></section></div></main></body></html>
@@ -0,0 +1 @@
window.SIDEBAR_ITEMS = {"enum":["OriginCaller","RuntimeCall","RuntimeError","RuntimeEvent","RuntimeFreezeReason","RuntimeHoldReason","RuntimeLockId","RuntimeSlashReason","RuntimeTask","RuntimeViewFunction"],"struct":["PalletInfo","Runtime","RuntimeGenesisConfig","RuntimeOrigin"],"type":["AllPalletsWithSystem","AllPalletsWithoutSystem","Example","System","SystemConfig"]};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,2 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="All pallets included in the runtime as a nested tuple of types."><title>AllPalletsWithSystem in pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="pezkuwi_sdk_docs" data-themes="" data-resource-suffix="" data-rustdoc-version="1.91.1 (ed61e7d7e 2025-11-07)" data-channel="1.91.1" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-c3e638e9.js" data-settings-js="settings-c38705f0.js" ><script src="../../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../../static.files/main-6dc2a7f3.js"></script><noscript><link rel="stylesheet" href="../../../../static.files/noscript-263c88ec.css"></noscript><link rel="icon" href="https://pezkuwichain.io/favicon.ico"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">AllPalletsWithSystem</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../../pezkuwi_sdk_docs/index.html">pezkuwi_<wbr>sdk_<wbr>docs</a><span class="version">0.0.2</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In pezkuwi_<wbr>sdk_<wbr>docs::<wbr>pezkuwi_<wbr>sdk::<wbr>frame_<wbr>runtime::<wbr>runtime</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../../index.html">pezkuwi_sdk_docs</a>::<wbr><a href="../../index.html">pezkuwi_sdk</a>::<wbr><a href="../index.html">frame_runtime</a>::<wbr><a href="index.html">runtime</a></div><h1>Type Alias <span class="type">AllPallets<wbr>With<wbr>System</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/frame_runtime.rs.html#159-164">Source</a> </span></div><pre class="rust item-decl"><code>pub type AllPalletsWithSystem = (<a class="type" href="type.System.html" title="type pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::System">System</a>, <a class="type" href="type.Example.html" title="type pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::Example">Example</a>);</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>All pallets included in the runtime as a nested tuple of types.</p>
</div></details></section></div></main></body></html>
@@ -0,0 +1,3 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="All pallets included in the runtime as a nested tuple of types. Excludes the System pezpallet."><title>AllPalletsWithoutSystem in pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="pezkuwi_sdk_docs" data-themes="" data-resource-suffix="" data-rustdoc-version="1.91.1 (ed61e7d7e 2025-11-07)" data-channel="1.91.1" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-c3e638e9.js" data-settings-js="settings-c38705f0.js" ><script src="../../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../../static.files/main-6dc2a7f3.js"></script><noscript><link rel="stylesheet" href="../../../../static.files/noscript-263c88ec.css"></noscript><link rel="icon" href="https://pezkuwichain.io/favicon.ico"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">AllPalletsWithoutSystem</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../../pezkuwi_sdk_docs/index.html">pezkuwi_<wbr>sdk_<wbr>docs</a><span class="version">0.0.2</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In pezkuwi_<wbr>sdk_<wbr>docs::<wbr>pezkuwi_<wbr>sdk::<wbr>frame_<wbr>runtime::<wbr>runtime</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../../index.html">pezkuwi_sdk_docs</a>::<wbr><a href="../../index.html">pezkuwi_sdk</a>::<wbr><a href="../index.html">frame_runtime</a>::<wbr><a href="index.html">runtime</a></div><h1>Type Alias <span class="type">AllPallets<wbr>Without<wbr>System</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/frame_runtime.rs.html#159-164">Source</a> </span></div><pre class="rust item-decl"><code>pub type AllPalletsWithoutSystem = (<a class="type" href="type.Example.html" title="type pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::Example">Example</a>,);</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>All pallets included in the runtime as a nested tuple of types.
Excludes the System pezpallet.</p>
</div></details></section></div></main></body></html>
@@ -0,0 +1 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `Example` type in crate `pezkuwi_sdk_docs`."><title>Example in pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="pezkuwi_sdk_docs" data-themes="" data-resource-suffix="" data-rustdoc-version="1.91.1 (ed61e7d7e 2025-11-07)" data-channel="1.91.1" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-c3e638e9.js" data-settings-js="settings-c38705f0.js" ><script src="../../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../../static.files/main-6dc2a7f3.js"></script><noscript><link rel="stylesheet" href="../../../../static.files/noscript-263c88ec.css"></noscript><link rel="icon" href="https://pezkuwichain.io/favicon.ico"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Example</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../../pezkuwi_sdk_docs/index.html">pezkuwi_<wbr>sdk_<wbr>docs</a><span class="version">0.0.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Example</a></h2><h3><a href="#aliased-type">Aliased Type</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In pezkuwi_<wbr>sdk_<wbr>docs::<wbr>pezkuwi_<wbr>sdk::<wbr>frame_<wbr>runtime::<wbr>runtime</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../../index.html">pezkuwi_sdk_docs</a>::<wbr><a href="../../index.html">pezkuwi_sdk</a>::<wbr><a href="../index.html">frame_runtime</a>::<wbr><a href="index.html">runtime</a></div><h1>Type Alias <span class="type">Example</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/frame_runtime.rs.html#159-164">Source</a> </span></div><pre class="rust item-decl"><code>pub type Example = <a class="struct" href="../pezpallet/struct.Pezpallet.html" title="struct pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::pezpallet::Pezpallet">Pezpallet</a>&lt;<a class="struct" href="struct.Runtime.html" title="struct pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::Runtime">Runtime</a>&gt;;</code></pre><h2 id="aliased-type" class="section-header">Aliased Type<a href="#aliased-type" class="anchor">§</a></h2><pre class="rust item-decl"><code>pub struct Example(<span class="comment">/* private fields */</span>);</code></pre><script src="../../../../type.impl/pezkuwi_sdk_docs/pezkuwi_sdk/frame_runtime/pezpallet/struct.Pezpallet.js" data-self-path="pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::Example" async></script></section></div></main></body></html>
@@ -0,0 +1 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `System` type in crate `pezkuwi_sdk_docs`."><title>System in pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="pezkuwi_sdk_docs" data-themes="" data-resource-suffix="" data-rustdoc-version="1.91.1 (ed61e7d7e 2025-11-07)" data-channel="1.91.1" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-c3e638e9.js" data-settings-js="settings-c38705f0.js" ><script src="../../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../../static.files/main-6dc2a7f3.js"></script><noscript><link rel="stylesheet" href="../../../../static.files/noscript-263c88ec.css"></noscript><link rel="icon" href="https://pezkuwichain.io/favicon.ico"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">System</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../../pezkuwi_sdk_docs/index.html">pezkuwi_<wbr>sdk_<wbr>docs</a><span class="version">0.0.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">System</a></h2><h3><a href="#aliased-type">Aliased Type</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In pezkuwi_<wbr>sdk_<wbr>docs::<wbr>pezkuwi_<wbr>sdk::<wbr>frame_<wbr>runtime::<wbr>runtime</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../../index.html">pezkuwi_sdk_docs</a>::<wbr><a href="../../index.html">pezkuwi_sdk</a>::<wbr><a href="../index.html">frame_runtime</a>::<wbr><a href="index.html">runtime</a></div><h1>Type Alias <span class="type">System</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/frame_runtime.rs.html#159-164">Source</a> </span></div><pre class="rust item-decl"><code>pub type System = Pezpallet&lt;<a class="struct" href="struct.Runtime.html" title="struct pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::Runtime">Runtime</a>&gt;;</code></pre><h2 id="aliased-type" class="section-header">Aliased Type<a href="#aliased-type" class="anchor">§</a></h2><pre class="rust item-decl"><code>pub struct System(<span class="comment">/* private fields */</span>);</code></pre><script src="../../../../type.impl/pezframe_system/pezpallet/struct.Pezpallet.js" data-self-path="pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::System" async></script></section></div></main></body></html>
@@ -0,0 +1,3 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `SystemConfig` type in crate `pezkuwi_sdk_docs`."><title>SystemConfig in pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="pezkuwi_sdk_docs" data-themes="" data-resource-suffix="" data-rustdoc-version="1.91.1 (ed61e7d7e 2025-11-07)" data-channel="1.91.1" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-c3e638e9.js" data-settings-js="settings-c38705f0.js" ><script src="../../../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../../static.files/main-6dc2a7f3.js"></script><noscript><link rel="stylesheet" href="../../../../static.files/noscript-263c88ec.css"></noscript><link rel="icon" href="https://pezkuwichain.io/favicon.ico"></head><body class="rustdoc type"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">SystemConfig</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../../pezkuwi_sdk_docs/index.html">pezkuwi_<wbr>sdk_<wbr>docs</a><span class="version">0.0.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">System<wbr>Config</a></h2><h3><a href="#aliased-type">Aliased Type</a></h3><h3><a href="#fields">Fields</a></h3><ul class="block field"><li><a href="#structfield._config" title="_config">_config</a></li></ul></section><div id="rustdoc-modnav"><h2><a href="index.html">In pezkuwi_<wbr>sdk_<wbr>docs::<wbr>pezkuwi_<wbr>sdk::<wbr>frame_<wbr>runtime::<wbr>runtime</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../../index.html">pezkuwi_sdk_docs</a>::<wbr><a href="../../index.html">pezkuwi_sdk</a>::<wbr><a href="../index.html">frame_runtime</a>::<wbr><a href="index.html">runtime</a></div><h1>Type Alias <span class="type">System<wbr>Config</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/frame_runtime.rs.html#159-164">Source</a> </span></div><pre class="rust item-decl"><code>pub type SystemConfig = GenesisConfig&lt;<a class="struct" href="struct.Runtime.html" title="struct pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::Runtime">Runtime</a>&gt;;</code></pre><h2 id="aliased-type" class="section-header">Aliased Type<a href="#aliased-type" class="anchor">§</a></h2><pre class="rust item-decl"><code>pub struct SystemConfig {
pub _config: <a class="struct" href="https://doc.rust-lang.org/1.91.1/core/marker/struct.PhantomData.html" title="struct core::marker::PhantomData">PhantomData</a>&lt;<a class="struct" href="struct.Runtime.html" title="struct pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::Runtime">Runtime</a>&gt;,
}</code></pre><h2 id="fields" class="fields section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield._config" class="structfield section-header"><a href="#structfield._config" class="anchor field">§</a><code>_config: <a class="struct" href="https://doc.rust-lang.org/1.91.1/core/marker/struct.PhantomData.html" title="struct core::marker::PhantomData">PhantomData</a>&lt;<a class="struct" href="struct.Runtime.html" title="struct pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::Runtime">Runtime</a>&gt;</code></span><script src="../../../../type.impl/pezframe_system/pezpallet/struct.GenesisConfig.js" data-self-path="pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime::runtime::SystemConfig" async></script></section></div></main></body></html>
@@ -0,0 +1 @@
window.SIDEBAR_ITEMS = {"mod":["pezpallet","runtime"]};
@@ -0,0 +1,224 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="An introduction to the Pezkuwi SDK. Read this module to learn about the structure of the SDK, the tools that are provided as a part of it, and to gain a high level understanding of each."><title>pezkuwi_sdk_docs::pezkuwi_sdk - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="pezkuwi_sdk_docs" data-themes="" data-resource-suffix="" data-rustdoc-version="1.91.1 (ed61e7d7e 2025-11-07)" data-channel="1.91.1" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-c3e638e9.js" data-settings-js="settings-c38705f0.js" ><script src="../../static.files/storage-e2aeef58.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../static.files/main-6dc2a7f3.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-263c88ec.css"></noscript><link rel="icon" href="https://pezkuwichain.io/favicon.ico"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Module pezkuwi_sdk</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../pezkuwi_sdk_docs/index.html">pezkuwi_<wbr>sdk_<wbr>docs</a><span class="version">0.0.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module pezkuwi_<wbr>sdk</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#pezkuwi-sdk" title="Pezkuwi SDK">Pezkuwi SDK</a><ul><li><a href="#getting-started" title="Getting Started">Getting Started</a></li><li><a href="#components" title="Components">Components</a></li><li><a href="#notable-upstream-crates" title="Notable Upstream Crates">Notable Upstream Crates</a></li><li><a href="#trophy-section-notable-downstream-projects" title="Trophy Section: Notable Downstream Projects">Trophy Section: Notable Downstream Projects</a></li></ul></li></ul><h3><a href="#modules">Module Items</a></h3><ul class="block"><li><a href="#modules" title="Modules">Modules</a></li></ul></section><div id="rustdoc-modnav"><h2 class="in-crate"><a href="../index.html">In crate pezkuwi_<wbr>sdk_<wbr>docs</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../index.html">pezkuwi_sdk_docs</a></div><h1>Module <span>pezkuwi_<wbr>sdk</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../src/pezkuwi_sdk_docs/pezkuwi_sdk/mod.rs.html#1-158">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>An introduction to the Pezkuwi SDK. Read this module to learn about the structure of the SDK,
the tools that are provided as a part of it, and to gain a high level understanding of each.</p>
<h2 id="pezkuwi-sdk"><a class="doc-anchor" href="#pezkuwi-sdk">§</a>Pezkuwi SDK</h2>
<p><a href="https://github.com/pezkuwichain/pezkuwi-sdk">Pezkuwi SDK</a> provides the main resources needed to
start building on the <a href="https://pezkuwichain.io/">Pezkuwi network</a>, a scalable, multi-chain
blockchain platform that enables different blockchains to securely interoperate.</p>
<p><a href="https://exchange.pezkuwichain.app/"><img src="https://img.shields.io/badge/StackExchange-Pezkuwi%20and%20Bizinikiwi-222222?logo=stackexchange" alt="StackExchange" /></a></p>
<p><a href="https://github.com/Awsmdot/awesome-dot"><img src="https://img.shields.io/badge/pezkuwi-awesome-e6007a?logo=pezkuwi" alt="awesomeDot" /></a>
<a href="https://wiki.network.pezkuwichain.io/"><img src="https://img.shields.io/badge/pezkuwi-wiki-e6007a?logo=pezkuwi" alt="wiki" /></a>
<a href="https://forum.network.pezkuwichain.io/"><img src="https://img.shields.io/badge/pezkuwi-forum-e6007a?logo=pezkuwi" alt="forum" /></a></p>
<p><a href="https://github.com/pezkuwichain/pezkuwi-fellows/tree/main/rfcs"><img src="https://img.shields.io/badge/fellowship-RFCs-e6007a?logo=pezkuwi" alt="RFCs" /></a>
<a href="https://github.com/pezkuwichain/pezkuwi-fellows/tree/main/runtimes"><img src="https://img.shields.io/badge/fellowship-runtimes-e6007a?logo=pezkuwi" alt="Runtime" /></a>
<a href="https://github.com/pezkuwichain/pezkuwi-fellows/tree/main/manifesto/blob/main/manifesto.pdf"><img src="https://img.shields.io/badge/fellowship-manifesto-e6007a?logo=pezkuwi" alt="Manifesto" /></a></p>
<h3 id="getting-started"><a class="doc-anchor" href="#getting-started">§</a>Getting Started</h3>
<p>The primary way to get started with the Pezkuwi SDK is to start writing a FRAME-based runtime.
See:</p>
<ul>
<li><a href="pezkuwi/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::pezkuwi"><code>pezkuwi</code></a>, to understand what is Pezkuwi as a development platform.</li>
<li><a href="bizinikiwi/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::bizinikiwi"><code>bizinikiwi</code></a>, for an overview of what Bizinikiwi as the main blockchain framework of Pezkuwi
SDK.</li>
<li><a href="frame_runtime/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime"><code>frame</code></a>, to learn about how to write blockchain applications aka. “App Chains”.</li>
<li>Continue with the <a href="../index.html#getting-started" title="mod pezkuwi_sdk_docs"><code>pezkuwi_sdk_docs</code>s “getting started”</a>.</li>
</ul>
<h3 id="components"><a class="doc-anchor" href="#components">§</a>Components</h3><h5 id="bizinikiwi"><a class="doc-anchor" href="#bizinikiwi">§</a>Bizinikiwi</h5>
<p><a href="https://github.com/pezkuwichain/pezkuwi-sdk/blob/master/bizinikiwi/LICENSE-APACHE2"><img src="https://img.shields.io/badge/License-GPL3%2FApache2.0-blue" alt="Bizinikiwi-license" /></a>
<a href="https://github.com/pezkuwichain/pezkuwi-sdk/blob/master/bizinikiwi"><img src="https://img.shields.io/badge/github-bizinikiwi-2324CC85" alt="GitHub Repo" /></a></p>
<p><a href="bizinikiwi/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::bizinikiwi"><code>bizinikiwi</code></a> is the base blockchain framework used to power the Pezkuwi SDK. It is a full
toolkit to create sovereign blockchains, including but not limited to those which connect to
Pezkuwi as teyrchains.</p>
<h5 id="frame"><a class="doc-anchor" href="#frame">§</a>FRAME</h5>
<p><a href="https://github.com/pezkuwichain/pezkuwi-sdk/blob/master/bizinikiwi/LICENSE-APACHE2"><img src="https://img.shields.io/badge/License-Apache2.0-blue" alt="Bizinikiwi-license" /></a>
<a href="https://github.com/pezkuwichain/pezkuwi-sdk/blob/master/bizinikiwi/pezframe"><img src="https://img.shields.io/badge/github-frame-2324CC85" alt="GitHub Repo" /></a></p>
<p><a href="frame_runtime/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime"><code>frame</code></a> is the framework used to create Bizinikiwi-based application logic, aka. runtimes.
Learn more about the distinction of a runtime and node in
<a href="../reference_docs/wasm_meta_protocol/index.html" title="mod pezkuwi_sdk_docs::reference_docs::wasm_meta_protocol"><code>reference_docs::wasm_meta_protocol</code></a>.</p>
<h5 id="pezcumulus"><a class="doc-anchor" href="#pezcumulus">§</a>Pezcumulus</h5>
<p><a href="https://github.com/pezkuwichain/pezkuwi-sdk/blob/master/pezcumulus/LICENSE"><img src="https://img.shields.io/badge/License-GPL3-blue" alt="Pezcumulus-license" /></a>
<a href="https://github.com/pezkuwichain/pezkuwi-sdk/blob/master/pezcumulus"><img src="https://img.shields.io/badge/github-pezcumulus-white" alt="GitHub Repo" /></a></p>
<p><a href="pezcumulus/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::pezcumulus"><code>pezcumulus</code></a> transforms FRAME-based runtimes into Pezkuwi-compatible teyrchain runtimes, and
Bizinikiwi-based nodes into Pezkuwi/Teyrchain-compatible nodes.</p>
<h5 id="xcm"><a class="doc-anchor" href="#xcm">§</a>XCM</h5>
<p><a href="https://github.com/pezkuwichain/pezkuwi-sdk/blob/master/pezkuwi/LICENSE"><img src="https://img.shields.io/badge/License-GPL3-blue" alt="XCM-license" /></a>
<a href="https://github.com/pezkuwichain/pezkuwi-sdk/blob/master/pezkuwi/xcm"><img src="https://img.shields.io/badge/github-XCM-e6007a?logo=pezkuwi" alt="GitHub Repo" /></a></p>
<p><a href="xcm/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::xcm"><code>xcm</code></a>, short for “cross consensus message”, is the primary format that is used for
communication between teyrchains, but is intended to be extensible to other use cases as well.</p>
<h5 id="pezkuwi"><a class="doc-anchor" href="#pezkuwi">§</a>Pezkuwi</h5>
<p><a href="https://github.com/pezkuwichain/pezkuwi-sdk/blob/master/pezkuwi/LICENSE"><img src="https://img.shields.io/badge/License-GPL3-blue" alt="Pezkuwi-license" /></a>
<a href="https://github.com/pezkuwichain/pezkuwi-sdk/blob/master/pezkuwi"><img src="https://img.shields.io/badge/github-pezkuwi-e6007a?logo=pezkuwi" alt="GitHub Repo" /></a></p>
<p><a href="pezkuwi/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::pezkuwi"><code>pezkuwi</code></a> is an implementation of a Pezkuwi node in Rust, by <code>@paritytech</code>. The Pezkuwi
runtimes are located under the
<a href="https://github.com/pezkuwichain/pezkuwi-fellows/tree/main/runtimes"><code>pezkuwi-fellows/runtimes</code></a> repository.</p>
<h4 id="binaries"><a class="doc-anchor" href="#binaries">§</a>Binaries</h4>
<p>The main binaries that are part of the Pezkuwi SDK are:</p>
<ul>
<li><a href="pezkuwi/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::pezkuwi"><code>pezkuwi</code></a>: The Pezkuwi relay chain node binary, as noted above.</li>
<li><a href="https://crates.io/crates/pezkuwi-omni-node"><code>pezkuwi-omni-node</code></a>: A white-labeled teyrchain collator node. See more in
<a href="../reference_docs/omni_node/index.html" title="mod pezkuwi_sdk_docs::reference_docs::omni_node"><code>crate::reference_docs::omni_node</code></a>.</li>
<li><a href="https://crates.io/crates/pezkuwi-teyrchain-bin"><code>pezkuwi-teyrchain-bin</code></a>: The collator node used to run collators for all Pezkuwi system
teyrchains.</li>
<li><a href="https://crates.io/crates/frame-omni-bencher"><code>frame-omni-bencher</code></a>: a benchmarking tool for FRAME-based runtimes. Nodes typically contain
a
<code>benchmark</code> subcommand that does the same.</li>
<li>[<code>chain_spec_builder</code>]: Utility to build chain-specs Nodes typically contain a <code>build-spec</code>
subcommand that does the same.</li>
<li>[<code>pez_subkey</code>]: Bizinikiwis key management utility.</li>
<li><a href="node_cli"><code>bizinikiwi-node</code></a> is an extensive bizinikiwi node that contains the superset of
all runtime and node side features. The corresponding runtime, called
[<code>pez_kitchensink_runtime</code>] contains all of the modules that are provided with <code>FRAME</code>. This
node and runtime is only used for testing and demonstration.</li>
</ul>
<h4 id="summary"><a class="doc-anchor" href="#summary">§</a>Summary</h4>
<p>The following diagram summarizes how some of the components of Pezkuwi SDK work together:</p>
<pre class="mermaid" style="text-align:center;background: transparent;">
flowchart LR
subgraph PezkuwiSDKChain[A Pezkuwi SDK-based blockchain]
Node
Runtime
end
FRAME -.-> Runtime
PezkuwiSDK[Pezkuwi SDK Node Libraries] -.-> Node
</pre><script src="https://cdn.jsdelivr.net/npm/mermaid@9.4.3/dist/mermaid.min.js"></script>
<script>
mermaid.initialize({
startOnLoad: false,
theme: 'dark',
flowchart: { useMaxWidth: true, htmlLabels: true },
suppressErrorRendering: true
});
document.addEventListener('DOMContentLoaded', async () => {
const elements = document.querySelectorAll('.mermaid');
for (const el of elements) {
const code = el.textContent;
try {
const { svg } = await mermaid.render('mermaid-' + Math.random().toString(36).substr(2, 9), code);
el.innerHTML = svg;
} catch (e) {
// On error, show as styled code block
el.style.fontFamily = 'monospace';
el.style.whiteSpace = 'pre';
el.style.background = '#1e293b';
el.style.padding = '1rem';
el.style.borderRadius = '8px';
el.style.color = '#94a3b8';
el.style.fontSize = '0.85rem';
el.style.border = '1px solid #334155';
}
}
});
</script>
<p>A Bizinikiwi-based chain is a blockchain composed of a runtime and a node. As noted above, the
runtime is the application logic of the blockchain, and the node is everything else.
See <a href="../reference_docs/wasm_meta_protocol/index.html" title="mod pezkuwi_sdk_docs::reference_docs::wasm_meta_protocol"><code>reference_docs::wasm_meta_protocol</code></a> for an in-depth explanation of this. The
former is built with <a href="frame_runtime/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime"><code>frame</code></a>, and the latter is built with rest of Bizinikiwi.</p>
<blockquote>
<p>You can think of a Bizinikiwi-based chain as a white-labeled blockchain.</p>
</blockquote>
<pre class="mermaid" style="text-align:center;background: transparent;">
flowchart LR
subgraph Pezkuwi[The Pezkuwi Relay Chain]
PezkuwiNode[Pezkuwi Node]
PezkuwiRuntime[Pezkuwi Runtime]
end
FRAME -.-> PezkuwiRuntime
PezkuwiSDK[Pezkuwi SDK Node Libraries] -.-> PezkuwiNode
</pre><script src="https://cdn.jsdelivr.net/npm/mermaid@9.4.3/dist/mermaid.min.js"></script>
<script>
mermaid.initialize({
startOnLoad: false,
theme: 'dark',
flowchart: { useMaxWidth: true, htmlLabels: true },
suppressErrorRendering: true
});
document.addEventListener('DOMContentLoaded', async () => {
const elements = document.querySelectorAll('.mermaid');
for (const el of elements) {
const code = el.textContent;
try {
const { svg } = await mermaid.render('mermaid-' + Math.random().toString(36).substr(2, 9), code);
el.innerHTML = svg;
} catch (e) {
// On error, show as styled code block
el.style.fontFamily = 'monospace';
el.style.whiteSpace = 'pre';
el.style.background = '#1e293b';
el.style.padding = '1rem';
el.style.borderRadius = '8px';
el.style.color = '#94a3b8';
el.style.fontSize = '0.85rem';
el.style.border = '1px solid #334155';
}
}
});
</script>
<p>Pezkuwi is itself a Bizinikiwi-based chain, composed of the exact same two components. It has
specialized logic in both the node and the runtime side, but it is not “special” in any way.</p>
<p>A teyrchain is a “special” Bizinikiwi-based chain, whereby both the node and the runtime
components have became “Pezkuwi-aware” using Pezcumulus.</p>
<pre class="mermaid" style="text-align:center;background: transparent;">
flowchart LR
subgraph TeyrChain[A Pezkuwi TeyrChain]
TeyrChainNode[TeyrChain Node]
TeyrChainRuntime[TeyrChain Runtime]
end
FRAME -.-> TeyrChainRuntime
PezkuwiSDK[Pezkuwi SDK Node Libraries] -.-> TeyrChainNode
CumulusC[Pezcumulus Node Libraries] -.-> TeyrChainNode
CumulusR[Pezcumulus Runtime Libraries] -.-> TeyrChainRuntime
</pre><script src="https://cdn.jsdelivr.net/npm/mermaid@9.4.3/dist/mermaid.min.js"></script>
<script>
mermaid.initialize({
startOnLoad: false,
theme: 'dark',
flowchart: { useMaxWidth: true, htmlLabels: true },
suppressErrorRendering: true
});
document.addEventListener('DOMContentLoaded', async () => {
const elements = document.querySelectorAll('.mermaid');
for (const el of elements) {
const code = el.textContent;
try {
const { svg } = await mermaid.render('mermaid-' + Math.random().toString(36).substr(2, 9), code);
el.innerHTML = svg;
} catch (e) {
// On error, show as styled code block
el.style.fontFamily = 'monospace';
el.style.whiteSpace = 'pre';
el.style.background = '#1e293b';
el.style.padding = '1rem';
el.style.borderRadius = '8px';
el.style.color = '#94a3b8';
el.style.fontSize = '0.85rem';
el.style.border = '1px solid #334155';
}
}
});
</script>
<h3 id="notable-upstream-crates"><a class="doc-anchor" href="#notable-upstream-crates">§</a>Notable Upstream Crates</h3>
<ul>
<li><a href="https://github.com/pezkuwichain/parity-scale-codec"><code>parity-scale-codec</code></a></li>
<li><a href="https://github.com/pezkuwichain/parity-db"><code>parity-db</code></a></li>
<li><a href="https://github.com/paritytech/trie"><code>trie</code></a></li>
<li><a href="https://github.com/paritytech/parity-common"><code>parity-common</code></a></li>
</ul>
<h3 id="trophy-section-notable-downstream-projects"><a class="doc-anchor" href="#trophy-section-notable-downstream-projects">§</a>Trophy Section: Notable Downstream Projects</h3>
<p>A list of projects and tools in the blockchain ecosystem that one way or another use parts of
the Pezkuwi SDK:</p>
<ul>
<li><a href="https://github.com/availproject/avail">Avail</a></li>
<li><a href="https://iohk.io/en/blog/posts/2023/11/03/partner-chains-are-coming-to-cardano/">Cardano Partner Chains</a></li>
<li><a href="https://github.com/keep-starknet-strange/madara">Starknets Madara Sequencer</a></li>
<li><a href="https://polymesh.network/">Polymesh</a></li>
</ul>
</div></details><h2 id="modules" class="section-header">Modules<a href="#modules" class="anchor">§</a></h2><dl class="item-table"><dt><a class="mod" href="bizinikiwi/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::bizinikiwi">bizinikiwi</a></dt><dd>Learn about Bizinikiwi, the main blockchain framework used in the Pezkuwi ecosystem.</dd><dt><a class="mod" href="frame_runtime/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime">frame_<wbr>runtime</a></dt><dd>Learn about FRAME, the framework used to build Bizinikiwi runtimes.</dd><dt><a class="mod" href="pezcumulus/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::pezcumulus">pezcumulus</a></dt><dd>Learn about Pezcumulus, the framework that transforms <a href="bizinikiwi/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::bizinikiwi"><code>bizinikiwi</code></a>-based chains into
<a href="pezkuwi/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::pezkuwi"><code>pezkuwi</code></a>-enabled teyrchains.</dd><dt><a class="mod" href="pezkuwi/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::pezkuwi">pezkuwi</a></dt><dd>Learn about Pezkuwi as a platform.</dd><dt><a class="mod" href="smart_contracts/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::smart_contracts">smart_<wbr>contracts</a></dt><dd>Learn about different ways through which smart contracts can be utilized on top of Bizinikiwi,
and in the Pezkuwi ecosystem.</dd><dt><a class="mod" href="templates/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::templates">templates</a></dt><dd>Index of all the templates that can act as first scaffold for a new project.</dd><dt><a class="mod" href="xcm/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::xcm">xcm</a></dt><dd>Learn about XCM, the de-facto communication language between different consensus systems.</dd></dl></section></div></main></body></html>
@@ -0,0 +1,90 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Learn about Pezcumulus, the framework that transforms `bizinikiwi`-based chains into `pezkuwi`-enabled teyrchains."><title>pezkuwi_sdk_docs::pezkuwi_sdk::pezcumulus - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="pezkuwi_sdk_docs" data-themes="" data-resource-suffix="" data-rustdoc-version="1.91.1 (ed61e7d7e 2025-11-07)" data-channel="1.91.1" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-c3e638e9.js" data-settings-js="settings-c38705f0.js" ><script src="../../../static.files/storage-e2aeef58.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../../static.files/main-6dc2a7f3.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-263c88ec.css"></noscript><link rel="icon" href="https://pezkuwichain.io/favicon.ico"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Module pezcumulus</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../pezkuwi_sdk_docs/index.html">pezkuwi_<wbr>sdk_<wbr>docs</a><span class="version">0.0.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module pezcumulus</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#pezcumulus" title="Pezcumulus">Pezcumulus</a><ul><li><a href="#example-runtime" title="Example: Runtime">Example: Runtime</a></li></ul></li></ul></section><div id="rustdoc-modnav"><h2><a href="../index.html">In pezkuwi_<wbr>sdk_<wbr>docs::<wbr>pezkuwi_<wbr>sdk</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">pezkuwi_sdk_docs</a>::<wbr><a href="../index.html">pezkuwi_sdk</a></div><h1>Module <span>pezcumulus</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/pezcumulus.rs.html#1-130">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Learn about Pezcumulus, the framework that transforms <a href="../bizinikiwi/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::bizinikiwi"><code>bizinikiwi</code></a>-based chains into
<a href="../pezkuwi/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::pezkuwi"><code>pezkuwi</code></a>-enabled teyrchains.</p>
<h2 id="pezcumulus"><a class="doc-anchor" href="#pezcumulus">§</a>Pezcumulus</h2>
<p>Bizinikiwi provides a framework (<a href="../frame_runtime/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime">FRAME</a>) through which a blockchain node and runtime can easily
be created. Pezcumulus aims to extend the same approach to creation of Pezkuwi teyrchains.</p>
<blockquote>
<p>Pezcumulus clouds are shaped sort of like dots; together they form a system that is intricate,
beautiful and functional.</p>
</blockquote>
<h3 id="example-runtime"><a class="doc-anchor" href="#example-runtime">§</a>Example: Runtime</h3>
<p>A Pezcumulus-based runtime is fairly similar to other <a href="../frame_runtime/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime">FRAME</a>-based runtimes. Most notably, the
following changes are applied to a normal FRAME-based runtime to make it a Pezcumulus-based
runtime:</p>
<h5 id="pezcumulus-pallets"><a class="doc-anchor" href="#pezcumulus-pallets">§</a>Pezcumulus Pallets</h5>
<p>A teyrchain runtime should use a number of pallets that are provided by Pezcumulus and
Bizinikiwi. Notably:</p>
<ul>
<li><a href="pezframe::prelude::pezframe_system"><code>pezframe-system</code></a>, like all FRAME-based runtimes.</li>
<li>[<code>pezcumulus_pezpallet_teyrchain_system</code>]</li>
<li>[<code>teyrchain_info</code>]</li>
</ul>
<div class="example-wrap ignore"><a href="#" class="tooltip" title="This example is not tested"></a><pre class="rust rust-example-rendered"><code><span class="kw">mod </span>system_pallets {
<span class="kw">use super</span>::<span class="kw-2">*</span>;
<span class="attr">#[derive_impl(pezframe_system::config_preludes::TestDefaultConfig)]
</span><span class="kw">impl </span>pezframe_system::Config <span class="kw">for </span>Runtime {
<span class="kw">type </span>Block = MockBlock&lt;<span class="self">Self</span>&gt;;
<span class="kw">type </span>OnSetCode = pezcumulus_pezpallet_teyrchain_system::TeyrchainSetCode&lt;<span class="self">Self</span>&gt;;
}
<span class="kw">impl </span>pezcumulus_pezpallet_teyrchain_system::Config <span class="kw">for </span>Runtime {
<span class="kw">type </span>RuntimeEvent = RuntimeEvent;
<span class="kw">type </span>OnSystemEvent = ();
<span class="kw">type </span>SelfParaId = teyrchain_info::Pezpallet&lt;Runtime&gt;;
<span class="kw">type </span>OutboundXcmpMessageSource = ();
<span class="kw">type </span>XcmpMessageHandler = ();
<span class="kw">type </span>ReservedDmpWeight = ();
<span class="kw">type </span>ReservedXcmpWeight = ();
<span class="kw">type </span>CheckAssociatedRelayNumber =
pezcumulus_pezpallet_teyrchain_system::RelayNumberMonotonicallyIncreases;
<span class="kw">type </span>ConsensusHook = pezcumulus_pezpallet_aura_ext::FixedVelocityConsensusHook&lt;
Runtime,
<span class="number">6000</span>, <span class="comment">// relay chain block time
</span><span class="number">1</span>,
<span class="number">1</span>,
&gt;;
<span class="kw">type </span>WeightInfo = ();
<span class="kw">type </span>DmpQueue = pezframe::traits::EnqueueWithOrigin&lt;(), pezsp_core::ConstU8&lt;<span class="number">0</span>&gt;&gt;;
<span class="kw">type </span>RelayParentOffset = ConstU32&lt;<span class="number">0</span>&gt;;
}
<span class="kw">impl </span>teyrchain_info::Config <span class="kw">for </span>Runtime {}
}</code></pre></div>
<p>Given that all Pezcumulus-based runtimes use a simple Aura-based consensus mechanism, the
following pallets also need to be added:</p>
<ul>
<li>[<code>pezpallet_timestamp</code>]</li>
<li>[<code>pezpallet_aura</code>]</li>
<li>[<code>pezcumulus_pezpallet_aura_ext</code>]</li>
</ul>
<div class="example-wrap ignore"><a href="#" class="tooltip" title="This example is not tested"></a><pre class="rust rust-example-rendered"><code><span class="kw">mod </span>consensus_pallets {
<span class="kw">use super</span>::<span class="kw-2">*</span>;
<span class="kw">impl </span>pezpallet_aura::Config <span class="kw">for </span>Runtime {
<span class="kw">type </span>AuthorityId = AuraId;
<span class="kw">type </span>DisabledValidators = ();
<span class="kw">type </span>MaxAuthorities = ConstU32&lt;<span class="number">100_000</span>&gt;;
<span class="kw">type </span>AllowMultipleBlocksPerSlot = ConstBool&lt;<span class="bool-val">false</span>&gt;;
<span class="kw">type </span>SlotDuration = pezpallet_aura::MinimumPeriodTimesTwo&lt;<span class="self">Self</span>&gt;;
}
<span class="attr">#[derive_impl(pezpallet_timestamp::config_preludes::TestDefaultConfig)]
</span><span class="kw">impl </span>pezpallet_timestamp::Config <span class="kw">for </span>Runtime {}
<span class="kw">impl </span>pezcumulus_pezpallet_aura_ext::Config <span class="kw">for </span>Runtime {}
}</code></pre></div>
<p>Finally, a separate macro, similar to
<a href="pezframe::runtime::prelude::impl_runtime_apis"><code>impl_runtime_api</code></a>, which creates the default set
of runtime APIs, will generate the teyrchain runtimes validation runtime API, also known as
teyrchain validation function (PVF). Without this API, the relay chain is unable to validate
blocks produced by our teyrchain.</p>
<div class="example-wrap ignore"><a href="#" class="tooltip" title="This example is not tested"></a><pre class="rust rust-example-rendered"><code><span class="macro">pezcumulus_pezpallet_teyrchain_system::register_validate_block!</span> {
Runtime = Runtime,
BlockExecutor = pezcumulus_pezpallet_aura_ext::BlockExecutor::&lt;Runtime, Executive&gt;,
}</code></pre></div>
<hr />
</div></details></section></div></main></body></html>
@@ -0,0 +1 @@
window.SIDEBAR_ITEMS = {};
@@ -0,0 +1,99 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Learn about Pezkuwi as a platform."><title>pezkuwi_sdk_docs::pezkuwi_sdk::pezkuwi - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="pezkuwi_sdk_docs" data-themes="" data-resource-suffix="" data-rustdoc-version="1.91.1 (ed61e7d7e 2025-11-07)" data-channel="1.91.1" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-c3e638e9.js" data-settings-js="settings-c38705f0.js" ><script src="../../../static.files/storage-e2aeef58.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../../static.files/main-6dc2a7f3.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-263c88ec.css"></noscript><link rel="icon" href="https://pezkuwichain.io/favicon.ico"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Module pezkuwi</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../pezkuwi_sdk_docs/index.html">pezkuwi_<wbr>sdk_<wbr>docs</a><span class="version">0.0.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module pezkuwi</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#pezkuwi" title="Pezkuwi">Pezkuwi</a><ul><li><a href="#learn-more-and-get-involved" title="Learn More and Get Involved">Learn More and Get Involved</a></li><li><a href="#alternative-node-implementations-" title="Alternative Node Implementations 🌈">Alternative Node Implementations 🌈</a></li><li><a href="#platform" title="Platform">Platform</a></li></ul></li></ul></section><div id="rustdoc-modnav"><h2><a href="../index.html">In pezkuwi_<wbr>sdk_<wbr>docs::<wbr>pezkuwi_<wbr>sdk</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">pezkuwi_sdk_docs</a>::<wbr><a href="../index.html">pezkuwi_sdk</a></div><h1>Module <span>pezkuwi</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/pezkuwi.rs.html#1-96">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Learn about Pezkuwi as a platform.</p>
<h2 id="pezkuwi"><a class="doc-anchor" href="#pezkuwi">§</a>Pezkuwi</h2>
<p>Implementation of the Pezkuwi node/host in Rust.</p>
<h3 id="learn-more-and-get-involved"><a class="doc-anchor" href="#learn-more-and-get-involved">§</a>Learn More and Get Involved</h3>
<ul>
<li><a href="https://forum.network.pezkuwichain.io/">Pezkuwi Forum</a></li>
<li><a href="https://teyrchains.info/">Pezkuwi Teyrchains</a></li>
<li><a href="https://subscan.io/">Pezkuwi (multi-chain) Explorer: Subscan</a></li>
<li>Pezkuwi Fellowship
<ul>
<li><a href="https://github.com/pezkuwichain/pezkuwi-fellows/tree/main/manifesto/blob/main/manifesto.pdf">Manifesto</a></li>
<li><a href="https://github.com/pezkuwichain/pezkuwi-fellows/tree/main/runtimes">Runtimes</a></li>
<li><a href="https://github.com/pezkuwichain/pezkuwi-fellows/tree/main/rfcs">RFCs</a></li>
<li><a href="https://pezkuwi-fellows.github.io/dashboard/">Dashboard</a></li>
</ul>
</li>
<li><a href="http://spec.pezkuwi.network">Pezkuwi Specs</a></li>
<li><a href="https://docs.pezkuwichain.io/sdk/book/">The Pezkuwi Teyrchain Host Implementers Guide</a></li>
<li><a href="https://pezkuwichain.io/papers/">Pezkuwi papers</a></li>
<li><a href="https://graypaper.com">JAM Graypaper</a></li>
</ul>
<h3 id="alternative-node-implementations-"><a class="doc-anchor" href="#alternative-node-implementations-">§</a>Alternative Node Implementations 🌈</h3>
<ul>
<li><a href="https://docs.rs/crate/smoldot-light/latest">Smoldot</a>. Pezkuwi light node/client.</li>
<li><a href="https://github.com/qdrvm/kagome">KAGOME</a>. C++ implementation of the Pezkuwi host.</li>
<li><a href="https://github.com/ChainSafe/gossamer">Gossamer</a>. Golang implementation of the Pezkuwi host.</li>
</ul>
<h3 id="platform"><a class="doc-anchor" href="#platform">§</a>Platform</h3>
<p>In this section, we examine what platform Pezkuwi exactly provides to developers.</p>
<h4 id="pezkuwi-white-paper"><a class="doc-anchor" href="#pezkuwi-white-paper">§</a>Pezkuwi White Paper</h4>
<p>The original vision of Pezkuwi (everything in the whitepaper, which was eventually called
<strong>Pezkuwi 1.0</strong>) revolves around the following arguments:</p>
<ul>
<li>Future is multi-chain, because we need different chains with different specialization to
achieve widespread goals.</li>
<li>In other words, no single chain is good enough to achieve all goals.</li>
<li>A multi-chain future will inadvertently suffer from fragmentation of economic security.
<ul>
<li>This stake fragmentation will make communication over consensus system with varying security
levels inherently unsafe.</li>
</ul>
</li>
</ul>
<p>Pezkuwis answer to the above is:</p>
<blockquote>
<p>The chains of the future must have a way to share their economic security, whilst maintaining
their execution and governance sovereignty. These chains are called “Teyrchains”.</p>
</blockquote>
<ul>
<li>Shared Security: The idea of shared economic security sits at the core of Pezkuwi. Pezkuwi
enables different teyrchains to pool their economic security from Pezkuwi (i.e. “<em>Relay
Chain</em>”).</li>
<li>(heterogenous) Sharded Execution: Yet, each teyrchain is free to have its own execution logic
(runtime), which also encompasses governance and sovereignty. Moreover, Pezkuwi ensures the
correct execution of all teyrchains, without having all of its validators re-execute all
teyrchain blocks. When seen from this perspective, Pezkuwi achieves the ability to verify
the validity of the block execution of multiple teyrchains using the same set of validators as
the Relay Chain. In practice, this means that the shards (teyrchains) share the same economic
security as the Relay Chain.
Learn about this process called <a href="https://pezkuwichain.io/blog/pezkuwi-v1-0-sharding-and-economic-security#approval-checking-and-finality">Approval Checking</a>.</li>
<li>A framework to build blockchains: In order to materialize the ecosystem of teyrchains, an easy
blockchain framework must exist. This is <a href="../bizinikiwi/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::bizinikiwi">Bizinikiwi</a>,
<a href="../frame_runtime/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::frame_runtime">FRAME</a> and <a href="../pezcumulus/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::pezcumulus">Pezcumulus</a>.</li>
<li>A communication language between blockchains: In order for these blockchains to communicate,
they need a shared language. <a href="../xcm/index.html" title="mod pezkuwi_sdk_docs::pezkuwi_sdk::xcm">XCM</a> is one such language, and the one
that is most endorsed in the Pezkuwi ecosystem.</li>
</ul>
<blockquote>
<p>Note that the interoperability promised by Pezkuwi is unparalleled in that any two teyrchains
connected to Pezkuwi have the same security and can have much better guarantees about the
security of the recipient of any message.
Bridges enable transaction and information flow between different consensus systems, crucial
for Pezkuwis multi-chain architecture. However, they can become the networks most
vulnerable points. If a bridges security measures are weaker than those of the connected
blockchains, it poses a significant risk. Attackers might exploit these weaknesses to launch
attacks such as theft or disruption of services.</p>
</blockquote>
<p>Pezkuwi delivers the above vision, alongside a flexible means for teyrchains to schedule
themselves with the Relay Chain. To achieve this, Pezkuwi has been developed with an
architecture similar to that of a computer. Pezkuwi Relay Chain has a number of “cores”. Each
core is (in simple terms) capable of progressing 1 teyrchain at a time. For example, a teyrchain
can schedule itself on a single core for 5 relay chain blocks.</p>
<p>Within the scope of Pezkuwi 1.x, two main scheduling ways have been considered:</p>
<ul>
<li>Long term Teyrchains, obtained through locking a sum of HEZ in an auction system.</li>
<li>On-demand Teyrchains, purchased through paying HEZ to the relay-chain whenever needed.</li>
</ul>
<h4 id="the-future"><a class="doc-anchor" href="#the-future">§</a>The Future</h4>
<p>After delivering Pezkuwi 1.x, the future of Pezkuwi as a protocol and platform is in the hands
of the community and the fellowship. This is happening most notable through the RFC process.
Some of the RFCs that do alter Pezkuwi as a platform and have already passed are as follows:</p>
<ul>
<li>RFC#1: <a href="https://github.com/pezkuwichain/pezkuwi-fellows/RFCs/blob/main/text/0001-agile-coretime.md">Agile-coretime</a>:
Agile periodic-sale-based model for assigning Coretime on the Pezkuwi Ubiquitous Computer.</li>
<li>RFC#5: <a href="https://github.com/pezkuwichain/pezkuwi-fellows/RFCs/blob/main/text/0005-coretime-interface.md">Coretime-interface</a>:
Interface for manipulating the usage of cores on the Pezkuwi Ubiquitous Computer.</li>
</ul>
<p>Learn more about <a href="https://wiki.network.pezkuwichain.io/docs/pezkuwi-direction#pezkuwi-as-a-computational-resource">Pezkuwi as a Computational Resource</a>.</p>
</div></details></section></div></main></body></html>
@@ -0,0 +1 @@
window.SIDEBAR_ITEMS = {};
@@ -0,0 +1 @@
window.SIDEBAR_ITEMS = {"mod":["bizinikiwi","frame_runtime","pezcumulus","pezkuwi","smart_contracts","templates","xcm"]};
@@ -0,0 +1,12 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Learn about different ways through which smart contracts can be utilized on top of Bizinikiwi, and in the Pezkuwi ecosystem."><title>pezkuwi_sdk_docs::pezkuwi_sdk::smart_contracts - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="pezkuwi_sdk_docs" data-themes="" data-resource-suffix="" data-rustdoc-version="1.91.1 (ed61e7d7e 2025-11-07)" data-channel="1.91.1" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-c3e638e9.js" data-settings-js="settings-c38705f0.js" ><script src="../../../static.files/storage-e2aeef58.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../../static.files/main-6dc2a7f3.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-263c88ec.css"></noscript><link rel="icon" href="https://pezkuwichain.io/favicon.ico"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Module smart_contracts</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../pezkuwi_sdk_docs/index.html">pezkuwi_<wbr>sdk_<wbr>docs</a><span class="version">0.0.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module smart_<wbr>contracts</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#smart-contracts" title="Smart Contracts">Smart Contracts</a></li></ul></section><div id="rustdoc-modnav"><h2><a href="../index.html">In pezkuwi_<wbr>sdk_<wbr>docs::<wbr>pezkuwi_<wbr>sdk</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">pezkuwi_sdk_docs</a>::<wbr><a href="../index.html">pezkuwi_sdk</a></div><h1>Module <span>smart_<wbr>contracts</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/smart_contracts.rs.html#1-9">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Learn about different ways through which smart contracts can be utilized on top of Bizinikiwi,
and in the Pezkuwi ecosystem.</p>
<h2 id="smart-contracts"><a class="doc-anchor" href="#smart-contracts">§</a>Smart Contracts</h2>
<p>TODO: @cmichi <a href="https://github.com/pezkuwichain/pezkuwi-sdk/issues/304">https://github.com/pezkuwichain/pezkuwi-sdk/issues/304</a></p>
<ul>
<li>WASM and EVM based, pezpallet-contracts and pezpallet-evm.</li>
<li>single-daap-chain, transition from ink! to FRAME.</li>
<li>Link to <code>use.ink</code></li>
<li>Link to <a href="../../reference_docs/runtime_vs_smart_contract/index.html" title="mod pezkuwi_sdk_docs::reference_docs::runtime_vs_smart_contract"><code>crate::reference_docs::runtime_vs_smart_contract</code></a>.</li>
<li><a href="https://use.ink/migrate-ink-contracts-to-pezkuwi-frame-teyrchain/">https://use.ink/migrate-ink-contracts-to-pezkuwi-frame-teyrchain/</a></li>
</ul>
</div></details></section></div></main></body></html>
@@ -0,0 +1 @@
window.SIDEBAR_ITEMS = {};
@@ -0,0 +1,43 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Index of all the templates that can act as first scaffold for a new project."><title>pezkuwi_sdk_docs::pezkuwi_sdk::templates - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="pezkuwi_sdk_docs" data-themes="" data-resource-suffix="" data-rustdoc-version="1.91.1 (ed61e7d7e 2025-11-07)" data-channel="1.91.1" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-c3e638e9.js" data-settings-js="settings-c38705f0.js" ><script src="../../../static.files/storage-e2aeef58.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../../static.files/main-6dc2a7f3.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-263c88ec.css"></noscript><link rel="icon" href="https://pezkuwichain.io/favicon.ico"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Module templates</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../pezkuwi_sdk_docs/index.html">pezkuwi_<wbr>sdk_<wbr>docs</a><span class="version">0.0.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module templates</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#templates" title="Templates">Templates</a><ul><li><a href="#internal" title="Internal">Internal</a></li><li><a href="#openzeppelin" title="OpenZeppelin">OpenZeppelin</a></li><li><a href="#pop-cli" title="POP-CLI">POP-CLI</a></li></ul></li></ul></section><div id="rustdoc-modnav"><h2><a href="../index.html">In pezkuwi_<wbr>sdk_<wbr>docs::<wbr>pezkuwi_<wbr>sdk</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">pezkuwi_sdk_docs</a>::<wbr><a href="../index.html">pezkuwi_sdk</a></div><h1>Module <span>templates</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/templates.rs.html#1-44">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Index of all the templates that can act as first scaffold for a new project.</p>
<h2 id="templates"><a class="doc-anchor" href="#templates">§</a>Templates</h2>
<p>This document enumerates a non-exhaustive list of templates that one can use to get started with
pezkuwi-sdk.</p>
<blockquote>
<p>Know more tools/templates that are not listed here? please contribute them by opening a PR.</p>
</blockquote>
<h3 id="internal"><a class="doc-anchor" href="#internal">§</a>Internal</h3>
<p>The following templates are maintained as a part of the <code>pezkuwi-sdk</code> repository:</p>
<ul>
<li><a href="https://github.com/pezkuwichain/pezkuwi-sdk/issues/195"><code>minimal-template</code></a>: A minimal
template that contains the least amount of features to be a functioning blockchain. Suitable
for learning and testing.</li>
<li><a href="https://github.com/pezkuwichain/pezkuwi-sdk/issues/195"><code>solochain-template</code></a>: Formerly known
as “bizinikiwi-node-template”, is a white-labeled bizinikiwi-based blockchain (aka. solochain)
that contains moderate features, such as a basic consensus engine and some FRAME pallets. This
template can act as a good starting point for those who want to launch a solochain.</li>
<li><a href="https://github.com/pezkuwichain/pezkuwi-sdk-teyrchain-template"><code>teyrchain-template</code></a>:
A teyrchain template ready to be connected to a relay-chain, such as <a href="https://github.com/paseo-network/.github">Paseo</a>
, Dicle or Pezkuwi.</li>
</ul>
<p>Note that these templates are mirrored automatically from <a href="https://github.com/pezkuwichain/pezkuwi-sdk/blob/master/templates">this</a>
directory of pezkuwi-sdk, therefore any changes to them should be made as a PR to this repo.</p>
<h3 id="openzeppelin"><a class="doc-anchor" href="#openzeppelin">§</a>OpenZeppelin</h3>
<p>In June 2023, OpenZeppelin was awarded a grant from the Pezkuwi
treasury for building a number of Pezkuwi-sdk
based templates. These templates are a great starting point for developers and newcomers.
So far OpenZeppelin has released two templates, which have been fully <a href="https://github.com/pezkuwichain/pezkuwi-runtime-templates/tree/main/audits">audited</a>:</p>
<ul>
<li><a href="https://github.com/pezkuwichain/pezkuwi-runtime-templates?tab=readme-ov-file#generic-runtime-template"><code>generic-runtime-template</code></a>:
A minimal template that has all the common pallets that teyrchains use with secure defaults.</li>
<li><a href="https://github.com/pezkuwichain/pezkuwi-runtime-templates/tree/main?tab=readme-ov-file#evm-template"><code>evm-runtime-template</code></a>:
This template has EVM compatibility out of the box and allows migrating your solidity contracts
or EVM compatible dapps easily. It also uses 20 byte addresses like Ethereum and has some
Account Abstraction support.</li>
</ul>
<h3 id="pop-cli"><a class="doc-anchor" href="#pop-cli">§</a>POP-CLI</h3>
<p>Is a CLI tool capable of scaffolding a new pezkuwi-sdk-based project, possibly removing the
need for templates.</p>
<ul>
<li><a href="https://pop.r0gue.io/cli/">https://pop.r0gue.io/cli/</a></li>
</ul>
</div></details></section></div></main></body></html>
@@ -0,0 +1 @@
window.SIDEBAR_ITEMS = {};
@@ -0,0 +1,52 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Learn about XCM, the de-facto communication language between different consensus systems."><title>pezkuwi_sdk_docs::pezkuwi_sdk::xcm - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-e56847b5.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="pezkuwi_sdk_docs" data-themes="" data-resource-suffix="" data-rustdoc-version="1.91.1 (ed61e7d7e 2025-11-07)" data-channel="1.91.1" data-search-js="search-e256b49e.js" data-stringdex-js="stringdex-c3e638e9.js" data-settings-js="settings-c38705f0.js" ><script src="../../../static.files/storage-e2aeef58.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../../static.files/main-6dc2a7f3.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-263c88ec.css"></noscript><link rel="icon" href="https://pezkuwichain.io/favicon.ico"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Module xcm</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../pezkuwi_sdk_docs/index.html">pezkuwi_<wbr>sdk_<wbr>docs</a><span class="version">0.0.2</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module xcm</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#xcm" title="XCM">XCM</a><ul><li><a href="#overview" title="Overview">Overview</a></li><li><a href="#in-pezkuwi-sdk" title="In Pezkuwi SDK">In Pezkuwi SDK</a></li><li><a href="#implementation" title="Implementation">Implementation</a></li><li><a href="#example" title="Example">Example</a></li><li><a href="#get-started" title="Get started">Get started</a></li></ul></li></ul></section><div id="rustdoc-modnav"><h2><a href="../index.html">In pezkuwi_<wbr>sdk_<wbr>docs::<wbr>pezkuwi_<wbr>sdk</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">pezkuwi_sdk_docs</a>::<wbr><a href="../index.html">pezkuwi_sdk</a></div><h1>Module <span>xcm</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../src/pezkuwi_sdk_docs/pezkuwi_sdk/xcm.rs.html#1-70">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Learn about XCM, the de-facto communication language between different consensus systems.</p>
<h2 id="xcm"><a class="doc-anchor" href="#xcm">§</a>XCM</h2>
<p>XCM, or Cross-Consensus Messaging, is a <strong>language</strong> to communicate <strong>intentions</strong> between
<strong>consensus systems</strong>.</p>
<h3 id="overview"><a class="doc-anchor" href="#overview">§</a>Overview</h3>
<p>XCM is a standard, specification of which lives in the <a href="https://github.com/pezkuwichain/pezkuwi-fellows/xcm-format">xcm format repo</a>.
Its agnostic both in programming language and blockchain platform, which means it could be used
in Rust in Pezkuwi, or in Go or C++ in any other platform like Cosmos or Ethereum.</p>
<p>It enables different consensus systems to communicate with each other in an expressive manner.
Consensus systems include blockchains, smart contracts, and any other state machine that
achieves consensus in some way.</p>
<p>XCM is executed on a virtual machine called the XCVM.
Scripts can be written with the XCM language, which are often called XCMs, messages or XCM
programs. Each program is a series of instructions, which get executed one after the other by
the virtual machine. These instructions aim to encompass all major things users typically do in
consensus systems. There are instructions on asset transferring, teleporting, locking, among
others. New instructions are added and changes to the XCVM are made via the <a href="https://github.com/paritytech/xcm-format/blob/master/proposals/0032-process.md">RFC process</a>.</p>
<h3 id="in-pezkuwi-sdk"><a class="doc-anchor" href="#in-pezkuwi-sdk">§</a>In Pezkuwi SDK</h3>
<p>The Pezkuwi SDK allows for easily deploying sovereign blockchains from scratch, all very
customizable. Dealing with many heterogeneous blockchains can be cumbersome.
XCM allows all these blockchains to communicate with an agreed-upon language.
As long as an implementation of the XCVM is implemented, the same XCM program can be executed in
all blockchains and perform the same task.</p>
<h3 id="implementation"><a class="doc-anchor" href="#implementation">§</a>Implementation</h3>
<p>A ready-to-use Rust implementation lives in the <a href="https://github.com/pezkuwichain/pezkuwi-sdk/tree/main/pezkuwi/xcm">pezkuwi-sdk repo</a>,
but will be moved to its own repo in the future.</p>
<p>Its main components are:</p>
<ul>
<li><a href="::xcm"><code>xcm</code></a>: The definition of the basic types and instructions.</li>
<li>[<code>xcm_executor</code>]: An implementation of the virtual machine to execute instructions.</li>
<li>[<code>pezpallet_xcm</code>]: A FRAME pezpallet for interacting with the executor.</li>
<li>[<code>xcm_builder</code>]: A collection of types to configure the executor.</li>
<li>[<code>xcm_pez_simulator</code>]: A playground for trying out different XCM programs and executor
configurations.</li>
</ul>
<h3 id="example"><a class="doc-anchor" href="#example">§</a>Example</h3>
<p>To perform the very usual operation of transferring assets, the following XCM program can be
used:</p>
<div class="example-wrap ignore"><a href="#" class="tooltip" title="This example is not tested"></a><pre class="rust rust-example-rendered"><code><span class="attr">#[test]
</span><span class="kw">fn </span>example_transfer() {
<span class="kw">let </span>_transfer_program = Xcm::&lt;()&gt;(<span class="macro">vec!</span>[
WithdrawAsset((Here, <span class="number">100u128</span>).into()),
BuyExecution { fees: (Here, <span class="number">100u128</span>).into(), weight_limit: Unlimited },
DepositAsset {
assets: All.into(),
beneficiary: AccountId32 { id: [<span class="number">0u8</span>; <span class="number">32</span>].into(), network: <span class="prelude-val">None </span>}.into(),
},
]);
}</code></pre></div><h3 id="get-started"><a class="doc-anchor" href="#get-started">§</a>Get started</h3>
<p>To learn how it works and to get started, go to the <a href="xcm_pez_docs">XCM docs</a>.</p>
</div></details></section></div></main></body></html>
@@ -0,0 +1 @@
window.SIDEBAR_ITEMS = {};