Overview
LibCardano is a free code library that lets programmers working in C++ create Cardano wallet keys, addresses, and transactions inside their own software. It suits developers building wallets, payment back ends, or stake pool tools in C++ who want that work done on their own machine instead of through an outside server. LibCardano works fully offline: it prepares and signs a transaction, then leaves sending it to whatever node or service the developer already runs1.
The library comes from Viper Science, a company that runs a Cardano stake pool and builds tools for blockchain users and developers, including LibCardano2. It is written in C++20 and published under the MIT open-source license3. Project Catalyst, Cardano's community-voted grant program, funded two rounds of its development. A Fund 8 grant covered the original seed-phrase and transaction work4, and a Fund 10 grant added stake pool keys and certificates5.
Key Features
- Wallets from a recovery phrase. LibCardano creates and restores seed phrases (the list of words that backs up a wallet) in any of the standard BIP-39 word lists, then derives keys and addresses following the Cardano standards CIP-1852 and CIP-191.
- Transactions that add up on their own. The LibCardano transaction builder works out the minimum fee, adds the change output, and accounts for deposits and refunds when a transaction registers or retires a stake key or pool6.
- Setup tools for stake pool operators. Developers can generate a pool's cold, VRF, and KES keys (the set of keys a pool needs to register and produce blocks), plus operational certificates and registration or retirement certificates1.
- Shared control of a single key. Threshold signatures let several people each hold a piece of one key and sign together, producing an ordinary Ed25519 signature, the same kind a single-key wallet makes1. A coordinator combines each participant's share into the final signature7.
- Common data formats handled for you. Built-in encoders read and write Base16, Base58, and Bech32 text, plus CBOR, the compact binary format Cardano uses to store transactions and certificates1.
What to Expect
There is no app or dashboard to click through. Visitors find a documentation site with concept guides, worked examples, and a searchable reference of the library's classes and functions1. The source code lives on GitLab, with a mirror on GitHub8.
C++ developers add LibCardano the usual way for CMake, the common build tool for C++ projects: include one header file, then link the library through the CMake commands find_package or FetchContent3. A C++20 compiler (GCC 14 or newer, or a recent Clang) and CMake 3.25 or newer are required. The default build uses the vcpkg package manager, which supplies every dependency, including the Botan 3 cryptography library and the Cardano fork of libsodium, another cryptography library. Without vcpkg, Botan 3 and the OpenSSL cryptography toolkit must be installed first. A ready-made development container, with the compiler and build tools preinstalled, skips that setup, and a Docker build is also included. Linux is the main platform the project tests on3.
The worked examples walk through deriving wallet keys and addresses9, generating stake pool keys10, and building and signing a transaction6. Because LibCardano never connects to the network, developers look up spendable funds and submit the signed transaction with a separate tool such as cardano-cli, Ogmios, or Blockfrost6.
Everyday ADA holders would meet LibCardano only indirectly, inside wallets or pool software built with it. Among the other transaction builders, it serves teams whose software is already written in C++.
