This is an overview of open source PureScript (and JavaScript) packages that facilitate Cardano dApp development.
- cardano-transaction-lib - A Purescript framework for building smart contract transactions on Cardano, known as "CTL"
- purescript-cardano-transaction-builder - Declarative transaction builder API & utility functions for automatic redeemer indexing
- purescript-cardano-types - domain types for Cardano ledger, wraps
purescript-cardano-serialization-lib
. - purescript-cardano-serialization-lib - PureScript wrapper for CSL (MLabs-vendored version).
- purescript-plutus-types - Plutus-style types used for their PlutusData instances.
- purescript-cardano-plutus-data-schema - machinery for specifying PlutusDataSchema (PlutusData encoding layouts for PureScript algebraic data types) in CTL
- purescript-cardano-collateral-select - collateral selection algorithm that tries to minimize min-ADA value
- purescript-uplc-apply-args - apply
PlutusData
-encoded parameters to parametrized Plutus scripts - purescript-cardano-key-wallet - an interface that exposes functionality of a private key. Used in CTL as one of the ways to sign transactions. Can be implemented via HTTP for remote signing.
- purescript-cip30-typesafe - safe error handling for CIP-30 wrappers
- purescript-cip30 - CIP-30 API wrappers (no error handling)
- purescript-cip30-mock - a mock implementation for the Cardano Cip30 Wallet interface that can be used for testing purposes to simulate a wallet without needing to interact with an actual browser-based wallet. It is actually a valid CIP-30 implementation.
- purescript-cardano-message-signing - implementation of CIP-8/CIP-30
signData
, purescript wrapper overEmurgo/message-signing
- purescript-cardano-hd-wallet - implementation of CIP-1852 using
cardano-serialization-lib
(private key derivation from mnemonics) - purescript-noble-secp256k1 - cryptographic functions needed to work with Vasil hardfork features
- purescript-aeson - partial re-implementation of Argonaut with support of unquoted long integers - can be used for interoperability with Aeson, that encodes long integers unquoted. We need this for interactions with Cardano tooling in Haskell
- json-bigint - big integer machinery (JavaScript)
- purescript-bytearrays - byte string type and utilities
- purescript-mote-testplan - effectful testplans for Mote, a testing library
- @mlabs-haskell/cardano-serialization-lib-gc - CSL version vendored by MLabs, with automatic GC added
- @mlabs-haskell/csl-gc-wrapper - Garbage collector for CSL
- @mlabs-haskell/uplc-apply-args - JavaScript package for Plutus script parameter application
These packages haven't been fully finalized:
- purus - A fork of the PureScript compiler that compiles to Untyped Plutus Core - smart contract language of Cardano