This repository outlines how to get started with development on the Zilliqa Blockchain. It also lists tutorials, courses, and tools on Zilliqa development.
Zilliqa is the first public blockchain built entirely on a sharded architecture that's scalable, secure, decentralised, fast and low-cost. To design smart contracts, Zilliqa uses Scilla — an intermediate-level smart contract language developed with contract safety being prioritized.
It is not strictly necessary to understand the design of Zilliqa architecture to start developing on Zilliqa. Nonetheless, the Zilliqa Design Story is an important read before diving deeper.
📖 Read Part 1 (Network Sharding), Part 2 (Consensus Protocol), and Part 3 (Making Consensus Efficient).
Like any common public Blockchain, Zilliqa has a testnet (for test and development) and a mainnet (the real Blockchain). Before any development, it is important to get accustomed to creating an account and getting some testnet ZIL tokens (tokens in Zilliqa are called ZIL).
🏁 The developer wallet is a great way to quickly create a new wallet. Once a wallet is created, use the ZIL faucet there to request free testnet ZILs. Be sure to save the wallet details (e.g. the keystore file) so that you can use this account at the later part of the development.
You may install Zilpay — the Zilliqa-backed web3 wallet that can be used with any decentralized apps (dApps) on Zilliqa. The Chrome extension can be used in Google Chrome and Chromium-based browsers (e.g. Brave). The accounts already created in the testnet can then be imported in Zilpay as well.
Learning the Scilla smart contract language is the first step of Blockchain development in Zilliqa. Like any smart contract language, Scilla has its own learning curve. However, there are great tools to aid the process.
🚀 Learn Scilla in a fun and interactive way at LearnScilla.
The online IDE for Scilla is a great place to design and test Scilla smart contracts. Pro tip: Use the testnet (and not simulated environment) in the IDE for a consistent experience.
🧵 A collection of smart contracts and design patterns can be found at:
- Smart contracts from the IDE with more details.
- Examples and snippets for best practices.
While the smart contracts can technically be deployed and interacted with from the online IDE, there are many other ways to interact with the Zilliqa Blockchain programmatically.
👐 The most popular is the Zilliqa JavaScript Library. It has first-class support for TypeScript, and allows to interact with the Zilliqa Blockchain from browser-side application frameworks (e.g. React) as well as any Node.js project (e.g. serverside). There are implementations in other languages as well, e.g. the Golang SDK.
Zilpay also has an extensive API whose signature is analogous to the Zilliqa JavaScript Library. It is also recommended when interacting with the Zilliqa Blockchain from client-side applications with dynamic user interactions (e.g. paying with Zilpay).
Ceres is a great way of getting started with local development instead of working directly with the official testnet, or Zilliqa's Isolated Server environment, see Ceres on Zilliqa Dev Portal. It runs different Zilliqa development tools under Docker containers and is really easy to use. Hence, you can focus on Scilla development and interacting with the (local) block chain without having to manage the tools.
For example, with ceres it just takes two clicks to start a local isolated server (a test server to run a local Zilliqa network on, e.g., http://localhost:5555, instead of interacting with https://zilliqa-isolated-server.zilliqa.com/). Simply head to the Releases and download the latest version for your platform.
Zilliqa provides cutting-edge tools for building dApps. Scilla is strongly typed and safe-by-design — enabling fast and secure smart contract development. The Zilliqa JavaScript Library and the Zilpay API — along with the TypeScript support — allows to effeciently deploy contracts, call methods (called transitions in Zilliqa), interact with the Zilliqa Blockchain.
🚀 Comb through a full-fledged fullstack application on Zilliqa for listing and renting houses: the code and the walkthrough.
The Zilliqa development community is strong. Catch us at the Telegram group or the Discord Server.
🧑🏻💻 Have a project in mind? Quinence is the preferred development partner of Zilliqa. Reach out for a quick chat.