Hackusama Hacker Guide
Welcome to Hackusama, the first-ever hackathon for the Kusama and Polkadot ecosystem. Kusama is a network built by Ethereum co-founder Dr. Gavin Wood as a risk-taking, fast-moving ‘canary in the coal mine’ operating alongside its cousin network, Polkadot. It's a living, breathing, multichain ecosystem built to put the best tech in the hands of change agents to spark innovation, disrupt the status quo, and quickly push the limits of what’s possible.
This hacker guide will provide you with the following materials:
- Communication channels
- Hackathon Categories and Ideas
- Category 1: Build a Blockchain
- Category 2: Open Hack
- Judging Criteria
- Hackathon Schedule
START HERE: Join the Official Hackusama channels
- All Hackusama-related chat can take place in the Official Kusama Telegram
- Technical Questions for live chat should go to the Substrate Technical Riot
- The Hackusama topic on the Kusama Forum can be used for:
- Requesting feedback on project ideas
- Asking questions that you don’t need answered in live chat
- Looking for teammates
- Any other discussions or questions that don’t require live feedback
Sign up for the Official Hackusama Webinar Series
Office hours - Weekly office hours will be held during Parity’s Substrate Seminar live call, every Tuesday 2:00 - 3.30pm UTC. Sign up here.
The Kusama, Polkadot, and Substrate ecosystems have lots of resources to help you get started. Keep reading to learn more and find lots of helpful links:
What is Polkadot?
Polkadot is a sharded, multichain network founded by Dr. Gavin Wood, the co-founder and former chief technology officer of Ethereum and creator of the Solidity programming language. After three years of design and implementation, Polkadot is currently in the middle of its mainnet launch process that began in May 2020. The Polkadot network is a metaprotocol that solves many challenges that have hindered the growth of legacy blockchains, including scalability, governance, security, and interoperability. Polkadot is a blockchain network fostered by the Web3 Foundation and built by industry-leading developers at Parity Technologies.
What is Kusama?
Kusama is also a sharded, multichain network founded by Dr. Gavin Wood that is composed of specialized blockchains (parachains) built using the Substrate framework and nearly the same codebase as Polkadot. Kusama is a network built as a risk-taking, fast-moving ‘canary in the coal mine’ alongside its cousin Polkadot. In comparison to Polkadot, Kusama’s powerful decentralized governance system moves at a more rapid pace and the network has lower economic barriers to entry. The network is a development environment for teams who want to 1) move fast and innovate exclusively on Kusama, or 2) fine-tune their tech in preparation for deployment on Polkadot. Kusama's mainnet was launched in 2019.
What is Substrate?
Blockchains in the Kusama and Polkadot ecosystem are built using Substrate. Substrate is a blockchain development framework with a completely generic state transition function and modular components for consensus, networking, and configuration. Despite being "completely generic", it comes with both standards and conventions, particularly with the Substrate runtime module library (FRAME). FRAME makes rapid development of purpose-built blockchains a reality by providing developers with a flexible library of carefully designed blockchain building blocks. Cumulus (under development), a tool for easily connecting your blockchain to a network of blockchains, unlocks interchain communication, collaboration and shared security on the Kusama and Polkadot networks.
Kusama and Polkadot
Network information (Telemetry)
Substrate Recipes (working code examples)
Useful FRAME Pallets
How do the Kusama and Polkadot cousins compare?
See the image below or read more.
Weekly office hours will be held during Parity’s Substrate Seminar live call, every Tuesday 2:00 - 3.30pm UTC. During the call, you are welcome to chat with Parity developers and get answers to your questions. https://substrate.dev/seminar
There is a dedicated Substrate Technical chat on Riot, which you can join via this link: https://riot.im/app/#/room/#substrate-technical:matrix.org
The best place for highly technical long-form questions is Stack Overflow. Please make use of the following tags: substrate, ink, parity-io, rust
In addition to the examples below, you can also check out open and completed bounties, challenges and the projects other teams are building in the ecosystem:
Hackathon Categories and Ideas
Category 1: Build a Blockchain
In this category, you are challenged to build a custom blockchain using Substrate. In the near future, your chain will have the ability to plug into the Kusama Relay Chain for interoperability and plug-and-play security. The ideas below are meant to inspire you. We hope you are creative and build the custom chain you believe will be most useful to the other builders in the Kusama ecosystem!
- Gaming Chain
- Games can be defined as state changes between two or more parties with additional pre-defined rules. Our vision of an ideal gaming chain isn't one which can support slow two-player turn-based games (that problem has been solved), but a chain which is abstract enough to go from chess and battleship to almost real-time rogue-like games with many players in the same world. A product of this category will ideally be an abstract chain on which developers/entrepreneurs can launch a game seamlessly into the multiverse, build a sports booking & esports tournament platform, fundraise for games, and enable game developers to receive fair distribution. Functionality could include all or some of the following features:
- Experiment with free tx's, free tx's up to a specific limit, or free tx's based on a player's reputation. Build a proof of concept of a web3 game that does not compromise the feel of a centralized game but persists players, items, and information for true ownership of one's avatar.
- DeFi or Stablecoin Chain
- Decentralized finance is the reimagining of traditional financial services on the trust-minimized backbone of the blockchain. One example of DeFi includes loans and interest-bearing positions such as in MakerDAO’s collateral debt positions system that allows users to take loans out against themselves as counterparties. Another example is a synthetic asset protocol that allows users to create stablecoin positions or derivatives. For Kusama, DeFi can exist on its own parachain by creating an optimized implementation or across parachains by composing a protocol on top of lower-level primitives and using XCMP for interoperability.
- Stablecoins are cryptocurrencies that have lower volatility that are often pegged to the value of a reference asset (such as the USD). There are different designs for implementing stablecoins by using algorithmic stablecoin designs such as Schellingcoin or by making synthetic asset designs. A Kusama stablecoin could be similar to one of these or something completely original and new.
- Other ideas in this category include a stablecoin savings account (e.g. Dharma), an insurance layer for DeFI (e.g. Opyn), a Business-to-business payment platform (e.g. Veem), a Fast Payments chain, or a recurring subscription payments implementation, or a Non-custodial exchange that integrates with any custody solution and allows users to trade with one another without giving up control to a third-party custodian.
- Privacy Chain
- Blockchains are transparent by nature, all of the transaction history is visible for everyone to see. For some applications, stronger privacy needs to exist. On Kusama, privacy can be integrated as its own parachain by using cryptography such as zkSNARKs, STARKs, ring signatures, or other methods of hiding information on chain. It could also be possible to create privacy on the protocol or network level by coming up with designs to hide node or validator identities. The minimum functionality that a project would include here is the ability for users to be able to privately transact value in the Kusama or Polkadot ecosystem. Different designs are possible but the most useful design would be a parachain that would allow private transactions with arbitrary Substrate tokens. Functionality could include all or some of the following features:
- The ability to transfer tokens between two accounts without revealing the amount or types of tokens transferred, even if the addresses involved in the transaction are still visible
- The ability to transfer tokens between two accounts without revealing the addresses involved, even if the amounts or types of tokens that are transferred are public
- Accounts with an unknown balance but also with a view key to allow selected users to view the account’s balance but not its incoming or outgoing transactions. This is similar to ZCash’s z-addresses.
- Confidential transactions
- Anonymous transactions
- Confidential Accounts
- DAO Chain
- A DAO, or Decentralized Autonomous Organization, is a blockchain application which allows members of a community to collectively come to agreements on certain decisions in that DAO. Aragon is the most famous DAO framework in the Ethereum world. It allows one to launch a DAO in a few clicks, add new applications into it (like different modes of voting or financing) and permits members to initiate votes for actions executed both inside the DAO, and as the DAO towards external smart contracts (i.e. the DAO can invest in DeFi, thereby earning interest on its membership fees). A Kusama DAO chain would allow for a modular DAO framework with basic modules available out of the box, and would make it easy for users to plug their own custom modules into the DAO at will. Whether this is better done through smart contracts or WASM modules which require governance, is up to the developer, but the essence of a DAO is its ability to programmatically interact with other DAOs on the same chain - interoperability of governance is the new way to think about digital nation states.
- Smart Contract Chain
- Smart contracts chains are sandboxed execution environments for small pieces of code that can be permissionless deployed by other developers. Substrate provides a Wasm-based smart contract module and Kusama will definitely need an implementation of this to deploy a live parachain. Some specific ideas could include smart contracts in other languages like assemblyscript and particularly languages for which there are existing toolchains. What would a perfect smart contract chain look like to you?
- Content, Social Networking, or Storage Chain
- A content or storage chain would focus on everything from a decentralized version of Github and taking ownership of one's personal data, to hosting unstoppable and censorship resistant websites. Social networks with privacy built-in, decentralized email platforms, next-gen torrents, all this should be possible by integrating a substrate chain with protocols like IPFS or Storj. A Kusama storage chain would be demonstrating a real need for decentralized storage, not just storing things for the sake of it. Alternatively, it would be an abstract chain for fee-based reads/writes that others could connect to as easily as to AWS S3 buckets. This could include integration with IPFS, Storj, etc.
- Dark DEX
- A Dark DEX for Kusama could include standard DEX-like features where users could trade tokens from different parachains as well as wrapped tokens from different blockchains. Various privacy and confidentiality features could include:
- Confidentiality of details around current and historical orders (size, price, time/date, types of tokens transacted)
- Privacy of participants - the identities of users participating in transactions on the DEX should not be revealed
- Decentralized Identity Chain
- Decentralized Marketplace Chain
- Other blockchain ideas
- Public voting chain
- Computation chain (like Golem)
- Licensing chain
- Predictions market
- Federated oracles
Category 2: Open Hack
In this category, we want you to push the limits of what’s possible. Be creative, break things, make us laugh, make us cry. Test suites, visualizations, Wasm interoperability, and everything in between qualifies for this category. Shock us with your brilliance.
- Test suite
- It is currently not very straightforward to write automated tests - like those available with Truffle or Embark in Ethereum - for blockchain-specific functionality on substrate-based chains. A test suite would allow one to seed the suite with test wallets and execute the state tests in a deterministic fashion. The output should be a comprehensive list of both problems and suggestions on how to fix them, if known. Ideally, the error fixing process would be a crowdsourced effort with up until then unseen errors automatically being turned into a new category on a central repository of problems and recipes.
- Something like Truffle https://github.com/trufflesuite/truffle or an integration with Truffle
- Transpiler for smart contracts providing interoperability with Wasm
- A transpiler is a tool which takes as input one programming language and translates it into another programming language that's available on the target platform. Transpilers are very useful when one's legacy codebase is large and a simple transpilation would be faster than a rewrite in another language which would then need to be additionally audited.That's not to say that a tool that transpiles any other language into WASM wouldn't be just as popular - perhaps one that's half way there already, like Nimplay (https://github.com/status-im/nimplay).
- Example (Solidity-to-Wasm): https://github.com/hyperledger-labs/solang
- Block production visualizer: Got an idea for an interesting, insightful and beautiful way to visualize the growth of the Polkadot relay chain? Great! Bonus points if it allows easy block exploration, finalization, validator data, temporary forks, or other information related to block production on Polkadot.
- Block explorer: If you have a great way to explore the historical blockchain status, here’s your chance to show it to the world.
- Validator visualizer: Dazzle us with your approach to dynamically displaying information about validators – things like their identifying information, address, era points, or which blocks they produced. You could rank them by the number of blocks produced, or the length of time that they’ve been part of the active validator set. Get creative!
- Nomination visualization: In Polkadot, validators are generally nominated by others to get into the active validator set. We imagine this as a giant graph with some nodes being validators, a much larger number being nominators, and connections between nominators and their selected validator(s). Share your vision of how this could be displayed to show users the current state of the nomination ecosystem.
- Token Distribution Graph: Show us how you would display the way Polkadot tokens are distributed amongst different accounts.
- Account information visualizer: Get inventive with a single page that gives relevant information about the user – any on-chain identity, tokens held, whom they are nominating, if they are validating, account age, previous votes on referenda, proposal submissions, or any other information about an individual account.
- A relay chain clock: Maybe it beeps every time a certain number of blocks go by, or a cuckoo comes out once every 100 blocks? Got a better idea?
- Throughput visualizer: Show how many transactions are being processed on the relay chain and, once they’re enabled, on the parachains. Or show how many transactions are in the transaction pool. Your choice.
- Burner Wallet: You enter your password once when starting to use the app, which then allows you to interact with the app without entering a password for the rest of the session. Huge improvements to UX. A burner wallet can take a private key in localstorage or via GET and create a temporary wallet.
- Other Inspiration
- Create a reusable Substrate decentralized storage runtime module: https://github.com/w3f/General-Grants-Program/issues/123
- Substrate API Sidecar: https://github.com/paritytech/substrate-api-sidecar
- Staking tools: https://www.stakingrewards.com/asset/kusama
Contribution to Decentralization and Web 3.0 Friendliness (25%)
Includes how useful the chain or tooling is in the Kusama, Polkadot, and Web 3.0 ecosystem as a whole.
Originality, Creativity, and Innovation (25%)
Includes how new and novel the submission is versus existing technologies.
Technical Difficulty and Soundness (25%)
Includes the level of skill or knowledge required to build the parachain or tools.
User Experience (25%)
Includes how intuitive and understandable the submission is for potential users.