Skip to main content


Lucid is a library, which allows you to create Cardano transactions and off-chain code for your Plutus contracts in JavaScript, Deno and Node.js.

Get started


npm install lucid-cardano

Deno 🦕

For JavaScript and TypeScript

import { Lucid } from "";


<script type="module">
import { Lucid } from ""
// ...

Build from source

Build NPM and Web target

deno task build

Outputs a dist folder


Basic usage

// import { Blockfrost, Lucid } from ""; Deno
import { Blockfrost, Lucid } from "lucid-cardano"; // NPM

const lucid = await
  new Blockfrost("", "<projectId>"),

// Assumes you are in a browser environment
const api = await window.cardano.nami.enable();

const tx = await lucid.newTx()
  .payToAddress("addr...", { lovelace: 5000000n })

const signedTx = await tx.sign().complete();

const txHash = await signedTx.submit();



deno task test

Build Core

This library is built on top of a customized version of the serialization-lib (cardano-multiplatform-lib) and on top of the message-signing library, which are written in Rust.

deno task build:core

Test Core

deno task test:core


View docs 📖

You can generate documentation with:

deno doc


Lucid is an ES Module, so to run it in the browser any bundler which allows for top level await and WebAssembly is recommended. If you use Webpack 5 enable in the webpack.config.js:

experiments: {
    asyncWebAssembly: true,
    topLevelAwait: true,
    layers: true // optional, with some bundlers/frameworks it doesn't work without

To run the library in Node.js you need to set {"type" : "module"} in your project’s package.json. Otherwise you will get import issues.


Contributions and PRs are welcome!
The contribution instructions.

Join us on Discord!

Use Lucid with React

use-cardano a React context, hook and set of components built on top of Lucid.

Use Lucid with Next.js

Cardano Starter Kit a Next.js starter kit for building Cardano dApps.