Skip to main content


Built with ❤️ by Harmonic Laboratories

This documentation is for plu-ts v0.2.0^, 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.

Getting started

see Getting Started to begin your jurney in plu-ts

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.* :
    • plu-ts/offchain
      • ledger types implementaiton
      • TxBuilder API
  • v0.3.* :
    • onchain optimizations
      • introduction of an IR
      • static AST analysis
    • improved developer experience
      • deprecate extract in favor of plain dot notaion
      • deprecate plet( value ).in( myVar => {...} )
        • in favor of const myVar = plet( value )