net.corda.client.jackson Utilities and serialisers for working with JSON representations of basic types. This adds Jackson support for the java.time API, some core types, and Kotlin data classes.

net.corda.client.rpc RPC client interface to Corda, for use both by user-facing client and integration with external systems.

net.corda.core Exception types and some utilities for working with observables and futures.

net.corda.core.concurrent Provides a simplified java.util.concurrent.Future class that allows registration of a callback to execute when the future is complete.

net.corda.core.contracts This package contains the base data types for smarts contracts implemented in Corda. To implement a new contract start with Contract, or see the examples in net.corda.finance.contracts .

net.corda.core.cordapp This package contains the interface to CorDapps from within a node. A CorDapp can access it's own context by using the CordappProvider.getAppContext() class. These classes are not intended to be constructed manually and no interface to do this will be provided.

net.corda.core.crypto Cryptography data and utility classes used for signing, verifying, key management and data integrity checks.

net.corda.core.flows Base data types and abstract classes for implementing Corda flows. To implement a new flow start with FlowLogic, or see CollectSignaturesFlow for a simple example flow. Flows are started via a node's ServiceHub.

net.corda.core.identity Data classes which model different forms of identity (potentially with supporting evidence) for legal entities and services.

net.corda.core.messaging Data types used by the Corda messaging layer to manage state of messaging and sessions between nodes.

net.corda.core.node.services Services which run within a Corda node and provide various pieces of functionality such as identity management, transaction storage, etc.

net.corda.core.node.services.vault Supporting data types for the vault services.

net.corda.core.schemas Data types representing database schemas for storing Corda data via an object mapper such as Hibernate. Modifying Corda state in the database directly is not a supported approach, however these can be used to read state for integrations with external systems.

net.corda.core.serialization Supporting data types and classes for serialization of Corda data types.

net.corda.core.transactions Base data types for transactions which modify contract state on the distributed ledger.

net.corda.core.utilities Corda utility classes, providing a broad range of functionality to help implement both Corda nodes and CorDapps.

net.corda.finance Some simple testing utilities like pre-defined top-level values for common currencies. Mostly useful for writing unit tests in Kotlin.

net.corda.finance.contracts Various types for common financial concepts like day roll conventions, fixes, etc.

net.corda.finance.contracts.asset Cash states, obligations and commodities.

net.corda.finance.flows Cash payments and issuances. Two party "delivery vs payment" atomic asset swaps.

net.corda.finance.schemas JPA (Java Persistence Architecture) schemas for the financial state types.

net.corda.testing.driver Test utilites to help running nodes programmatically for tests

net.corda.testing.dsl A simple DSL for building pseudo-transactions (not the same as the wire protocol) for testing purposes

net.corda.testing.http A small set of utilities for working with http calls.

net.corda.testing.node Test utilites to help running nodes programmatically for tests