Built with ❤️ by Harmonic Laboratories

This documentation is for plu-ts v0.1.1^, if you are using a previous version check for changes in the changelog.


plu-ts is a library designed for building Cardano dApps in an efficient and developer friendly way.

It is composed of two main parts:

  • plu-ts/onchain: an eDSL (embedded Doamin Specific Language) that leverages Typescript as the host language; designed to generate efficient Smart Contracts.
  • plu-ts/offchain: a set of classes and functions that allow reuse of onchain types.

Design principles

plu-ts was designed with the following goals in mind, in order of importance:

  • Smart Contract efficiency
  • reduced script size
  • developer experience
  • readability


  • v0.1.* :
    • key syntax to build plu-ts expressions
    • compilation of smart contracts to valid UPLC
    • standard API data structures (PScriptContext, etc... ) for PlutusV1 and PlutusV2 contracts
    • standard library
    • Terms with utility methods to simplify the developer experience ( TermInt, TermBool, etc... )
  • v0.2.* :
    • functions for standard API data structures interaction
    • plu-ts/offchain functions for basic transactions
  • v0.3.* :
    • TermCont implementation to mitigate the callback hell issue
    • plu-ts/offchain complete offchain API