It is a great honour to be able to present Cardano with its first Plutus V3 implementation! We have been testing since February 14th, when the first iteration of Plutus V3 that was launched on testnet. To make this possible has been a real technological feat, as currently all libraries used to write smart contracts on Cardano are incompatible with Plutus V3. This includes Aiken, Pluto and Plutarch.
But first, what is Plutus V3?.
Plutus V3 was introduced to mainnet with the Chang hardfork. It is an upgrade to Cardanos Smart Contract Language that has improved multiple aspects:
- Performance has been enhanced by reducing computational requirements and adding a Sums of Product.
- Cryptographic Primitives have been introduced, allowing for possible zk (zero-knowledge) implementations
- Interoperability with EVM chains has been enhanced
In the case of the VyFinance DEx, we have focused on taking advantage of the improved computational performance, and being the first ever dapp to add compatibility with CIP-85, allowing for sums of products.
If no existing libraries are compatible with Plutus V3, how have VYFI built a Plutus V3 product?
Though we have been playing with Plutus V3 since it was available on testnet, we have been researching and developing dapp design on Cardano since we first started operation four years ago. The culmination of this many years work — we have redesigned the construction of a Cardano Dapp from the ground up.
One of the biggest barriers to construction on Cardano is the need for many dependencies to allow for the function of your dapp. These include Mesh, Osmios, CHaP, and many more. These often create inflated code, and result in teams relying on code controlled by other developers for the on-going function of their dapp.
The first step to allowing us to build a Plutus V3 dapp was achieving a design that allowed us to function on-chain, with 0 Haskell based dependencies required for operation (as these dependencies not only created inefficiencies, but were using libraries that were not compatible with Plutus V3!).
We also had to decide on a language to use, given all libraries were currently incompatible. After much research, we settled on a small, but established statically typed language called Jai. It is a C based language that is traditional designed to improve efficiency within the gaming industry. We realized that it could also greatly improve efficiency on the Cardano Blockchain — and would easily allow us to implement Plutus V3 without having to redesign structural issues that exist on the current libraries to allow for compatibility.
With these new tools in hand — a structural redesign for Cardano dapps, and a new language that allows for a much higher level of optimization and ease of integration with Plutus V3 — we got to work!
It is the culmination of this that allows us to present the first ever Plutus V3 product to Cardano — the VyFinance V3 DEx.
And what work has been! We have a series of 6–8 articles that will be releasing through to the end of January describing in detail our Journey, and a series of technical papers outlining our innovations and introducing a new structural design for all dapps on Cardano — allowing for out of the box Plutus V3 implementation for new projects, and removing the need for these projects to rely on upwards of 10 dependencies in order to function.
It is with great pride and honour that we will present to you a new and improved Cardano developer experience, rendering building on Cardano easier and more optimized than it has ever been!