Skip to main content

Midnight developer tutorial

The purpose of this tutorial is to introduce you to the experience of using and creating Midnight decentralized applications (DApps).

All the content on this site is specific to Midnight devnet. Both the documentation and the Midnight network itself are subject to change prior to any wider public release.


Devnet is a sandboxed development environment, so there are NO guarantees that the environment will persist data.


This tutorial is about being a Midnight DApp developer, who creates Midnight DApps. Midnight DApp users will not need to know anything about how to author smart contracts or how to write DApp software.

The tutorial assumes you want to test drive the Midnight developer experience without reconfiguring your own computer as a Midnight developer system. Therefore, Midnight provides directory-local configuration files and Docker images that should minimize the changes to your system. If you don't already have Docker installed on your system, the tutorial will point you in the right direction to get it.

Midnight contracts are described in their own domain-specific language, but Midnight DApps are written in TypeScript (or JavaScript). This tutorial does not assume you are a TypeScript programmer, but it does assume:

  • You are willing to read some TypeScript code.
  • You are familiar with using a text editor to edit code.
  • You are comfortable interacting with your system in a terminal window, typing (and pasting in) commands at a shell prompt.

If those assumptions do not describe you, you might like to review the learn section to explore the features and benefits Midnight provides without getting into the technical details of coding.