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
To get started writing Cadence, try it out in the Playground.
If you want to develop locally, install the Flow Command Line Client, which provides the Flow emulator and the Visual Studio Code extension. The emulator is a lightweight tool that emulates the behaviour of the real Flow network. The Visual Studio Code extension enables the development, deployment of, and interaction with Cadence contracts.
To read more about Cadence, have a look at the language reference on the Flow documentation site.
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.