This section describes the APIs that are available for the development of CorDapps:

Before reading this page, you should be familiar with the key concepts of Corda.

Internal APIs and stability guarantees

As of Corda 1.0, the following modules export public API that we promise to maintain backwards compatibility for, unless an incompatible change is required for security reasons:

  • core
  • client-rpc
  • client-jackson

The following modules don’t yet have a completely stable API, but we will do our best to minimise disruption to developers using them until we are able to graduate them into the public API:

  • the Gradle plugins (cordformation)
  • node-driver
  • confidential-identities
  • test-utils
  • client-jfx, client-mock
  • finance
  • anything under the experimental directory (sub-components here may never graduate)

We hope to graduate the node-driver, test-utils and confidential-identities modules in the next feature release after 1.0. The bulk of the Corda API is found in the core module. Other modules should be assumed to be fully internal.

The web server module will be removed in future: you should build web front-ends for CorDapps using standard frameworks like Spring Boot, J2EE, Play, etc.

Code that falls into the following packages namespaces are for internal use only and not for public use:

  • Any package in the net.corda namespace which contains .internal
  • net.corda.node

In the future releases the node upon starting up will reject any CorDapps which uses classes from these packages.