Scilla short for Smart Contract Intermediate-Level LAnguage is an
intermediate-level smart contract language being developed for Zilliqa. Scilla has been designed as a principled language
with smart contract safety in mind.

Scilla imposes a structure on smart contracts that will make applications less
vulnerable to attacks by eliminating certain known vulnerabilities directly at
the language-level. Furthermore, the principled structure of Scilla will make
applications inherently more secure and amenable to formal verification.

The language is being developed hand-in-hand with formalization of its
semantics and its embedding into the Coq proof assistant — a state-of-the art tool for mechanized proofs about
properties of programs. Coq is based on advanced dependently-typed theory and
features a large set of mathematical libraries. It has been successfully
applied previously to implement certified (i.e., fully mechanically
verified) compilers, concurrent and distributed applications, including
blockchains among others.

Zilliqa — the underlying blockchain platform on which Scilla contracts are
run — has been designed to be scalable. It employs the idea of sharding to
validate transactions in parallel. Zilliqa has an intrinsic token named
Zilling, ZIL for short that are required to run smart contracts on Zilliqa.

Scilla is under active research and development and hence parts of the
specification described in this document are subject to change. Scilla
currently comes with an interpreter binary that has been integrated into two
Scilla-specific web-based IDEs. Trying out Scilla presents the features of the
two IDEs.