Getting set up for CorDapp development

Software requirements

Corda uses industry-standard tools:

  • Oracle JDK 8 JVM - minimum supported version 8u171
  • IntelliJ IDEA - supported versions 2017.x and 2018.x (with Kotlin plugin version 1.2.71)
  • Git

We also use Gradle and Kotlin, but you do not need to install them. A standalone Gradle wrapper is provided, and it will download the correct version of Kotlin.

Please note:

  • Corda runs in a JVM. JVM implementations other than Oracle JDK 8 are not actively supported. However, if you do choose to use OpenJDK, you will also need to install OpenJFX
  • Applications on Corda (CorDapps) can be written in any language targeting the JVM. However, Corda itself and most of the samples are written in Kotlin. Kotlin is an official Android language, and you can read more about why Kotlin is a strong successor to Java here. If you’re unfamiliar with Kotlin, there is an official getting started guide, and a series of Kotlin Koans
  • IntelliJ IDEA is recommended due to the strength of its Kotlin integration

Following these software recommendations will minimize the number of errors you encounter, and make it easier for others to provide support. However, if you do use other tools, we’d be interested to hear about any issues that arise.

Set-up instructions

The instructions below will allow you to set up your development environment for running Corda and writing CorDapps. If you have any issues, please reach out on Stack Overflow or via our Slack channels.

The set-up instructions are available for the following platforms:

Windows

Java

Git

  • Visit https://git-scm.com/download/win
  • Click the “64-bit Git for Windows Setup” download link.
  • Download and run the executable to install Git (use the default settings)
  • Open a new command prompt and type git --version to test that git is installed correctly

IntelliJ

Mac

Java

  • Visit http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
  • Scroll down to “Java SE Development Kit 8uXXX” (where “XXX” is the latest minor version number)
  • Toggle “Accept License Agreement”
  • Click the download link for jdk-8uXXX-macosx-x64.dmg (where “XXX” is the latest minor version number)
  • Download and run the executable to install Java (use the default settings)
  • Open a new terminal window and run java -version to test that Java is installed correctly

IntelliJ

Debian/Ubuntu

These instructions were tested on Ubuntu Desktop 18.04 LTS.

Java

  • Open a new terminal and add the Oracle PPA to your repositories by typing sudo add-apt-repository ppa:webupd8team/java. Press ENTER when prompted.
  • Update your packages list with the command sudo apt update
  • Install the Oracle JDK 8 by typing sudo apt install oracle-java8-installer. Press Y when prompted and agree to the licence terms.
  • Verify that the JDK was installed correctly by running java -version

Git

  • From the terminal, Git can be installed using apt with the command sudo apt install git
  • Verify that git was installed correctly by typing git --version

IntelliJ

Jetbrains offers a pre-built snap package that allows for easy, one-step installation of IntelliJ onto Ubuntu.

  • To download the snap, navigate to https://snapcraft.io/intellij-idea-community
  • Click Install, then View in Desktop Store. Choose Ubuntu Software in the Launch Application window.
  • Ensure the Kotlin plugin in Intellij is updated to version 1.2.71

Fedora

These instructions were tested on Fedora 28.

Java

Git

  • From the terminal, Git can be installed using dnf with the command sudo dnf install git
  • Verify that git was installed correctly by typing git --version

IntelliJ

Next steps

First, run the example CorDapp.

Next, read through the Corda Key Concepts to understand how Corda works.

By then, you’ll be ready to start writing your own CorDapps. Learn how to do this in the Hello, World tutorial. You may want to refer to the API documentation, the flow cookbook and the samples along the way.

If you encounter any issues, please ask on Stack Overflow or via our Slack channels.