Project

Aiken

Aiken is a modern and accessible programming language, specifically created to both simplify and enhance the development of smart contracts on Cardano. It comes in an easy to learn syntax, designed for effortless integration with other tools and languages, plus includes various state-of-the-art features that meet the current expectations of developers.

Goal

Foster growth in the Cardano ecosystem.

In true Open Source fashion, Aiken arose from the dedicated efforts of various individuals. After the original kickoff with the support of TxPipe on the foundational tooling, the Cardano Foundation helped in materialising the ideas behind a smart contract programming language. Both saw the potential of Aiken and how it could foster growth in the Cardano ecosystem. Over the course of its development, Aiken has rapidly grown to become one of the most loved frameworks for building smart-contracts on Cardano with many of the largest dApps migrating to it.

While Aiken-the-language has been mostly stable for a while, its ecosystem of tools keeps evolving and reshaping to ensure the best developer experience possible to its users. This is only truly achievable as a collaborative effort, with more than 40 code contributors and even more contributors providing feedback and ideas constantly. So it is only natural for Aiken to become one of the first projects hosted under PRAGMA as it already embodies the very core principles behind PRAGMA.

Maintainers
Roadmap

Recently

Important milestone recently completed.

Functions export

Export any Aiken function as a standalone Untyped Plutus Core (UPLC) program to be be evaluated via the virtual machine.

Read more
Separate pairs from 2-tuples

Ensure that UPLC pairs have a different syntax and semantic than 2-tuples. The latter are currently treated as pairs, leading to confusion down the line.

Read more

Currently

Items currently being worked on.

Marlowe acceptance

Marlowe is a great example of a non-trivial validator that comes with a large test suite agnostic to the implementation language. It is, therefore, an ideal test bench to ensure conformance of generated UPLC against an agnostic test suite.

Read more
Road to β

Aiken is technically still in Alpha. There are various changes to be brought to the compiler which we've enumerated and gathered under a 'Road to Beta'.

Read more

Next

Upcoming steps already planned for development.

DevX of parameterized validators

The development flow around parameterized validators is currently not ideal. We are, therefore, exploring two new areas to improve the experience by the project configuration file and conditional compilation targets based on environments.

Read more

Under discussion

Discussions and design under consideration.

Constraining generic type arguments
Read more
Function specialization
Read more
Wrapped redeemers in foreign validators
Read more
Constant reference to script hashes
Read more
Allow upper case constants
Read more
Getting started

Explore and contribute.