MeshJS/mesh

Collection of comprehensive TypeScript libraries for blockchain development on Cardano.

TypeScript

273

2,911 commits

updated Sep 18, 2026

See the code

README

Mesh SDK logo

Mesh: the TypeScript SDK for Cardano

License Build Publish npm npm downloads

Discord Twitter/X

Build Cardano dApps in TypeScript: transactions, wallets, smart contracts and blockchain data in one open-source SDK.

Website & live demos · API docs · Guides · Examples · Discord


Mesh is an open-source TypeScript and JavaScript SDK for building applications on the Cardano blockchain. It handles the hard parts of Cardano development, such as coin selection, fee calculation, CBOR serialization and script evaluation, so you can focus on your app.

With Mesh you can:

  • Build transactions with MeshTxBuilder: send ADA and native tokens, mint and burn NFTs, stake, vote in governance, and spend from Plutus and Aiken scripts.
  • Connect wallets in the browser through CIP-30 (such as Eternl) with BrowserWallet, or sign server-side from a mnemonic or private key with MeshWallet.
  • Use ready-made smart contracts for escrow, marketplaces, vesting, swaps and more, each with on-chain code and off-chain TypeScript.
  • Query and submit through Blockfrost, Koios, Maestro, Ogmios, Yaci and other blockchain providers.
  • Test offline against a local ledger with the Scalus emulator.

Mesh runs in Node.js, the browser, Next.js and other modern frameworks.

Quick start

Create a new Cardano dApp from a template with the Mesh CLI:

npx meshjs your-app-name

Or add Mesh to an existing project:

npm install @meshsdk/core

Example: send ADA from a browser wallet

import { BlockfrostProvider, BrowserWallet, MeshTxBuilder } from "@meshsdk/core";

const provider = new BlockfrostProvider("<BLOCKFROST_PROJECT_ID>");
const wallet = await BrowserWallet.enable("eternl");

const txBuilder = new MeshTxBuilder({ fetcher: provider, submitter: provider });

const unsignedTx = await txBuilder
  .txOut("addr_test1...", [{ unit: "lovelace", quantity: "5000000" }])
  .changeAddress(await wallet.getChangeAddress())
  .selectUtxosFrom(await wallet.getUtxos())
  .complete();

const signedTx = await wallet.signTx(unsignedTx);
const txHash = await provider.submitTx(signedTx);

Try this and many more transactions interactively in the Mesh playground.

Packages

This monorepo publishes the core Mesh packages to npm under the @meshsdk scope. Most apps only need @meshsdk/core, which re-exports transactions, wallets, providers and common utilities.

PackageDescriptionDocs
@meshsdk/coreThe main entry point. Re-exports transactions, wallets, providers and common utilities.Playground
@meshsdk/transactionMeshTxBuilder for sending assets, minting tokens and interacting with smart contractsDocs · Playground
@meshsdk/contractOpen-source smart contracts with off-chain transaction codeDocs · Playground
@meshsdk/commonShared constants, types and interfaces used across the SDKDocs
@meshsdk/core-cstSerialization and utilities built on cardano-js-sdk and Harmonic Labs librariesDocs
@meshsdk/core-cslSerialization and utilities built on Whisky (cardano-serialization-lib)Docs
@meshsdk/scalus-emulatorLocal Cardano ledger emulator built on Scalus, for testing transactions offline

Packages in other repositories

These @meshsdk packages are developed in their own repositories:

PackageDescriptionRepository
@meshsdk/walletBrowser (CIP-30) and headless wallets for managing keys, signing and submittingMeshJS/wallet
@meshsdk/providerBlockchain data providers (Blockfrost, Koios, Maestro, Ogmios and more)MeshJS/providers
@meshsdk/reactReact components and hooks for Cardano wallet connectionMeshJS/react
@meshsdk/hydraHydra Head protocol client for layer-2 scalingMeshJS/hydra
@meshsdk/midnight-setupDevelopment setup for Midnight Network dAppsMeshJS/midnight-setup
@meshsdk/midnight-contracts-wizardCLI wizard for new Midnight contract projectsMeshJS/midnight-contracts-wizard

Architecture

graph TD
  core["@meshsdk/core"]
  common["@meshsdk/common"]
  core_csl["@meshsdk/core-csl"]
  core_cst["@meshsdk/core-cst"]
  provider["@meshsdk/provider"]
  transaction["@meshsdk/transaction"]
  wallet["@meshsdk/wallet"]
  contract["@meshsdk/contract"]
  emulator["@meshsdk/scalus-emulator"]
  whisky["@sidan-lab/whisky-js"]
  cardano_sdk["@cardano-sdk/*"]
  harmoniclabs["@harmoniclabs/*"]

  contract --> core
  core --> provider
  core --> transaction
  core --> wallet
  core --> core_cst
  wallet --> transaction
  transaction --> core_cst
  emulator --> core_cst

  subgraph serializers
    core_csl --> whisky
    core_cst --> cardano_sdk
    core_cst --> harmoniclabs
  end

  core_cst --> common
  core_csl --> common

  click core_csl "https://docs.meshjs.dev/core-csl" _parent
  click core_cst "https://docs.meshjs.dev/core-cst" _parent
  click provider "https://github.com/MeshJS/providers" _parent
  click transaction "https://docs.meshjs.dev/transactions" _parent
  click wallet "https://github.com/MeshJS/wallet" _parent
  click contract "https://docs.meshjs.dev/contracts" _parent

