The first topics in this section provide an **overview** of the Corda Distributed Ledger:
*:doc:`key-concepts-ecosystem` - The ecosystem that Corda exists in
*:doc:`key-concepts-ledger` - The ledger, and how facts on the ledger are shared between nodes
The second set of topics describe the core **CorDapp Concepts**:
*:doc:`key-concepts-states` - The states represent shared facts on the ledger
*:doc:`key-concepts-transactions` - The transactions update the ledger states
*:doc:`key-concepts-contracts` - The contracts govern the ways in which states can evolve over time
*:doc:`key-concepts-flows` - The flows describe the interactions that must occur between parties to achieve consensus (to satisfy some business requirement)
..note::
When you build a custom CorDapp, your CorDapp will have state, transaction, contract and flow classes.
The following **Adavnced Corda Concepts** describe important conceptual information:
*:doc:`key-concepts-consensus` - How parties on the network reach consensus about shared facts on the ledger
*:doc:`key-concepts-notaries` - The component that assures uniqueness consensus (prevents double spends)
*:doc:`key-concepts-vault` - The component that stores on-ledger shared facts for a node
Finally, some concepts that expand on other areas:
*:doc:`key-concepts-time-windows` - Transactions can be validated as having fallen after, before or within a particular time window
*:doc:`key-concepts-oracles` - Transactions can include off-ledger facts retrieved using Oracles
*:doc:`key-concepts-node` - Each node contains an instance of Corda, one or more CorDapps, and so on
*:doc:`key-concepts-tearoffs` - Transactions can be signed by parties who have access to only a limited view of the transaction parts
*:doc:`key-concepts-tradeoffs` - Trade-offs that have been made in designing Corda and CorDapps
*:doc:`key-concepts-djvm` - Information about the importance and details of the deterministic JVM