# Track Deep Dive

### 🟧 Develop a new Substrate runtime modules

#### Deliverables

* [x] Github repository contains your runtime module code
* [x] Publish your runtime module to [Rust crate registry](https://crates.io/). [Learn from Tutorial](https://doc.rust-lang.org/cargo/reference/publishing.html).
* [x] Write a test for your Pallet. [Learn from Tutorial](https://docs.substrate.io/reference/how-to-guides/testing/set-up-basic-tests/)

#### How to win this track?

* [x] Good documentation
* [x] Solve a specific problem
* [x] Quality code

#### Description

In this track, we don't expect you to build a fully functional blockchain using Substrate but only a functional runtime module which solves a specific problems. If you are new to Polkadot and Substrate. Follow tutorials from the [official documentation](https://docs.substrate.io/quick-start/) or learn from the [Substrate Hackathon Knowledge Map](https://github.com/substrate-developer-hub/hackathon-knowledge-map) which contains many resources.

[Runtime modules](https://docs.substrate.io/reference/frame-pallets/) are core components of FRAME system in [Substrate Runtime development](https://docs.substrate.io/learn/runtime-development/). The FRAME development environment provides modules—called pallets—and support libraries that you can use, modify, and extend to build the runtime logic to suit the needs of your blockchain. Below are some examples:

* [pallet-staking](https://crates.parity.io/pallet_staking/index.html) is used to manage funds at stake by network maintainers which is used to implement the Proof of Stake blockchain or NPOS (Nominated Proof of Stake) blockchain using Substrate.
* [pallet-evm](https://docs.rs/pallet-evm/latest/pallet_evm/) is the EVM module allows unmodified EVM code to be executed in a Substrate-based blockchain.
* [pallet-nft](https://wiki.polkadot.network/docs/learn-nft-pallets) allow developers to easily implement NFT-related actions within their dApp.

#### Resources

* [Tutorial: Create your first runtime module](https://doc.deepernetwork.org/tutorials/v3/add-a-pallet/): Learn how to create your first [pallet-nicks](https://crates.io/crates/pallet-nicks) runtime module that allows you to assign a nick name for account on your Substrate-based blockchain.
* [Open Runtime Module Library (ORML)](https://github.com/open-web3-stack/open-runtime-module-library?tab=readme-ov-file): If you have developed Solidity application before, you might be familiar with [OpenZeppelin](https://www.openzeppelin.com/) which offers standard contract that help you to speed up the contract development process. In Substrate, we have ORML which contains a set of useful runtime modules.

#### Learn from other projects

* [Chainlink Feed Pallet](https://github.com/smartcontractkit/chainlink-polkadot) - Chainlink feed token interface.
* [Official in Substrate](https://github.com/paritytech/substrate/tree/master/frame) - Large collection, Parity maintained.
* [Open Runtime Module Library (ORML)](https://github.com/open-web3-stack/open-runtime-module-library) - Community maintained collection of Substrate runtime modules.
* [Sunshine Bounty](https://github.com/sunshine-protocol/sunshine-bounty/tree/master/pallets) - Distributed autonomous organization (DAO) for administering a bounty program.
* [Sunshine Identity](https://github.com/sunshine-protocol/sunshine-keybase/tree/master/identity/pallet) - Keybase-inspired identity management.
* [Sunshine Faucet](https://github.com/sunshine-protocol/sunshine-keybase/tree/master/faucet/pallet) - Dispense resources for a development chain.
* [RMRK Pallets](https://github.com/rmrk-team/rmrk-substrate) - Nested, conditional & Multi-resourced NFTs.

***

### 🟦 Write a new interactive tutorial for Polkadot development

#### Deliverables

* [x] Github repository contains your tutorial documentation & code
* [x] 💯 Bonus point for hosting your interactive tutorial on the live website. If yes, please submit with the URL to your project.

#### How to win this track?

* [x] Good documentation
* [x] Good user experience and comprehensive content

#### Description

This track expects you to build an interactive tutorial that helps other developers to learn Polkadot technology easier. The tutorial can be about Polkadot SDK, XCM or Parachain Deployment...Let's be creative.

#### Resources

* [dotcodeschool](https://dotcodeschool.com/courses): Dot Code School is an interactive online school that teaches you how to build meaningful web3 applications using the Polkadot SDK. Learn how to build your own custom blockchain from zero to one hundred.
* [Rust State Machine](https://www.shawntabrizi.com/rust-state-machine-mdbook/#introduction-to-the-rust-state-machine): This tutorial tries to directly address this by having you build a completely vanilla Rust project which does all the same tricks as the Polkadot SDK, so you know first hand what is going on behind the scenes.
* [Substrate Kitties](https://github.com/openguild-labs/substrate-kitties): Learn to build a NFT blockchain using Substrate
* [Google Interactive Tutorials](https://techdevguide.withgoogle.com/resources/types/interactive-tutorial/?no-filter=true)
* [Nominated Proof of Stake Blockchain Tutorial with Substrate](https://github.com/openguild-labs/substrate-npos): Guide you how to create a layer-1 blockchain using NPOS as a consensus mechanism.

***

### 🟨 Deploy an Appchain on DanceBox, Tanssi's Testnet

#### Deliverables

* [x] Deploy your Appchain on Tanssi Network
* [x] Pitch deck of your Appchain
* [x] Demo of your Appchain functionalities

#### How to win this track?

* [x] Appchain is innovative
* [x] Appchain tackles specific problems
* [x] Appchain must be built on Tanssi Network

#### Description

Tanssi is an appchain infrastructure protocol that makes deploying blockchains with custom logic specific to certain types of applications significantly easier than what is available today.

Appchains provide the ultimate control over the logic that powers the runtime of the blockchain. Consequently, they offer an excellent way for projects to scale and build optimized solutions for their products, resulting in a superior user experience.

Dancebox is the first public Tanssi TestNet and is designed to streamline the deployment of appchains. It allows teams to swiftly onboard and launch their appchains within minutes, providing a robust environment for testing and development.

#### Resources

* [Getting started with DanceBox](https://docs.tanssi.network/builders/tanssi-network/testnet/dancebox/)
* Learn more about [Appchain Development on Tanssi Network](https://docs.tanssi.network/learn/tanssi/overview/).
* Learn more about [Technical Features of Tanssi](https://docs.tanssi.network/learn/tanssi/technical-features/)
* [Video: "How to Deploy a ContainerChain on the Tanssi Dancebox Testnet"](https://www.youtube.com/watch?v=Ovasc7uAXpk)

***

### 🟩 Developer tools & libraries for Substrate

#### Deliverables

* [x] Application must be deployed or Libraries must be published on NPM or Cargo Crate Registry
* [x] Pitch deck of your solution
* [x] Demo of your application functionalities (video or website)

#### How to win this track?

* [x] Your solution is innovative
* [x] Your solution tackles specific problems

#### Description

Build developer tools and libraries that support the Substrate development.

#### Resources

* Discover [tool ecosystem in Substrate](https://github.com/substrate-developer-hub/awesome-substrate?tab=readme-ov-file#tools)

***

### 🟪 Build a NFT application using Unique Network SDK

#### Deliverables

* [x] Deploy your application
* [x] Pitch deck of your solution
* [x] Demo of your application functionalities (video or website)

#### How to win this track?

* [x] Your solution is innovative
* [x] Your solution tackles specific problems
* [x] Required to use Unique Network technology

#### Description

Unique Network is the next-generation NFT chain for advanced use cases and mass adoption and is an infrastructure for the next generation NFTs, offering developers independence from network-wide transaction fees and upgrades.

Learn about projects built on top of Unique Network: <https://unique.network/usecases/>

#### Resources

Unique Network provides various tools for application development.

* [About Unique Network](https://unique.network/)
* [Unique Network SDK](https://docs.unique.network/build/sdk/getting-started.html) for the most friendly developer experience and advanced capabilities.
* [Unique Network EVM tools](https://docs.unique.network/build/evm/) if you want to use smart contracts in your application.
* [Video: "Unique Network SDK Workshop"](https://www.youtube.com/watch?v=StfRap-dvks)

***

### 🟫 Build an application powered by [Phala Network](https://phala.network)

#### Deliverables

* [x] Application must be functional on testnet
* [x] Pitch deck of your solution
* [x] Demo of your application functionalities (video or website)

#### How to win this track?

* [x] Your solution is innovative
* [x] Your solution tackles specific problems
* [x] Required to use Phala Network technology

#### Description

Phala Network is revolutionizing Web3 by providing dApp developers with an off-chain compute infrastructure that is truly decentralized and trustless. By connecting Smart Contracts to our off-chain programs called [Phat Contracts](https://phala-docs.vercel.app/developers/phat-contract/), developers can supercharge their dApps with seamless cross-chain integrations, connectivity to the internet, and heavy computation. Phat Contracts make your Smart Contracts even smarter, and can be integrated in minutes using our no-code developer experience [Phat Bricks](https://phala-docs.vercel.app/developers/bricks-and-blueprints/).

#### Resources

* [Awesome PHALA contracts](https://github.com/Phala-Network/awesome-phat-contracts?tab=readme-ov-file)
* [PHALA SDK Documentation](https://phala-docs.vercel.app/jssdk/getting-started): The official way to integrate Phat Contract is with the [@phala/sdk](https://www.npmjs.com/package/@phala/sdk). It's based on Polkadot's @polkadot/api and @polkadot/api-contract. We suggest you let @phala/sdk manage these packages, so you don't have to include them in your package.json.
* Learn about [Phat Contract](https://phala.network/phat-contract)
* [Build your first AI Agent Contract](https://docs.phala.network/ai-agent-contract/getting-started/build-your-first-ai-agent-contract)
* [Build your AI Agent Contract with OpenAI](https://docs.phala.network/ai-agent-contract/getting-started/build-your-ai-agent-contract-with-openai)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://handbook.openguild.wtf/hackathon-projects-and-events/hackathon/hackathon-general-information/track-deep-dive.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
