> For the complete documentation index, see [llms.txt](https://bootcamp.openguild.wtf/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://bootcamp.openguild.wtf/curriculum.md).

# 📖 Curriculum

Learn about the structure of this bootcamp's modules and how to use the guidebook effectively for your learning journey.

The guidebook provides you all neccessary knowledge to have adequate skills building on top of the Polkadot technology.&#x20;

Below is the structure of the guidebook:&#x20;

## 📕 Rust Programming Language

<figure><img src="https://2688244615-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqpKohKlriBQm0I9cc9k5%2Fuploads%2Fvyrxw6tiWtZ3t5Jq117y%2FOrder%20Banner%20Polkadot%20Open%20Bootcamp.webp?alt=media&amp;token=e9a260b2-db46-4245-b26c-b3b9f7272156" alt=""><figcaption></figcaption></figure>

{% content-ref url="/pages/SUic7ynBvO5aDq2Y987d" %}
[Rust Programming Language](/rust-programming-language/basic-rust.md)
{% endcontent-ref %}

<table data-full-width="false"><thead><tr><th width="133">Section</th><th data-type="rating" data-max="5">Difficulty</th><th width="611">Name</th><th data-hidden><select><option value="KM4LM5Zph5Fl" label="Polkadot" color="blue"></option><option value="6R525et1jBXM" label="Cumulus" color="blue"></option><option value="Jv09MOyVCfCA" label="XCM" color="blue"></option><option value="B7lhUv0RiksK" label="Substrate" color="blue"></option></select></th></tr></thead><tbody><tr><td>Section 1</td><td>1</td><td><a data-mention href="/rust-programming-language/basic-rust/introduction-to-rust.md">Introduction to Rust</a></td><td></td></tr><tr><td>Section 2</td><td>2</td><td><a data-mention href="/rust-programming-language/basic-rust/common-programming-concepts.md">Common Programming Concepts</a></td><td><span data-option="Jv09MOyVCfCA">XCM</span></td></tr><tr><td>Section 3</td><td>2</td><td><a data-mention href="/rust-programming-language/basic-rust/program-life-cycle.md">Program Life Cycle</a></td><td></td></tr><tr><td>Section 4</td><td>3</td><td><a data-mention href="/rust-programming-language/basic-rust/ownership-and-borrow-checker.md">Ownership &amp; Borrow Checker</a></td><td></td></tr><tr><td>Section 5</td><td>3</td><td><a data-mention href="/rust-programming-language/basic-rust/common-data-structures.md">Common Data Structures</a></td><td></td></tr><tr><td>Section 6</td><td>3</td><td><a data-mention href="/rust-programming-language/advanced-rust/generic-types-trait-extension-and-advanced-types.md">Generic types, Trait extension and Advanced types</a></td><td></td></tr><tr><td>Section 7</td><td>3</td><td><a data-mention href="/rust-programming-language/advanced-rust/lifetime-notation.md">Lifetime Notation</a></td><td></td></tr><tr><td>Section 8</td><td>4</td><td><a data-mention href="/rust-programming-language/advanced-rust/smart-pointers-and-macros.md">Smart pointers &amp; Macros</a></td><td></td></tr><tr><td>Section 9</td><td>2</td><td><a data-mention href="/rust-programming-language/advanced-rust/common-design-patterns-in-rust.md">Common design patterns in Rust</a></td><td></td></tr><tr><td>Section 10</td><td>2</td><td><a data-mention href="/rust-programming-language/advanced-rust/package-management-and-how-to-structure-your-rust-project.md">Package management &amp; How to structure your Rust project</a></td><td></td></tr><tr><td>Section 11</td><td>2</td><td><a data-mention href="/rust-programming-language/advanced-rust/overview-of-the-rust-ecosystem.md">Overview of the Rust ecosystem</a></td><td></td></tr></tbody></table>

## 📘 Building a blockchain with Polkadot SDK

<figure><img src="https://2688244615-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqpKohKlriBQm0I9cc9k5%2Fuploads%2FFLTzDAol1FeYD3WvhXy5%2FPolkadot%20Open%20Bootcamp%20Banner.webp?alt=media&amp;token=a5c95f3f-db56-4280-a9dc-2e7acb6a338f" alt=""><figcaption></figcaption></figure>

{% content-ref url="/pages/cvrK65RFix5oDjVUjBGp" %}
[Building a blockchain with Polkadot SDK](/building-a-blockchain-with-polkadot-sdk/polkadot.md)
{% endcontent-ref %}

Learn how to build a blockchain with Polkadot SDK. At the end of this module, you will sucessfully build a functional parachain on Polkadot that allows users to create an onchain community.

<table data-full-width="false"><thead><tr><th width="136">Section</th><th data-type="rating" data-max="5">Difficulty</th><th width="340">Name</th></tr></thead><tbody><tr><td>Prelude</td><td>1</td><td>Introduction to the Developer Bootcamp</td></tr><tr><td>Section 1</td><td>1</td><td><a data-mention href="/building-a-blockchain-with-polkadot-sdk/polkadot-sdk.md">Polkadot SDK</a></td></tr><tr><td></td><td>2</td><td><a data-mention href="/building-a-blockchain-with-polkadot-sdk/polkadot-sdk/substrate.md">Substrate</a></td></tr><tr><td></td><td>3</td><td><a data-mention href="/building-a-blockchain-with-polkadot-sdk/polkadot/additional-reads/understanding-the-sharded-network-design-of-polkadot.md">Understanding the sharded network design of Polkadot</a></td></tr><tr><td>Section 2</td><td>2</td><td><a data-mention href="/building-a-blockchain-with-polkadot-sdk/polkadot-sdk/substrate/create-a-new-blockchain.md">Create a new blockchain</a></td></tr><tr><td></td><td>2</td><td><a data-mention href="/building-a-blockchain-with-polkadot-sdk/polkadot-sdk/substrate/create-a-new-blockchain/break-down-the-node-architecture.md">Break down the node architecture</a></td></tr><tr><td>Section 3</td><td>3</td><td>Building a Substrate state machine from scratch</td></tr><tr><td>Section 4</td><td>3</td><td><a data-mention href="/building-a-blockchain-with-polkadot-sdk/polkadot-sdk/substrate/adding-a-custom-logic-to-runtime.md">Adding a custom logic to runtime</a></td></tr><tr><td></td><td>3</td><td>Substrate storage abstractions &#x26; Common storage data types</td></tr><tr><td></td><td>2</td><td><a data-mention href="/building-a-blockchain-with-polkadot-sdk/polkadot-sdk/substrate/common-runtime-modules.md">Common runtime modules</a></td></tr><tr><td></td><td>2</td><td><a data-mention href="/building-a-blockchain-with-polkadot-sdk/polkadot-sdk/substrate/adding-a-custom-logic-to-runtime/hooks.md">Hooks</a></td></tr><tr><td></td><td>2</td><td><a data-mention href="/building-a-blockchain-with-polkadot-sdk/polkadot-sdk/substrate/runtime-api-and-rpc.md">Runtime API and RPC</a></td></tr><tr><td></td><td>2</td><td><a data-mention href="/building-a-blockchain-with-polkadot-sdk/polkadot-sdk/substrate/adding-a-custom-logic-to-runtime/extensions/signed-extensions.md">Signed Extensions</a> </td></tr><tr><td></td><td>2</td><td><a data-mention href="/building-a-blockchain-with-polkadot-sdk/polkadot-sdk/substrate/adding-a-custom-logic-to-runtime/weights-and-benchmarking.md">Weights &amp; Benchmarking</a></td></tr><tr><td>Section 5</td><td>2</td><td>Interacting with the Substrate-based blockchain</td></tr><tr><td></td><td>1</td><td>Mainnet, Testnet and Canary Network</td></tr><tr><td>Section 6</td><td>3</td><td><a data-mention href="/building-a-blockchain-with-polkadot-sdk/polkadot-sdk/substrate/bump-polkadot-sdk-versions.md">Bump Polkadot SDK versions</a></td></tr><tr><td>Section 7</td><td>4</td><td>Path of Parachain Block breakdown</td></tr><tr><td>Section 8</td><td>3</td><td><a data-mention href="/building-a-blockchain-with-polkadot-sdk/polkadot-sdk/cumulus/introduction-to-cumulus.md">Introduction to Cumulus</a></td></tr><tr><td>Section 9</td><td>4</td><td>Connect a Parachain to Relaychain network<br><a data-mention href="/building-a-blockchain-with-polkadot-sdk/polkadot-sdk/cumulus/running-a-local-relaychain-network/launch-the-network-and-run-a-collator-node.md">Launch the network &amp; run a collator node</a><br><a data-mention href="/building-a-blockchain-with-polkadot-sdk/polkadot-sdk/cumulus/running-a-local-relaychain-network.md">Running a local relaychain network</a></td></tr><tr><td></td><td>3</td><td><a data-mention href="/building-a-blockchain-with-polkadot-sdk/polkadot-sdk/cumulus/agile-coretime.md">Agile Coretime</a></td></tr><tr><td>Section 10</td><td>4</td><td>Introduction to XCM, Transport Protocols &#x26; XCVM | Open Polkadot Bootcamp</td></tr><tr><td></td><td>4</td><td>XCM Fundamentals with Locations &#x26; Assets</td></tr><tr><td></td><td>4</td><td>Transfers and Transact</td></tr></tbody></table>

## 📒 Smart Contract Development

<figure><img src="https://2688244615-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqpKohKlriBQm0I9cc9k5%2Fuploads%2FtgBppvrMlwLgxmzvSuJC%2F2.png%202268x934.webp?alt=media&amp;token=e6b60260-8baf-4107-8100-8f246d3bc06e" alt=""><figcaption></figcaption></figure>

{% content-ref url="/pages/4rOrYEKEMhfve2xy3H8h" %}
[Smart Contract Development](/smart-contract-development/introduction.md)
{% endcontent-ref %}

<table data-full-width="false"><thead><tr><th width="133">Section</th><th data-type="rating" data-max="5">Difficulty</th><th width="451">Name</th></tr></thead><tbody><tr><td>Section 1</td><td>1</td><td><a data-mention href="/smart-contract-development/introduction/introduction-to-polkavm.md">Introduction to PolkaVM</a></td></tr><tr><td></td><td>1</td><td><a data-mention href="/smart-contract-development/introduction/getting-started-with-solidity-development.md">Getting started with Solidity development</a></td></tr><tr><td></td><td>2</td><td><a data-mention href="/smart-contract-development/introduction/solidity-file-structure.md">Solidity File Structure</a></td></tr><tr><td></td><td>2</td><td><a data-mention href="/smart-contract-development/introduction/contract-structure.md">Contract Structure</a></td></tr><tr><td>Section 2</td><td>2</td><td><a data-mention href="/smart-contract-development/basic-solidity/value-types.md">Value types</a></td></tr><tr><td></td><td>2</td><td><a data-mention href="/smart-contract-development/basic-solidity/reference-types.md">Reference Types</a></td></tr><tr><td></td><td>2</td><td><a data-mention href="/smart-contract-development/basic-solidity/mapping-types.md">Mapping Types</a></td></tr><tr><td></td><td>3</td><td><a data-mention href="/smart-contract-development/basic-solidity/simple-storage.md">Simple Storage</a></td></tr><tr><td>Section 3</td><td>2</td><td><a data-mention href="/smart-contract-development/advanced-solidity/units.md">Units</a></td></tr><tr><td></td><td>2</td><td><a data-mention href="/smart-contract-development/advanced-solidity/global-variables.md">Global Variables</a></td></tr><tr><td></td><td>2</td><td><a data-mention href="/smart-contract-development/advanced-solidity/expression-and-control-structures.md">Expression and Control Structures</a></td></tr><tr><td></td><td>3</td><td><a data-mention href="/smart-contract-development/advanced-solidity/advanced-storage.md">Advanced Storage</a></td></tr><tr><td></td><td>3</td><td><a data-mention href="/smart-contract-development/advanced-solidity/contract-tests.md">Contract Tests</a></td></tr><tr><td></td><td>3</td><td><a data-mention href="/smart-contract-development/advanced-solidity/contracts.md">Contracts</a></td></tr></tbody></table>