Cardano smart contracts library

@meshsdk/contract includes open-source Cardano smart contracts, each with on-chain Aiken code, off-chain TypeScript, documentation and a live demo.

ContractWhat it doesLinks
Content OwnershipA registry where users create content that is recorded on-chainDemo · Source · Docs
EscrowHolds assets between two parties until both agree to complete the exchangeDemo · Source · Docs
GiftcardLocks assets behind a newly minted gift card token; redeeming burns the token and releases the assetsDemo · Source · Docs
Hello WorldA simple lock-and-unlock contract to learn end-to-end validation and transaction buildingDemo · Source · Docs
MarketplaceAn NFT marketplace where anyone can list, buy and sell native assetsDemo · Source · Docs
NFT Minting MachineMints NFTs with an index that increments by one for each new tokenDemo · Source · Docs
Payment SplitterSplits incoming payments among a group of addressesDemo · Source · Docs
SwapExchanges assets between two partiesDemo · Source · Docs
VestingLocks tokens until a set time, after which the beneficiary can withdraw themDemo · Source · Docs
Asteria (work in progress)A bot challenge where ships race across a 2D grid to showcase the eUTxO modelSource
Royalties (work in progress)CIP-102 royalties for NFTsSource · Docs

Developing Mesh

Mesh is a Turborepo monorepo using npm workspaces. You need Node.js 18 or later.

git clone https://github.com/MeshJS/mesh.git
cd mesh
npm install
npm run build
CommandWhat it does
npm run buildBuild all packages
npm run devBuild packages in watch mode
npm testRun the test suites
npm run lintLint all packages
npm run formatCheck formatting with Prettier (format:fix to apply)

Contributing

Contributions of all kinds are welcome: bug fixes, new features, documentation, tests, and help triaging issues and pull requests.

Using an AI coding assistant? MeshJS/skills gives Claude Code, Cursor, Codex and other tools deep knowledge of the Mesh SDK.

License

Mesh is released under the Apache 2.0 License.

Repobeats analytics

cardano
sdk
typescript
web3

Contributors

(top 30 of 39)

jinglescode

1,052 commits

twwu123

519 commits

HinsonSIDAN

452 commits

abdelkrimdev

412 commits

MeshJS/mesh

Collection of comprehensive TypeScript libraries for blockchain development on Cardano.

TypeScript

273

2,911 commits

updated Sep 18, 2026

See the code

README

Mesh SDK logo

Mesh: the TypeScript SDK for Cardano

License Build Publish npm npm downloads

Discord Twitter/X

Build Cardano dApps in TypeScript: transactions, wallets, smart contracts and blockchain data in one open-source SDK.

Website & live demos · API docs · Guides · Examples · Discord


Mesh is an open-source TypeScript and JavaScript SDK for building applications on the Cardano blockchain. It handles the hard parts of Cardano development, such as coin selection, fee calculation, CBOR serialization and script evaluation, so you can focus on your app.

With Mesh you can:

  • Build transactions with MeshTxBuilder: send ADA and native tokens, mint and burn NFTs, stake, vote in governance, and spend from Plutus and Aiken scripts.
  • Connect wallets in the browser through CIP-30 (such as Eternl) with BrowserWallet, or sign server-side from a mnemonic or private key with MeshWallet.
  • Use ready-made smart contracts for escrow, marketplaces, vesting, swaps and more, each with on-chain code and off-chain TypeScript.
  • Query and submit through Blockfrost, Koios, Maestro, Ogmios, Yaci and other blockchain providers.
  • Test offline against a local ledger with the Scalus emulator.

Mesh runs in Node.js, the browser, Next.js and other modern frameworks.

Quick start

Create a new Cardano dApp from a template with the Mesh CLI:

npx meshjs your-app-name

Or add Mesh to an existing project:

npm install @meshsdk/core

Example: send ADA from a browser wallet

import { BlockfrostProvider, BrowserWallet, MeshTxBuilder } from "@meshsdk/core";

const provider = new BlockfrostProvider("<BLOCKFROST_PROJECT_ID>");
const wallet = await BrowserWallet.enable("eternl");

const txBuilder = new MeshTxBuilder({ fetcher: provider, submitter: provider });

const unsignedTx = await txBuilder
  .txOut("addr_test1...", [{ unit: "lovelace", quantity: "5000000" }])
  .changeAddress(await wallet.getChangeAddress())
  .selectUtxosFrom(await wallet.getUtxos())
  .complete();

const signedTx = await wallet.signTx(unsignedTx);
const txHash = await provider.submitTx(signedTx);

Try this and many more transactions interactively in the Mesh playground.

Packages

This monorepo publishes the core Mesh packages to npm under the @meshsdk scope. Most apps only need @meshsdk/core, which re-exports transactions, wallets, providers and common utilities.

