Overview
Cardano-C is a free code library (a ready-made package of code that programmers drop into their own software) for building, signing, and reading blockchain transactions from programs written in C. It suits teams writing wallets, backend services, or other software in languages that lack a full-featured Cardano toolkit. Because most programming languages can call C code, one Cardano-C core can sit underneath toolkits for many other languages1.
Biglup Labs publishes Cardano-C on GitHub under the Apache 2.0 open-source license, and the library covers Cardano transactions up to the Conway era, the protocol stage that added on-chain governance2. Its development was funded through Project Catalyst, Cardano's community-voted grant program, where the Fund 11 proposal led by Angel Castillo is marked complete1. The source code follows MISRA C 2012, a published rule set for writing safer, more predictable C, and is checked against those rules with the cppcheck analysis tool3.
Key Features
- Transactions that balance themselves. The Cardano-C builder picks which coins in a wallet to spend and creates the change, using either the Random-Improve method from CIP-2, a Cardano Improvement Proposal, or a simpler largest-first option2.
- Smart contract checks without a server. A built-in evaluator runs Plutus smart contracts (Plutus V1, V2, and V3), the programs that decide whether a transaction may spend funds or mint tokens, on the developer's own machine and works out a transaction's computing budget, with no full Cardano node or outside service needed2.
- Build in JavaScript and Python too. Project Cometa publishes ready-made wrappers, cometa.js for JavaScript and TypeScript and cometa.py for Python, both built on the Cardano-C core4.
- Governance transactions included. Example programs show how to register as a DRep (a representative who votes on Cardano governance for ADA holders who delegate to them), vote on proposals, and propose treasury withdrawals2.
- Group trades between several parties. With nested transactions from CIP-118, a feature of Cardano's Dijkstra era, each party builds and signs its own piece, then a batcher combines the pieces into one transaction that pays a single fee for the group. Support covers key signatures and Cardano's native scripts, not Plutus smart contracts2.
What to Expect
Cardano-C has no app or dashboard to click through. It lives as a GitHub repository plus a documentation site, and people holding ADA meet it only inside software that someone else built on top of it. Among other transaction builders, Cardano-C gives programmers the parts, not a finished point-and-click tool.
C developers get an API reference (the catalog of functions a program can call) on Read the Docs5, plus a folder of complete example programs2. The examples cover tasks such as sending lovelace, the smallest unit of ADA, and the governance actions above.
The library bundles its two outside dependencies, libsodium and libgmp, directly into the build, so nothing extra has to be installed to run it2. Each object keeps a count of its holders: C code releases an object by calling its matching release function, and the library frees the object when that count reaches zero. That design is what makes Cardano-C straightforward to wrap in languages like Python and JavaScript, which clean up memory on their own2.
JavaScript and Python developers can skip C entirely. The JavaScript version installs from npm, JavaScript's package registry, and compiles the C core into a single module that runs in Node.js and in web browsers6. The Python version installs with pip, Python's package manager7. Each wrapper offers a chainable transaction builder, where a developer adds inputs, outputs, and the change address one step at a time before building the final transaction6,7.
