Last release today
02 Sep 2026
Ships on a steady schedule
a new release about every 2 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
6 years old
7565 releases ยท first in 2020
One column per quarter.
Nothing published for this version
Nothing published for this version
Nothing published for this version
[Changes][v0.13.0]
<a id="v0.12.11"></a>
[Changes][v0.12.12]
<a id="v0.13.0"></a>
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
String() function of DicitonaryValue when values are deferred (#587)[Changes][v0.12.11]
<a id="v0.12.10"></a>
[Changes][v0.12.10]
<a id="v0.12.9"></a>
[Changes][v0.12.8]
<a id="v0.12.7"></a>
Nothing published for this version
Nothing published for this version
[Changes][v0.12.7]
<a id="v0.12.6"></a>
Nothing published for this version
Nothing published for this version
Performance of checking and interpretation has been improved,
e.g. for BenchmarkCheckContractInterfaceFungibleTokenConformance:
| Commit | Description | Ops | Time |
|---|---|---|---|
| 21764d89 | Baseline, v0.12.5 | 595 | 2018162 ns/op |
| df2ba05d | Update hamt, use ForEach everywhere | 1821 | 658515 ns/op |
| 6088ce01 | Optional occurrences and origins recording | 2258 | 530121 ns/op |
| 429a7796 | Optimize activations, replace use of HAMT map | 3667 | 327368 ns/op |
[Changes][v0.12.6]
<a id="v0.10.6"></a>
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
[Changes][v0.12.5]
<a id="v0.12.4"></a>
[Changes][v0.12.4]
<a id="v0.12.3"></a>
[Changes][v0.12.3]
<a id="v0.12.2"></a>
[Changes][v0.12.2]
<a id="v0.12.1"></a>
[Changes][v0.12.1]
<a id="v0.10.5"></a>
getType function (#493): It is now possible to get the run-time type of a valuefmt.Stringer for cadence.Value (#434)This release contains no source-breaking changes for Cadence programs, but the following breaking changes when embedding Cadence:
[Changes][v0.12.0]
<a id="v0.10.4"></a>
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
[Changes][v0.11.2]
<a id="v0.10.2"></a>
Nothing published for this version
Nothing published for this version
Nothing published for this version
[Changes][v0.11.1]
<a id="v0.10.1"></a>
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Paths are now typed. Paths in the storage domain have type StoragePath, in the private domain PrivatePath, and in the public domain PublicPath. PrivatePath and PublicPath are subtypes of CapabilityPath. Both StoragePath and CapabilityPath are subtypes of Path.
<table> <tr> <td colspan="3">Path</td> </tr> <tr> <td colspan="2">CapabilityPath</td> <td colspan="2" rowspan="2">StoragePath</td> </tr> <tr> <td>PrivatePath</td> <td>PublicPath</td> </tr> </table>
With paths being typed, it was possible to make the Storage API type-safer and easier to use: It is now statically checked if the correct type of path is given to a function, instead of at run-time, and therefore capability return types can now be non-optional.
The changes are as follows:
For PublicAccount:
old: fun getCapability<T>(_ path: Path): Capability<T>? <br/>
new: fun getCapability<T>(_ path: PublicPath): Capability<T>
old: fun getLinkTarget(_ path: Path): Path? <br />
new: fun getLinkTarget(_ path: CapabilityPath): Path?
For AuthAccount:
old: fun save<T>(_ value: T, to: Path) <br />
new: fun save<T>(_ value: T, to: StoragePath)
old: fun load<T>(from: Path): T? <br />
new: fun load<T>(from: StoragePath): T?
old: fun copy<T: AnyStruct>(from: Path): T? <br />
new: fun copy<T: AnyStruct>(from: StoragePath): T?
old: fun borrow<T: &Any>(from: Path): T? <br />
new: fun borrow<T: &Any>(from: StoragePath): T?
old: fun link<T: &Any>(_ newCapabilityPath: Path, target: Path): Capability<T>? <br />
new: fun link<T: &Any>(_ newCapabilityPath: CapabilityPath, target: Path): Capability<T>?
old: fun getCapability<T>(_ path: Path): Capability<T>? <br/>
new: fun getCapability<T>(_ path: CapabilityPath): Capability<T>
old: fun getLinkTarget(_ path: Path): Path? <br />
new: fun getLinkTarget(_ path: CapabilityPath): Path?
old: fun unlink(_ path: Path) <br />
new: fun unlink(_ path: CapabilityPath)
Add a hash function to the crypto contract (#379)
Added npm packages for components of Cadence. This eases the development of developer tools for Cadence:
cadence-language-server: The Cadence Language Servermonaco-languageclient-cadence: Language Server Protocol client for the the Monaco editorcadence-parser: The Cadence parserIn addition, there are also examples for the language server and the parser that demonstrate the use of the packages.
Add a command to the language server that allows getting the entry point (transaction or script) parameters (#406)
replace statement that was necessary in the last release must be removed.[Changes][v0.11.0]
<a id="v0.9.2"></a>
ForEach instead of FirstRest (#566)[Changes][v0.10.6]
<a id="v0.12.5"></a>
[Changes][v0.10.5]
<a id="v0.12.0"></a>
Nothing published for this version
[Changes][v0.10.4]
<a id="v0.10.3"></a>
Nothing published for this version
[Changes][v0.10.3]
<a id="v0.11.2"></a>
[Changes][v0.10.2]
<a id="v0.9.3"></a>
Nothing published for this version
[Changes][v0.10.1]
<a id="v0.11.0"></a>
Nothing published for this version