> 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/building-a-blockchain-with-polkadot-sdk/polkadot-sdk/cumulus/introduction-to-cumulus/parachain-from-scratch.md).

# Parachain from scratch

{% embed url="<https://github.com/chungquantin/parachain-from-scratch?tab=readme-ov-file>" %}

## Create a Parachain from scratch

<figure><img src="/files/CscoaVFUitlGjnoduKzJ" alt=""><figcaption></figcaption></figure>

The repository contains two nodes \`parachain-node\` and \`solochain-node\` and one \`runtime\`. The goal of this tutorial is to help you convert your Substrate runtime to be compatible with the \`parachain-node\` and register a new parachain on the PASEO testnet.&#x20;

### Getting started

First step is to follow all the TODOs in the repository and convert your \`solochain-runtime\` to a \`parachain-runtime\` until it works with the \`parachain-node\`. To test the the local relaychain network, run the below command:

```
pop up parachain -f ./network.toml
```

If you are not familiar with the \`pop-cli\` tool, learn more in here: <https://github.com/r0gue-io/pop-cli>&#x20;

{% content-ref url="/pages/Ccn8Z3WhlT0GIhx04EXm" %}
[Break down the node architecture](/building-a-blockchain-with-polkadot-sdk/polkadot-sdk/substrate/create-a-new-blockchain/break-down-the-node-architecture.md)
{% endcontent-ref %}

#### Sharded network design and block production / finalization mechanism

<figure><img src="/files/hPC0hXuCfvUBtEZhZ5Gq" alt=""><figcaption></figcaption></figure>