PackageDescriptionDocs
@meshsdk/coreThe main entry point. Re-exports transactions, wallets, providers and common utilities.Playground
@meshsdk/transactionMeshTxBuilder for sending assets, minting tokens and interacting with smart contractsDocs · Playground
@meshsdk/contractOpen-source smart contracts with off-chain transaction codeDocs · Playground
@meshsdk/commonShared constants, types and interfaces used across the SDKDocs
@meshsdk/core-cstSerialization and utilities built on cardano-js-sdk and Harmonic Labs librariesDocs
@meshsdk/core-cslSerialization and utilities built on Whisky (cardano-serialization-lib)Docs
@meshsdk/scalus-emulatorLocal Cardano ledger emulator built on Scalus, for testing transactions offline

Packages in other repositories

These @meshsdk packages are developed in their own repositories:

PackageDescriptionRepository
@meshsdk/walletBrowser (CIP-30) and headless wallets for managing keys, signing and submittingMeshJS/wallet
@meshsdk/providerBlockchain data providers (Blockfrost, Koios, Maestro, Ogmios and more)MeshJS/providers
@meshsdk/reactReact components and hooks for Cardano wallet connectionMeshJS/react
@meshsdk/hydraHydra Head protocol client for layer-2 scalingMeshJS/hydra
@meshsdk/midnight-setupDevelopment setup for Midnight Network dAppsMeshJS/midnight-setup
@meshsdk/midnight-contracts-wizardCLI wizard for new Midnight contract projectsMeshJS/midnight-contracts-wizard

Architecture

graph TD
  core["@meshsdk/core"]
  common["@meshsdk/common"]
  core_csl["@meshsdk/core-csl"]
  core_cst["@meshsdk/core-cst"]
  provider["@meshsdk/provider"]
  transaction["@meshsdk/transaction"]
  wallet["@meshsdk/wallet"]
  contract["@meshsdk/contract"]
  emulator["@meshsdk/scalus-emulator"]
  whisky["@sidan-lab/whisky-js"]
  cardano_sdk["@cardano-sdk/*"]
  harmoniclabs["@harmoniclabs/*"]

  contract --> core
  core --> provider
  core --> transaction
  core --> wallet
  core --> core_cst
  wallet --> transaction
  transaction --> core_cst
  emulator --> core_cst

  subgraph serializers
    core_csl --> whisky
    core_cst --> cardano_sdk
    core_cst --> harmoniclabs
  end

  core_cst --> common
  core_csl --> common

  click core_csl "https://docs.meshjs.dev/core-csl" _parent
  click core_cst "https://docs.meshjs.dev/core-cst" _parent
  click provider "https://github.com/MeshJS/providers" _parent
  click transaction "https://docs.meshjs.dev/transactions" _parent
  click wallet "https://github.com/MeshJS/wallet" _parent
  click contract "https://docs.meshjs.dev/contracts" _parent

Cardano smart contracts library

@meshsdk/contract includes open-source Cardano smart contracts, each with on-chain Aiken code, off-chain TypeScript, documentation and a live demo.

ContractWhat it doesLinks
Content OwnershipA registry where users create content that is recorded on-chainDemo · Source · Docs
EscrowHolds assets between two parties until both agree to complete the exchangeDemo · Source · Docs
GiftcardLocks assets behind a newly minted gift card token; redeeming burns the token and releases the assetsDemo · Source · Docs
Hello WorldA simple lock-and-unlock contract to learn end-to-end validation and transaction buildingDemo · Source · Docs
MarketplaceAn NFT marketplace where anyone can list, buy and sell native assetsDemo · Source · Docs
NFT Minting MachineMints NFTs with an index that increments by one for each new tokenDemo · Source · Docs
Payment SplitterSplits incoming payments among a group of addressesDemo · Source · Docs
SwapExchanges assets between two partiesDemo · Source · Docs
VestingLocks tokens until a set time, after which the beneficiary can withdraw themDemo · Source · Docs
Asteria (work in progress)A bot challenge where ships race across a 2D grid to showcase the eUTxO modelSource
Royalties (work in progress)CIP-102 royalties for NFTsSource · Docs

Developing Mesh

Mesh is a Turborepo monorepo using npm workspaces. You need Node.js 18 or later.

git clone https://github.com/MeshJS/mesh.git
cd mesh
npm install
npm run build
CommandWhat it does
npm run buildBuild all packages
npm run devBuild packages in watch mode
npm testRun the test suites
npm run lintLint all packages
npm run formatCheck formatting with Prettier (format:fix to apply)

Contributing

Contributions of all kinds are welcome: bug fixes, new features, documentation, tests, and help triaging issues and pull requests.

Using an AI coding assistant? MeshJS/skills gives Claude Code, Cursor, Codex and other tools deep knowledge of the Mesh SDK.

License

Mesh is released under the Apache 2.0 License.

Repobeats analytics

cardano
sdk
typescript
web3

Contributors

(top 30 of 39)

jinglescode

1,052 commits

twwu123

519 commits

HinsonSIDAN

452 commits

abdelkrimdev

412 commits

Languages

TypeScript

89.5%

Aiken

6.5%

MDX

3.0%