Skip to content


Switch branches/tags


Failed to load latest commit information.
Latest commit message
Commit time
Jul 21, 2022
Nov 17, 2021
Jun 13, 2022
Jun 9, 2022




Cadence is a resource-oriented programming language that introduces new features to smart contract programming that help developers ensure that their code is safe, secure, clear, and approachable.

Some of these features are:

  • Type safety and a strong static type system
  • Resource-oriented programming, a new paradigm that pairs linear types with object capabilities to create a secure and declarative model for digital ownership by ensuring that resources (and their associated assets) can only exist in one location at a time, cannot be copied, and cannot be accidentally lost or deleted
  • Built-in pre-conditions and post-conditions for functions and transactions
  • The utilization of capability-based security, which enforces access control by requiring that access to objects is restricted to only the owner and those who have a valid reference to the object

Getting Started

To get started writing Cadence, why not try out the Playground?

If you want to develop locally, use these tools:

  • Flow CLI, which includes the Flow emulator. The emulator is a lightweight tool that emulates the behaviour of the real Flow network.
  • Visual Studio Code extension. The Visual Studio Code extension enables the development, deployment of, and interaction with Cadence contracts.


Check out the Cadence Docs.


If you would like to contribute to Cadence, have a look at the contributing guide.

Development documentation can be found in the /docs directory. For example, it contains the source for the language reference.