Back to Learn
Advanced18 min read

Building on Cardano: The Developer Toolchain

Cardano's developer toolchain has matured considerably since the Alonzo smart contract launch. In 2026, building a production-quality DApp on Cardano means choosing between several capable options at each layer — smart contracts, off-chain transaction building, chain indexing, and wallet connectivity. This guide maps the landscape so you can make informed choices for your project.

Smart contracts: Aiken

For on-chain smart contract logic, Aiken is the clear community choice (see the dedicated Aiken article for a deep dive). Install Aiken with `curl -sSfL https://install.aiken-lang.org | bash`, initialize a project with `aiken new my-project`, and start writing validators in `validators/` and library functions in `lib/`.

The Aiken standard library (`aiken-lang/stdlib`) provides crypto primitives, list utilities, and transaction-building helpers. A rich ecosystem of open-source Aiken libraries has emerged for common patterns: multisig, vesting schedules, oracles, and CIP-68 token management.

Off-chain: MeshJS

MeshJS is a TypeScript/JavaScript library for building Cardano transactions without needing to understand raw CBOR encoding. It provides a Transaction builder API, wallet connectors (CIP-30), and integrations with Blockfrost and Koios for chain data.

MeshJS works in both Node.js (backend) and browser environments (React/Next.js). A typical MeshJS workflow: connect a wallet via CIP-30, query UTXOs from Blockfrost, build a transaction using MeshJS's Transaction API, sign it with the connected wallet, and submit it to the network. MeshJS handles the complex serialization details behind the scenes.

Off-chain: Lucid-Evolution

Lucid-Evolution is a maintained fork of the popular Lucid library, updated for compatibility with current Cardano node versions and CIP-30 wallet standards. It uses a fluent API for transaction building and is favored by projects that want fine-grained control over transaction structure.

Both MeshJS and Lucid-Evolution are production-ready. MeshJS has stronger documentation for beginners; Lucid-Evolution is preferred by teams familiar with the original Lucid API who want close-to-metal transaction control. Many teams use both in different contexts.

Chain data: Blockfrost and Koios

Directly querying a cardano-node requires running a full node and a chain indexer, which is resource-intensive. For most DApps, a hosted API provider is the practical choice. Blockfrost is the most widely used API for Cardano, offering REST endpoints for querying UTXOs, transaction details, block data, and asset information. It has a generous free tier and is trusted by most major protocols.

Koios is a decentralized, open-source alternative to Blockfrost. Rather than a single provider, Koios is a network of nodes operated by stake pool operators, providing the same query interface. Koios is free to use with no rate limits for reasonable requests, making it attractive for open-source projects and lower-traffic applications.

cardano-node and local testing

For advanced development, running a local cardano-node gives you maximum control. The cardano-node is the official reference implementation written in Haskell. For local testing, you can run a private network using cardano-node in Byron genesis mode, or connect to the public preview or preprod testnets.

Preview testnet is reset periodically and is suitable for testing protocol upgrades and experimental features. Preprod is a stable testnet intended to mirror mainnet conditions closely — prefer preprod for final integration testing before mainnet launch. Testnet ADA can be obtained from the Cardano faucet at faucet.cardano-testnet.iohkdev.io.

CIP-30: wallet connector standard

CIP-30 is the standard API that Cardano wallets (Eternl, Lace, Vespr) expose to web DApps. It allows a webpage to request wallet connection, query UTXOs, and ask the wallet to sign transactions — without ever exposing the private key to the DApp.

MeshJS and Lucid-Evolution both implement CIP-30 connectors. In practice, your DApp calls `window.cardano.eternl.enable()` (or whichever wallet), receives a wallet API object, and uses it as a signer for your transaction builder. CIP-30 is well-supported across all major Cardano wallets, ensuring broad compatibility without wallet-specific code.

Key Takeaways

  • Aiken handles on-chain smart contract logic; MeshJS and Lucid-Evolution are the leading TypeScript libraries for off-chain transaction building.
  • Blockfrost (commercial, generous free tier) and Koios (decentralized, free) are the two primary chain data APIs.
  • Preview testnet is for experimental features; preprod mirrors mainnet and is preferred for final integration testing.
  • CIP-30 is the standard wallet API — implemented by all major Cardano wallets — that allows DApps to request signatures without accessing private keys.
  • The Cardano faucet provides free testnet ADA for preview and preprod networks.