The Heartbeat of Cardano.

Aiken: Cardano Smart Contract Language and Toolchain 

Ever since the deployment of the Alonzo upgrade, the Cardano ecosystem has seen tremendous growth in the number of smart contracts added to its network. As more developers continue to onboard to the blockchain, it’s important to enable developers hit the ground running quickly and painlessly.

Most developers, including those with a solid knowledge of other programming languages, find the Haskell syntax of Plutus overwhelming and hard to follow. While Plutus is a great language, the huge barrier to entry causes enough friction to slow down developers and the initial adoption curve.

TxPipe, a team of developers passionate about open source and Cardano, are looking to address this challenge by improving the Plutus developer onboarding experience. The aim is to build a toolchain that provides a more familiar syntax for writing smart contracts on Cardano.

The Team Behind the Project

TxPipe is a team of developers building tool stacks for Cardano developers. They aim to empower developers building applications on the Cardano blockchain by providing open-source tools and infrastructure to enhance their productivity. TxPipe is the team behind some existing Rust-native Cardano projects such as Oura and Pallas.

According to TxPipe, two senior engineers will be leading development of the Aiken project. Lucas Rosa, a senior software engineer with diverse technical background and passion for blockchain development will be the project lead. Lucas has previously worked on notable projects including Roc, a new functional programming language for backend development, Crisp, a minimal lispy CLI calculator implemented in Zig, and Sternhalma, a Chinese checkers game written in Elm.

Kasey White, a senior blockchain engineer with vast experience in systems and automation testing will co-lead the Aiken smart contract toolchain development project. Kasey has prior experience in developing multiple smart contract projects on Cardano including NFT marketplaces.

An Overview of the Aiken Smart Contract Toolchain

The Aiken project involves creating a lightweight and modular smart contract development language that most software developers are familiar with. At a high level, the proposing team is looking to reverse engineer the Plutus core and build Rust implementations that have the same feature set as the Haskell code. This includes implementing required libraries like flat encoding.

According to the project leads, they will port everything developers need for Plutus to Rust. This includes:

  • Compiling Plutus core into its on-chain encoding
  • Reverse the on-chain encoding into Plutus core
  • Build a Plutus core interpreter
  • Create a high-level syntax inspired by languages based on functional semantics such as JavaScript, Elm, Roc, Rust, and Gleam.
  • Build robust testing tools and utilities.

So far, the proposing team is done porting the Untyped Plutus Core implementation from Haskell to Rust. Up next is creating the interpreter for Untyped Plutus Core. This effort will not only lay some foundation for building a full Cardano node in Rust but also allows Aiken to own the full compilation toolchain for Cardano smart contracts.

Upon successful development of the toolchain, the team also plans to introduce a UPLC static analysis tool that will further increase the security of smart contracts on the Cardano network.

Project timelines

The TxPipe team is looking to deliver the project in three key milestones, each with clearly spelled out deliverables and timelines. The first milestone, which takes about one month, majorly involves developing the untyped Plutus core interpreter. During this phase, two full-time Rust developers will design, parse, and type-check the basic high-level language syntax.

The second milestone is set to take around two months and will involve the development of key features. According to TxPipe, the key deliverable for this phase is a finalized Aiken syntax, standard library, and testing utilities.

Once the standard library is ready, the team will move to the final milestone which involves documenting the library, fixing bugs, and optimizing its performance. At the end of this phase, TxPipe will release a fully functional v1 of the library that developers can use for writing smart contracts on Cardano.

According to their proposal, the Txpipe team will track the development of the project using GitHub’s project management tool. They will measure the progress by releasing library versions that match the scope of the above milestones. The team also plans to update the community on their progress by maintaining open communication on their Discord server and sharing weekly updates on Twitter.

Budget

To bring this project to life, the TXpipe is requesting a total funding of 111,480 USD. The funds will cater for both development of the project and production of technical documentation. According to the proposal, the projected development time is about 1400 hours, with Rust developers receiving remuneration of 75 USD per hour. For documentation, the estimated time input is 180 hours, with technical writers receiving 36 USD per hour. The table below summarizes the estimated project budget:

TaskLabor hoursHourly rates (USD)Total (USD)
Rust developers140075105,000
Technical writers180366,480
Total project estimate111,480

Final Thoughts

As with any other developer tool, removing complexity makes it easier for developers to onboard to a platform and offers a great developer experience. Txpipe is working towards this goal – ensuring that Cardano developers can build and deliver software effortlessly. According to the Txpipe team, the project will be deemed a success when both individual and team developers start using Aiken to build dapps on the Cardano blockchain.

For more information about Txpipe and the Aiken smart contract toolchain project, please have a look at the official Txpipe website or GitHub. You can also check out their Fund 9 proposal submitted on Project Catalyst.

Leave a Reply

Your email address will not be published. Required fields are marked *

Related Posts