On this page
Brief History What Is Corda? Why Corda Is Different Corda Architecture Core Concepts Corda Network Nodes and Vault States Contracts Flows Notary Service CorDapps Privacy Model Business Use Cases Corda vs Other DLT Platforms ConclusionA Brief History of Corda
Corda was developed by R3, an enterprise software company focused on distributed ledger technology. R3 began working with banks, financial institutions, technology firms, regulators and other industry participants to design a platform that could support real-world business transactions between known parties.
Corda was launched as an enterprise-focused distributed ledger platform. Its design reflects the needs of regulated industries: identity, confidentiality, auditability, legal agreement, transaction finality and interoperability between organizations.
What Is Corda?
Corda is a permissioned distributed ledger technology platform for building decentralized business applications. These applications are called CorDapps. A CorDapp can define business data, transaction rules, workflows and integrations with existing enterprise systems.
Corda is commonly used in situations where multiple parties need to agree on shared facts. These facts may represent obligations, assets, contracts, invoices, trade documents, insurance claims, identities, payments or settlement instructions.
Corda supports smart contract concepts, but its smart contracts are normally written using JVM-based languages such as Java or Kotlin rather than Solidity. This makes it more familiar to many enterprise development teams.
Why Corda Is Different from Traditional Blockchains
Many public blockchain systems broadcast transactions to all nodes, and every full node stores a copy of the same global ledger. Corda uses a different approach. Transactions are shared only with parties that are involved in the transaction or have a need to verify it.
This means Corda is not a traditional block-by-block blockchain in the same sense as Bitcoin or Ethereum. It is better understood as a permissioned distributed ledger system that creates a shared logical ledger between relevant parties.
| Feature | Typical Public Blockchain | Corda |
|---|---|---|
| Participants | Often open and pseudonymous | Known and permissioned participants |
| Data Sharing | Broad network broadcast | Need-to-know peer-to-peer sharing |
| Ledger Structure | Block-based global chain | Shared facts recorded between relevant parties |
| Smart Contracts | Often Solidity or platform-specific languages | JVM-based languages such as Java and Kotlin |
| Consensus | Network-wide consensus | Validity consensus plus uniqueness consensus through notaries |
| Best Fit | Open digital assets and decentralized applications | Enterprise transactions, finance, trade and regulated workflows |
The Corda Architecture
Corda architecture is built around authenticated nodes, peer-to-peer communication, CorDapps, states, contracts, flows, vaults and notary services. Each organization normally operates one or more Corda nodes. These nodes communicate directly with one another when a business transaction requires it.
+--------------------+ Flow Messages +--------------------+
| Company A Node | <-------------------------> | Company B Node |
| | | |
| CorDapps | | CorDapps |
| Flows | | Flows |
| Vault | | Vault |
| Identity | | Identity |
+---------+----------+ +----------+---------+
| |
| Notarization Request |
+------------------------+--------------------------+
|
v
+--------------------+
| Notary Service |
| Uniqueness Check |
| Finality Support |
+--------------------+
Network Services:
- Network Map / Membership
- Identity and Certificates
- Permissioning / Doorman
In Corda, the ledger is not one global database copied identically to every participant. Instead, each node stores the states and transactions relevant to that node. This design reduces unnecessary data exposure and supports commercial confidentiality.
Core Concepts of Corda
The Corda Network
A Corda network is an authenticated peer-to-peer network of nodes. Each node represents a legal identity, such as a bank, insurer, supplier, buyer, logistics company, regulator or government agency.
Nodes discover one another through network services. In earlier Corda descriptions, the Network Map Service was often explained as a type of phone book that publishes node identities, services and network addresses. In practical terms, it helps nodes find and communicate with other approved participants.
The Doorman and Permissioning
Corda networks are permissioned. A new node must be admitted into the network according to network rules. This permissioning function is often described as the doorman. It checks whether a participant is allowed to join and helps issue the required identity certificates.
Corda Nodes and the Vault
A Corda node is the main runtime environment for an organization. It hosts CorDapps, executes flows, verifies transactions, communicates with counterparties and stores relevant ledger data.
Each node has a vault. The vault stores the states that the node is entitled to know about. This is very different from a global broadcast blockchain, where every full node may store every transaction.
| Node Component | Purpose |
|---|---|
| CorDapps | Business applications deployed to the node |
| Flows | Automated workflows for transaction negotiation and finality |
| Vault | Stores states and transactions relevant to the node |
| Identity | Represents the organization or legal entity operating the node |
| Messaging | Enables peer-to-peer communication with other nodes |
States: Shared Facts on the Ledger
A state is a shared fact that parties agree on. For example, a state may represent a loan agreement, an invoice, a bond, a shipment, a tokenized asset, a trade document or an insurance claim.
In Corda, states are immutable. If something changes, the old state is consumed and a new successor state is created. This gives Corda a clear audit trail while allowing the current version of a business fact to evolve.
Existing State New State +------------------+ +------------------+ | Invoice #1001 | Transaction | Invoice #1001 | | Status: Pending | -------------> | Status: Paid | | Amount: 10,000 | | Amount: 10,000 | +------------------+ +------------------+ The old state is consumed. The new state becomes the latest shared fact.
This state model is useful for business because it resembles how real agreements evolve over time: an obligation may be issued, accepted, amended, settled or cancelled.
Contracts: Rules for Valid Transactions
Contracts define the rules that transactions must satisfy. A contract does not normally run the entire business process. Instead, it checks whether a proposed state transition is valid.
For example, a simple invoice payment contract might check that:
- The invoice amount is positive.
- The payer and payee are correctly identified.
- The required parties have signed the transaction.
- The invoice cannot be paid twice.
- The status transition is allowed by the business rules.
This separation between contract rules and flow logic is one of the key design features of Corda.
Flows: Business Process Choreography
Flows are used to coordinate the steps of a transaction between parties. A flow may create a transaction, send it to counterparties, collect signatures, request notarization and record the final transaction.
In a real business environment, agreement is not just a single technical validation. Parties may need to exchange information, verify documents, negotiate terms, sign approvals and confirm finality. Corda flows provide a programming model for this kind of business process choreography.
Propose a Transaction
A node creates a proposed transaction based on business data and contract rules.
Verify the Transaction
Relevant parties check that the transaction satisfies the required contract logic.
Collect Signatures
Required participants sign the transaction if they agree with the proposed update.
Request Notarization
The notary checks uniqueness and helps prevent double-spending of input states.
Record Finality
The finalized transaction is recorded by the relevant parties in their vaults.
The Notary Service
The notary service is one of the most important parts of Corda. Its main job is to provide uniqueness consensus. This means it checks that an input state has not already been consumed in another transaction.
Without a notary, two parties might try to spend or use the same state twice. The notary prevents this by signing a transaction only if the input states are still available.
| Notary Type | Explanation | Privacy Impact |
|---|---|---|
| Non-validating notary | Checks uniqueness without seeing the full transaction contents. | Better privacy for transaction details. |
| Contract-verifying notary | Checks uniqueness and verifies relevant contract logic. | May require more transaction visibility. |
CorDapps: Distributed Applications on Corda
Applications built on Corda are known as CorDapps. A CorDapp contains the business logic and data model that a Corda network uses to represent and process transactions.
A typical CorDapp may include:
- States: Business facts stored on the ledger.
- Contracts: Rules for validating state transitions.
- Flows: Workflow logic for communication and transaction finality.
- Services: Supporting business logic and integrations.
- APIs: Interfaces for web apps, enterprise systems and users.
In modern enterprise use, a CorDapp is often part of a larger architecture that includes web applications, APIs, databases, reporting tools, identity systems, document repositories and compliance dashboards.
Corda's Privacy Model
Corda was designed for privacy from the beginning. Its peer-to-peer data sharing model means that only relevant parties receive transaction details. This is highly important in industries where transaction data contains confidential pricing, contract terms, customer information or regulated financial records.
Corda's privacy model includes several practical ideas:
- Transactions are shared only with parties that need to see them.
- Nodes store only relevant states in their vaults.
- Notaries can help prevent double-spending without requiring full global broadcast.
- Network membership is controlled through identity and permissioning.
- Applications can be designed to keep sensitive documents off-ledger while storing verifiable references.
Business Use Cases of Corda
Corda is especially suitable for multi-party workflows where participants need shared records, privacy and verifiable finality.
| Industry | Possible Corda Use Case | Why Corda Fits |
|---|---|---|
| Banking | Interbank obligations, payments, trade finance | Known parties, privacy, auditability and settlement logic |
| Capital Markets | Bonds, securities, collateral and post-trade workflows | Complex multi-party agreements with strict confidentiality |
| Insurance | Claims sharing, policy administration and reinsurance | Shared facts between insurers, brokers and clients |
| Supply Chain | Trade documents, invoices, shipping events and certifications | Selective data sharing across many organizations |
| Healthcare | Consent records, claims and provider coordination | Privacy-focused sharing of sensitive information |
| Government | Registries, permits, compliance and regulated reporting | Legal identity, audit trail and controlled participation |
Corda vs Hyperledger Fabric vs Ethereum
Corda is not always the best platform for every blockchain or DLT project. The correct choice depends on the use case, governance model, privacy requirements, performance needs and developer ecosystem.
| Platform | Main Strength | Typical Best Fit |
|---|---|---|
| Corda | Private peer-to-peer business transactions between known parties | Finance, trade, insurance, regulated workflows |
| Hyperledger Fabric | Modular permissioned blockchain with channels, chaincode and endorsement policies | Consortium networks, supply chain, enterprise workflows |
| Ethereum / EVM Networks | Large public ecosystem, tokens, DeFi, NFTs and programmable smart contracts | Open Web3 applications and tokenized digital assets |
Current Corda Updates and Practical Notes
The Corda ecosystem has evolved since the early articles on this topic were written. Corda 4.x remains an important enterprise platform, while Corda 5 introduced a newer runtime architecture, application packaging model and virtual-node-oriented approach for modern deployments.
For new projects, architects should review the current R3 documentation before deciding between Corda versions, deployment models and notary protocols. For existing production networks, upgrade planning should consider compatibility, application packaging, identity, notary services, security patches and operational support.
Conclusion
Corda is an enterprise distributed ledger platform designed for real-world business transactions between known parties. It differs from many blockchain platforms because it avoids unnecessary global broadcast and focuses on privacy, identity, legal agreement and direct peer-to-peer communication.
Its core building blocks include nodes, states, transactions, contracts, flows, vaults, CorDapps and notary services. Together, these components make Corda suitable for industries where multiple organizations need to share trusted records without revealing confidential information to the whole network.
For banks, insurers, supply chain partners, government agencies and regulated enterprises, Corda remains an important DLT platform to understand.