Skip to content
forked from spacebudz/lucid

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

License

Notifications You must be signed in to change notification settings

zachyking/lucid

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Lucid

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

npm install lucid-cardano

Deno 🦕

For JavaScript and TypeScript

import { Lucid } from "https://deno.land/x/lucid@0.7.0/mod.ts";

Web

<script type="module">
import { Lucid } from "https://unpkg.com/lucid-cardano@0.7.0/web/mod.js"
// ...
</script>

Build from source

Build NPM and Web target

deno task build

Outputs a dist folder

Examples

Basic usage

// import { Blockfrost, Lucid } from "https://deno.land/x/lucid@0.7.0/mod.ts"; Deno
import { Blockfrost, Lucid } from "lucid-cardano"; // NPM

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);

Test

deno task test

Docs

View docs 📖

You can generate documentation with:

deno doc

Compatibility

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.


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.

cardano-multiplatform-lib

Link: https://github.com/Berry-Pool/cardano-multiplatform-lib/tree/vasil

Branch: vasil

Commit hash: 5f0654fba9d984fc391e53feae5628f7a9d3cc10

message-signing

Link: https://github.com/Emurgo/message-signing

Branch: master

Commit hash: 16dcadc69557dd7c20e62a966aaded1e051c287e

Contributing

Contributions and PRs are welcome!
The contribution instructions.

Join us on Discord!

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 87.1%
  • TypeScript 12.9%