Cardano Code Libraries
Libraries to connect to the Cardano blockchain and build applications.
Off-Chain Libraries
Off-chain libraries provide abstractions for developers to build transactions and submit them on the Cardano blockchain. These libraries enable connecting to a node, querying the blockchain, asset transfer, and interaction with smart contracts.
Lucid
Lucid is a library to build Cardano transactions and write off-chain code in JavaScript and Typescript. It is designed for simplicity, allowing developers to describe actions at a high level.
- Lucid on GitHub (opens in a new tab)
- Lucid Documentation (opens in a new tab)
- More Lucid resources (opens in a new tab)
- Spacebudz Discord (opens in a new tab): Lucid Channel
Mesh
Mesh is a Cardano off-chain framework that provides cardano-cli like transaction builder in TypeScript. It also provides developers with third-party providers, wallet integrations and smart contract library to build dApps.
- Mesh Github (opens in a new tab)
- Mesh Website (opens in a new tab)
- Mesh Discord (opens in a new tab)
- TxPipe Discord (opens in a new tab): Mesh channel
Cardano-js-sdk
Cardano-js-sdk is a JavaScript toolkit to build applications that interact with the Cardano blockchain. It provides a set of tools and functions for wallets, keys, transactions, and more.
- Cardano-js-sdk GitHub (opens in a new tab)
- Cardano-js-sdk Documentation (opens in a new tab)
- Cardano-js-sdk Getting Started (opens in a new tab)
- IOG Technical Community Discord (opens in a new tab)
PyCardano
PyCardano is a lightweight, standalone Cardano client library written in Python. It enables developers to create and sign transactions on the Cardano blockchain without relying on third-party serialization tools.
- PyCardano GitHub (opens in a new tab)
- PyCardano Documentation (opens in a new tab)
- Awesome PyCardano (opens in a new tab)
- PyCardano Discord (opens in a new tab)
- TxPipe Discord (opens in a new tab): Pycardano channel
Cardano-CLI JS
Cardano-CLI JS is a TypeScript library that wraps the Cardano-CLI, providing developers a way to interact with the Cardano blockchain using JavaScript.
Plu-ts
Plu-ts is a TypeScript library designed for building Cardano dApps. It can be used for on-chain contracts, and for off-chain functionalities.
- Plu-ts GitHub (opens in a new tab)
- Plu-ts Documentation (opens in a new tab)
- Plu-ts Off-chain Reference (opens in a new tab)
- Harmonic Labs Discord (opens in a new tab)
Cardano-client-lib
Cardano Client Lib is a Java library that makes it easy to interact with the Cardano blockchain with features for transaction creation, signing, address management, and API integrations.
- Cardano-client-lib GitHub (opens in a new tab)
- Cardano-client-lib Documentation (opens in a new tab)
- Roasted Bean Alliance Discord (opens in a new tab)
CardanoSharp Wallet
CardanoSharp Wallet is a .NET library for creating keys and addresses, managing wallets, and building and signing transactions.
- CardanoSharp wallet GitHub (opens in a new tab)
- CardanoSharp wallet Documentation (opens in a new tab)
- CardanoSharp Discord (opens in a new tab)
Cardano-transaction-lib
Cardano-transaction-lib (CTL) is a Purescript library for building smart contract transactions. It allows developers to run Plutus off-chain code in the browser environment.
- Cardano-transaction-lib GitHub (opens in a new tab)
- Cardano-transaction-lib Documentation (opens in a new tab)
- Plutonomicon Discord (opens in a new tab)
gOuroboros
gOuroboros is a Go library to build applications interacting with the Cardano blockchain. It provides tools to communicate with Cardano nodes, manage transactions, and perform various off-chain operations.
Atlas
Atlas is a Haskell library designed to be an application backend for Plutus smart contracts on the Cardano blockchain. It offers a user-friendly API for creating transactions and interacting with smart contracts.
- Atlas GitHub (opens in a new tab)
- Atlas Website and Documentation (opens in a new tab)
- GeniusYield Discord (opens in a new tab)
TyphonJS
TyphonJS is a TypeScript library designed for working with the Cardano blockchain. It allows developers to generate and manage Cardano addresses, build complex transactions, and automatically select UTXOs.
- TyphonJS GitHub (opens in a new tab)
- TyphonJS Documentation (opens in a new tab)
- Strica Discord (opens in a new tab)
Blaze
Blaze allows you to create Cardano transactions and off-chain code in TypeScript. The library has few external dependencies and can be used in browser environment.
- Blaze GitHub (opens in a new tab)
- Blaze Documentation (opens in a new tab)
- TxPipe Discord (opens in a new tab): Blaze channel
Kuber
Kuber is an Haskell library with a user-friendly JSON API to compose transactions, interact with wallets, and balance inputs and outputs.
- Kuber GitHub (opens in a new tab)
- Kuber Explained by Dquadrant (opens in a new tab)
- Kuber Discord (opens in a new tab)
Cardano Web3.js
CardanoWeb3js is a TypeScript library to integrate with the Cardano blockchain. It supports both Node.js and browser environments, transaction creation, smart contract deployment, and data exploration.
- Cardano Web3.js GitHub (opens in a new tab)
- Cardano Web3.js Documentation (opens in a new tab)
- Cardano Web3.js Playground (opens in a new tab)
- Xray Discord (opens in a new tab)
Lucid Evolution
Lucid Evolution is a TypeScript library derived from the popular Lucid library. Lucid Evolution is actively maintained with a focus on type safety, scalability, and effective side-effect management.
- Lucid Evolution GitHub (opens in a new tab)
- Lucid Evolution Documentation (opens in a new tab)
- Lucid Evolution Catalyst Proposal (opens in a new tab)
Cardano-transactions
Haskell library utilities for constructing and signing Cardano transactions. The library also includes a small command-line interface for transaction creation in the terminal.
Apollo
Apollo provides Golang building blocks for Cardano including serialization and transaction building.
Elm Cardano
The elm-cardano library is a tool that allows developers to write off-chain code using the Elm programming language. It provides a set of functions and types, enabling Elm developers to build applications on Cardano.
Whisky
A Rust library for easy Cardano transaction building and unit testing. It provides a user-friendly wrapper around the cardano-serialization-lib, offering easy transaction building and unit testing, with APIs similar to MeshJS.
- Whisky GitHub (opens in a new tab)
- Whisky Documentation (opens in a new tab)
- Whisky Course on Andamio (opens in a new tab)
SC-Tools
SC-Tools is a collection of Haskell libraries for building Cardano applications by providing functions and types for building transactions, selecting coins, and managing wallets.
CAB
CAB (Cardano Application Backend) is a TypeScript library with a suite of tools including wallet and account management, custom blockchain data sources, cryptographic utilities, and CIP-30 dApp connector helpers.
Cardano-C
Cardano-C is a C library designed for building transactions and interacting with the Cardano blockchain. It is compliant with MISRA standards.
LibCardano
This C++ library provide an interfaces to integrate Cardano capabilities into a new or existing project. The library features such as transaction handling, address generation, and stake pool key management.
Website Development Libraries
Website libraries help connect websites with the Cardano blockchain. These libraries often support website components, wallet integration, API connections, and other web development tools for Cardano-based applications.
Mesh
Mesh is a website framework that allows you to integrate new or existing websites with the Cardano blockchain. It offers many web components to create a fully-featured dApp.
- Mesh Github (opens in a new tab)
- Mesh Website (opens in a new tab)
- Mesh Discord (opens in a new tab)
- TxPipe Discord (opens in a new tab): Mesh channel
Cardano Connect with Wallet
JavaScript and TypeScript functions to simplify the dApp development. Provides hooks and React components as well as a framework-independent core library.
- Cardano-connect-with-wallet GitHub (opens in a new tab)
- Cardano-connect-with-wallet Documentation (opens in a new tab)
CardanoPress
CardanoPress connects a WordPress website to the Cardano blockchain. Features include token gating, ISPO dashboard, and project governance.
Use Cardano
Use-cardano is a react context, hook, and set of components that makes interacting with the Cardano blockchain easy. It allows you to build web3 applications, connect wallets, perform tasks such as signing transactions, and interact with smart contracts.
- Use Cardano GitHub (opens in a new tab)
- Use Cardano Documentation (opens in a new tab)
- Starter Kit Demo (opens in a new tab)
CardanoSharp Blazor
CardanoSharp Blazor is a component library for C# devs to develop dApps on Cardano.
Cardano-Connect
Web component for connecting to Cardano wallets. The component provides a button that drops into a list of browser-based Cardano wallets.
Cardano-Peer-Connect
Cardano-peer-connect aims to provide simple interfaces to implement CIP-0045 for dApps and wallets.
- Cardano-peer-connect GitHub (opens in a new tab)
- Cardano-peer-connect Demo Implementation (opens in a new tab)
Cardano-dApp-JS
Cardano-dApp-JS is a library that with wallet connection and wallet styling.
Cardano-dApp-Wallet-Connector
The Cardano wallet dApp connector library provides components, hooks, and utility functions to simplify utilizing the Cardano wallet object as defined in CIP 30.
Cardano-Connect
Cardano-connect is a WordPress plugin providing Cardano Web3 wallet connections and wallet detection features via short codes and Gutenberg blocks, supporting all CIP-30 compliant wallets.
Command Line (CLI) Tools and Libraries
Command Line Interface (CLI) tools provide developers with a powerful means to interact with the Cardano blockchain directly from the terminal. CLI programs can monitor the blockchain, perform utility actions, manage Cardano Node installs, and more.
Cardano-addresses
Library that provides essential tools for managing Cardano addresses and mnemonics. Features include creating recovery phrases (mnemonics), wallet restoration, and creating addresses from keys.
Cardano HW CLI
Command-line interface tool that extends the official Cardano-CLI, providing the ability to manage keys, sign transactions, and interface with hardware wallets.
Cncli
CNCLI (Cardano Node CLI) is a community-developed command-line tool that extends the official cardano-cli, providing utilities for stake pool operators and developers.
Bech32
A small CLI program to convert to and from bech32 strings. This can be useful when working with addresses.
Cardano-CLI
Cardano-CLI is a core command-line tool for interacting with a Cardano node. It offers many tools such as key management, creating ADA transactions, blockchain queries, and smart contract interactions.
Cardano-signer
The Cardano Signer library is a versatile tool for signing and verifying using Cardano keys. It supports various standards like CIP-8, CIP-30, CIP-36. It can be used to sign data with a secret key, and verify data with a public key.
Nview
Nview is a monitoring tool that gives a view of a running node from the command line.
Txtop
Txtop is a tool to inspect the mempool of a Cardano node, which can be useful to see the latest transaction activity.
Cardano-Up
Cardano-up is a line utility for managing Cardano services. It allows you to install, uninstall, and manage different Cardano services and configurations.
- Cardano-up GitHub (opens in a new tab)
- Blink Labs Discord (opens in a new tab): Cardano-up channel
Hyper Jump
Command-line version manager for Cardano. Install, uninstall, and update Cardano services like Cardano-Node and Cardano-CLI.
Gastronomy
Gastronomy is a UPLC debugger that allows you to step forward and backward through steps of smart contract execution using the CLI.
Cardano Skepsis Toolbox
Cardano-skepsis-toolbox is a python-based utility designed for interacting with the Cardano blockchain via the cardano-cli.
Node Libraries
Node Libraries are essential libraries that deal with networking, consensus, and settlement. These libraries form the backbone of the Cardano blockchain network, enabling communication and operation between various components.
Cardano Node
The Cardano node is the core component to participate in the Cardano blockchain. It serves as the means for stake pool operators to produce blocks, and for all network participants to interact with the Cardano network.
- Cardano Node GitHub (opens in a new tab)
- Intersect Discord (opens in a new tab): Node-working-group channel
Ogmios
A lightweight bridge between the Cardano node and client applications, enabling efficient communication. It allows developers to use JSON and RPC for operations like querying ledger state, submitting transactions, and monitoring the mempool.
- Ogmios GitHub (opens in a new tab)
- Ogmios Documentation (opens in a new tab)
- IOG Technical Community Discord (opens in a new tab): Ogmios channel
Dolos
Dolos is a specialized Cardano data node, designed to maintain an up-to-date copy of the ledger and respond to queries from trusted clients (but does not produce blocks or handle relays). Since it is optimized for providing data, It is smaller than the Cardano node. Dolos can be an efficient backend for dApps and a useful data source for indexers.
- Dolos GitHub (opens in a new tab)
- Dolos Documentation (opens in a new tab)
- TxPipe Discord (opens in a new tab): Dolos channel
Cardano Node Tests
Cardano Node Tests is a library provides system and end-to-end (E2E) tests for cardano-node, allowing developers to run comprehensive tests on node implementations.
- Cardano-node-tests GitHub (opens in a new tab)
- Cardano-node-tests Documentation (opens in a new tab)
Amaru
Amaru is a Cardano node client written in Rust. It aims to bring more node diversity to Cardano. It is currently in development.
- Amaru GitHub (opens in a new tab)
- Amaru Roadmap (opens in a new tab)
- Pragma Discord (opens in a new tab): Amaru channel
Yaci
Yaci allows connection and interaction with Cardano nodes directly. The library provides capabilities to listen to incoming blocks in real-time, fetch previous blocks, and monitor the local mempool.
Indexing Libraries
Indexing libraries help to process the blockchain into a form where it the data can be easily queried. They can filter for specific addresses, assets, or transactions. They enable developers to access blockchain data in a way they can use.
Cardano-DB-Sync
Cardano-DB-Sync is a tool that continuously syncs the Cardano blockchain with a PostgreSQL database. It allows users to efficiently query and analyze blockchain data in real-time.
- Cardano-DB-Sync GitHub (opens in a new tab)
- Cardano-DB-Sync Documentation Files (opens in a new tab)
- Tx-Pipe Discord (opens in a new tab): DB-Sync channel
- Intersect Discord (opens in a new tab): DB-Sync Working Group Channel
Oura
Oura is CLI tool that monitors the Cardano blockchain in real-time. It allows filtering, saving, and reacting to on-chain events. Oura does not provide chain-indexing directly, but it supports sinks where filtered data can be stored (e.g. Elastic Search or Kafka).
- Oura GitHub (opens in a new tab)
- Oura Documentation (opens in a new tab)
- TxPipe Discord (opens in a new tab): Oura channel
Kupo
Kupo is a lightweight chain-indexing tool for the Cardano blockchain. It quickly syncs data by matching addresses in transaction outputs and creates a lookup table for easy access to output references, values, and scripts.
Carp
Carp is an indexer, built in Rust, that syncs blockchain data into a PostgreSQL database. It’s designed for speed and flexibility, making it ideal for production applications like wallets. It has an indexer for storing data and a web server with a REST API for database queries.
LedgerSync
LedgerSync is a Java application for indexing Cardano blockchain data. It reads from the Cardano blockchain and writes it to a PostgreSQL database. There is also a streaming app that publishes events to messaging middleware like Kafka or RabbitMQ.
Adder
Adder is a tool that monitors the Cardano blockchain and emits events as blocks and transactions occur. It provides developers with the ability to create custom indexers, allowing them to filter and track specific blockchain data efficiently.
- Adder GitHub (opens in a new tab)
- Adder Starter Kit (opens in a new tab)
- Blink Labs Discord (opens in a new tab): Adder channel
Yaci-store
Yaci Store is a modular indexer library written in Java for the Cardano blockchain. It helps developers write their own scoped indexers in Java, Kotlin, or any other JVM language. It also provides a few out-of-the-box indexers, such as yaci-store-all, which indexes all on-chain data into databases like H2, PostgreSQL, or MySQL.
- Yaci-store GitHub (opens in a new tab)
- Yaci-store Documentation (opens in a new tab)
- Roasted Bean Alliance Discord (opens in a new tab)
Scrolls
Scrolls is a Rust-based library designed for building and managing read-optimized collections of Cardano blockchain data. It efficiently crawls the blockchain, aggregates data, and keeps data updated by monitoring the chain tip.
Marconi
Marconi is a lightweight, customizable framework for indexing and querying Cardano blockchain data. It offers flexible data storage options such as SQLite, file-based, and in-memory.
Mafoc
Mafoc is a Haskell framework for developing custom blockchain indexers, using an SQLite database that can be queried for data.
Argus
Argus is a .NET library that simplifies indexing that provides a framework. It processes block data into structured, queryable formats in a PostgreSQL database. It is designed for robust enterprise integration.
Serialization Libraries
Serialization means converting data between formats so they can be easily transmitted and stored. Serialization and deserialization of CBOR is required when reading from or writing data to the Cardano blockchain.
Cardano Serialization Library (CSL)
Cardano Serialization Library, written in Rust, serializes and deserializes data structures using Cardano's official specifications. It supports multiple programming languages, including Node.js, JavaScript, WebAssembly, and Rust.
- Cardano Serialization Lib GitHub (opens in a new tab)
- Cardano Serialization Lib Documentation (opens in a new tab)
Cardano Multiplatform Lib (CML)
This multi-platform Rust library provides serialization and deserialization of core data structures, along with utility functions for dApps and wallets.
Go Cardano Serialization
Golang library for serialization and deserialization of Cardano data structures.
Testing Libraries
Testing libraries are essential tools to ensure top quality throughout the development process. These libraries may involve testing smart contracts, transactions, running simulations, or checking performance.
Naumanchia
Naumachia is a framework for creating and testing smart contracts that offers a set of tools and abstractions.
- Naumachia GitHub (opens in a new tab)
- TxPipe Discord (opens in a new tab): Naumanchia channel
Quickcheck Dynamic
QuickCheck-dynamic is a Haskell library designed for testing stateful systems, including smart contracts, using property-based testing techniques. It allows a developer to define a model of their system's behavior, generate test cases, and verify that the implementation meets the specified properties.
Plutus Bench
Test and benchmark Plutus Smart Contracts.
Vodka
Vodka is a Cardano development toolkit designed to use with Aiken. It includes unit test utilities to build transactions for testing purposes.
Registries
Registries are organized systems to record and maintain information. There are Cardano registries for tokens, smart contracts, scam tracking, and more.
Cardano Token Registry
The Cardano token registry is where token creators submit verified information about their tokens, including names, descriptions, and logos.
- Cardano Token Registry GitHub (opens in a new tab)
- Cardano Token Registry Guide and FAQ (opens in a new tab)
Offchain Data Registry
The Offchain Data Registry maps dApps to their script addresses. They also maintain useful info about smart contract audits related to those scripts.
Cardano Contracts Registry
A registry maintaining information about dApps on the Cardano blockchain, used by the Cardanoscan Explorer.
Cardano Shield Registry
Cardano shield is a registry of known scammers, collected to provide protection from phishing using machine learning and community insights. It can be used to create automatic warnings in wallets before making transactions to scammers.
- Cardano Shield GitHub (opens in a new tab)
- Cardano Shield Website (opens in a new tab)
- Cardano Shield Blacklist (opens in a new tab)
Eternl Guard Registry
Eternl Guard is a repository designed to gather domain names and asset of known bad actors. This helps users protect their funds by identifying scams.
Cardano Scam Token Registry
Cardano Scam Token Registry is a list of scam tokens. To find the scam tokens, the team uses a process that's triggered when someone sends a token to $sendscams. Each token is reviewed, and the scams are added to the registry.
- Cardano Scam Token Registry GitHub (opens in a new tab)
- Cardano Scam Token Registry Blacklist (opens in a new tab)