What The Conway Upgrade Brings to MLabs' Suite of DApp Development Tools

MLabs has built a whole suite of open-source, essential tooling for Cardano over the years. These tools include Plutarch, Cardano Transaction Library (CTL), Plutip, Ply, LambdaBuffers, to name a few.

Several of these tools require an upgrade to support the latest and greatest features of the Cardano ecosystem, as brought forth by Conway. We are excited to announce our Catalyst Fund13 proposal for upgrading some of our crucial tools.

Which Tools Will We Upgrade?

We have several tooling upgrades laid out in the proposal. Namely:

  • Ply - A seamless, cross-platform Plutarch script exporter and importer that we will upgrade to support CIP-57.

  • Plutip alternative - a drop-in replacement that can a spin up Conway private testnets using NixOS modules.

  • LambdaBuffers - Toolkit for easily sharing types and their semantics across languages that we will upgrade to support PlutusV3, Conway types and semantics.

  • YTxP - A modular design pattern and reference implementation for segmented and ergonomic scripting logic & transaction patterns. We will upgrade the library to support PlutusV3, Conway types, and semantics.

  • Tx Village - Suite of Rust libraries and tools to work with Cardano smart contracts. We will upgrade it to support PlutusV3, Conway types, and semantics.

  • cardano.nix - Collection of Cardano-related Nix packages and NixOS modules with an easy-to-use interface that we will upgrade to support Conway packages and versions.

Some Upcoming Features

Many of these upgrades are major overhauls and bring forth new and improved features. Here's a sneak peek of some of what's to come!

Ply with Plutus Contract Blueprint Support

On-chain scripts written in one language are hard to use in an off-chain written in another language. Enter Ply, a tool for importing scripts from one platform to another. Here are some of Ply's distinct features:

  • Ply can serialize Plutarch scripts with type information

  • Ply can import serialized scripts into off-chain platforms, while preserving type information.

  • Leveraging type information, Ply allows users to effortlessly apply dynamic parameters before submitting them on-chain.

However, Ply was created before CIP-57 and used its own blueprint type. Recently, CIP-57 introduced Plutus Contract Blueprints which are now widely standardized. Ply needs to generate CIP-57 blueprints to seamlessly integrate with the ecosystem at large!

Briefly, a Plutus Contract Blueprint contains the information necessary for an off-chain platform to interact with a Plutus contract (i.e. a script). It usually includes details about script parameters and their types, the Plutus version, and the script itself. You can find the detailed specifications in the CIP-57 document.

Blueprints can be easily imported to most major off-chain platforms. Here is a non-exhaustive list of platforms that currently implement blueprint support:

  • Atlas

  • Mesh.js

  • Lucid

Ply will also provide utility import libraries in Haskell and Purescript (CTL). These can be easily integrated to any smart contract framework in the host language to provide drop-in support for blueprints.

Ply with Blueprints: A Universal Plutarch Serializing Solution!

Some of the most exciting planned features for Ply are:

  • Automatic blueprint generation for any given Plutarch type

  • No more boilerplate type class instances to declare type schemas

  • Functionality for auto encoding and applying parameters to scripts

  • PlutusV3 support

What this means for DApp developers:

  • Plutarch scripts automatically get derived blueprints - no extra logic necessary from the script developer

  • Planned compatibility with Atlas, CTL, MeshJS, and lucid on the import side

Easy Spin Up of Local Private Conway Testnets with NixOS Modules

For a long time, MLabs has used and maintained Plutip. Due to recent developments in Cardano, it is now possible to have a simple and lightweight private testnet launcher.

As part of our Catalyst proposal, we will deliver a set of NixOS modules that will make it seamless to launch a local node cluster for a private testnet supporting the Conway era. This will make it simple for DApp developers to integrate private testnet testing into their pipeline!

Conway Feature Parity and Support

Alongside all the exciting features above, the proposal also includes work on tools such as LambdaBuffers, YTxP, and TxVillage to bring them up to par with Conway. This will enable DApp developers to use these tools to integrate crucial Conway features and PlutusV3 scripts.

Rock The Vote

If you're excited about these upgrades and what they mean for the Cardano ecosystem, please consider showing your support. The MLabs: Tooling upgrade for Conway Compatibility proposal is available in Project Catalyst Fund13 and ready for your vote. Simply search "MLabs" on the Project Catalyst voting app, and don't hesitate to reach out with comments or questions.

Next
Next

Pisa Fees: A Decentralized Protocol for Paying Transaction Fees with Non-ADA Assets