CashScript is a high-level programming language for smart contracts on Bitcoin Cash. Maintained by @RoscoKalis and @GeukensMathieu

Joined December 2022
These are just the highlights, but there's much more in this release, including new optimisations, faster compilation for large contracts and the new 'unused' modifier. For the full list of changes, please refer to the release notes 👇 cashscript.org/docs/releases…
1
4
29
4/ Debugging with stack traces Our debugging tools fully support user-defined functions. When a require fails inside a function, you get the exact file and line that failed, plus a stack trace of the calls that led there.
1
5
47
3/ Imports Functions and constants can now live in separate files and be imported, even from npm packages. This opens the door to shared CashScript libraries. Here's the contract from 1/ with its helpers moved into a library file. It compiles to the exact same bytecode.
1
2
2
11
521
2/ Global constants No more magic numbers or extra constructor arguments for fixed values. Declare constants at the top level of your file, with arithmetic and concatenation evaluated at compile time.
1
6
51
1/ Reusable functions We teased them last release, and here they are! Define functions at the top level of your file, with one, multiple or no return values. The compiler uses BCH's native OP_DEFINE/OP_INVOKE from the Layla upgrade, or inlines them when that's smaller.
1
3
14
146
CashScript v0.14.0 was just released! What's new? 🧩 Reusable functions 📌 Global constants 📚 Imports & shareable libraries 🐞 Stack traces when debugging 🛡️ Safer transaction testing
2
16
3
34
1,191
We just upgraded the developer experience for all CashScript developers, whether you prefer the playground or a code editor. The playground and VS Code extension now feature full compilation results and show you any compile errors immediately. 🫡🚀
3
6
1
19
1,520
We've just released a big new update to the CashScript Playground! It now supports v0.13 as well as 0.12 with a compiler selector, and it features full highlighting, autocomplete and hover hints. 🥳
2
4
1
12
1,121
4/ Change utilities When we moved to the new transaction builder in 2025, we removed some "magic" to give control to our users. But by doing so, some convenience was lost. With these new utilities, we are restoring that convenience while keeping control in our users' hands.
1
5
56
2/ Bitwise shifts & P2S The Layla upgrade has also brought support for bitwise/arithmetic shifts and has brought P2S into standardness. We've added >> and << operators to support shifts, and added a 'p2s' contract type to the SDK to support this.
1
7
80