FAQ
What is Aiken?
Aiken is a modernprogramming language and toolkit for developingsmart contracts on theCardano blockchain. It is geared towards robustnessand developer experience.
Aiken takes inspiration from many modern languages such as Gleam, Rust,and Elm, which are known for friendly error messages and an overallexcellent developer experience. We believe Cardano deserves a dedicatedlanguage with these kinds of features, developed in the open with thecommunity.
Why build another smart contract platform?
We love functional programming. Yet, we couldn't help to think that thecurrent Haskell framework wasn'tquite right in terms of developerexperience and felt we could do something about it. So we came up with aset of shared goals we kept in mind while building Aiken:
- Writing smart contracts should beeasy andsafe. You should be able to get started in minutes, not days,and rapidly build confidence that your on-chain code is doing what isintended.
- We want a complete and delightful experience. A modernblockchain deserves a modern smart contract toolkit.You shouldbe and feel productive when writing contracts. This includeseditor integrations such as LSP and tree-sitter, beautiful errormessages, rapid and intuitive test feedback loop and easy-to-producedocumentation.
- We want there to beas little configuration aspossible. It should work out of the box and establish reasonableopinionated conventions with the community.
- We want to have amodular design suchthat components can be picked and chosen as needed. Like the Unixphilosophy. Aiken is only one part of a much bigger picture; While wefirmly believe it is a great tool, we want to encourage other approachesand favour interoperability as much as possible.
I thought Cardano smart contracts had to be written in Haskell?
This is a common misconception. The current Cardano node implementationdoes indeed happen to be written in Haskell. The virtual machine forexecuting smart contracts that comes baked into the node is alsoimplemented in Haskell. But that does not mean that it is Haskell whichis executed by the smart contract virtual machine.
The virtual machine is a language interpreter which executes asmart contract language called'Untyped Plutus Core' (abbrev.UPLC
) often referred to simply as'Plutus'.
Yet UPLC isn't something developers are expected to write by hand.Instead, it is a compilation target (like WebAssembly for the world wideweb). Oddly enough, until recently, the only established framework thatproduced UPLC from a high-level syntax was called'Plutus-Tx' andhappened to be a Haskell framework.
Aiken changes the game by providing a modern framework that compilesstraight to UPLC.
Can I write off-chain/backend code with Aiken?
Our main goal is to improve the smart contract development experiencefor the Cardano blockchain. By developing Aiken as abespoke language, we can better align its features with what is trulyneeded for on-chain development.
We want to keep the language simple and manageable. In a decentralizedarchitecture, smart contracts present a significant challenge where asingle flaw can escalate into a multi-million financial exploit. More so,on-chain code typically represents a small fraction of an entire DAppsource code. While writing contracts should be as straightforward as possible,smart contracts ought to be optimized for review, audit, and staticanalysis.
Hence, Aiken isnot intended as a general-purposelanguage. Rather, it focuses on Cardano and aims for a high-qualitytoolkit for developing reliable smart contracts with confidence.
Are there any projects using Aiken? Where can I find them?
We keep anAwesome Listof projects and resources built with and on Aiken. The list contains resourcesthatwe are aware of.
If you have a cool project not listed but want to see it up there, do not hesitate tomake a pull request and introduce yourself!