Lucid is a library, which allows you to create Cardano transactions and off-chain code for your Plutus contracts in JavaScript and Node.js.
npm install lucid-cardano
Install dependencies
npm install
Generate build
npm run build
You can check out the examples folder.
See sample-ada-transfer example for end-to-end browser integration usage.
import {Lucid, Blockfrost} from "lucid-cardano";
const lucid = await Lucid.new(
new Blockfrost('https://cardano-testnet.blockfrost.io/api/v0', '<projectId>'),
'Testnet'
);
// Assumes you are in a browser environment
const api = await window.cardano.nami.enable();
lucid.selectWallet(api);
const tx = await lucid.newTx()
.payToAddress("addr...", {lovelace: 5000000n})
.complete();
const signedTx = await tx.sign().complete();
const txHash = await signedTx.submit();
console.log(txHash);
npm test
You can generate documentation with:
npm run docs
It'll be located under /docs
.
To run it in the browser Webpack 5 is recommended or any other bundler which allows for top level await and WebAssembly. 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.
This library is built on top of a customized version of the serialization-lib (cardano-multiplatform-lib).
Documentation for cardano-multiplatform-lib: https://cardano-lucid.readthedocs.io/en/latest
Link: https://github.com/Berry-Pool/cardano-multiplatform-lib/tree/plutus
Branch: Plutus
Commit hash: 97e57ec28a0a1a48a5c1f71af9ed97b058091b74