Mesh LogoMesh

Mesh SDK API Reference

Build Cardano applications with Mesh's comprehensive SDK for wallets, transactions, data handling, and utilities.

Overview

The Mesh SDK provides everything you need to build Cardano applications: wallet integrations, transaction builders, data serialization, and utility functions. Choose the APIs that fit your use case.

Quick Start

npm install @meshsdk/core
import { MeshTxBuilder, BlockfrostProvider } from "@meshsdk/core";
import { MeshCardanoBrowserWallet } from "@meshsdk/wallet";

// Connect to a browser wallet
const wallet = await MeshCardanoBrowserWallet.enable("eternl");

// Initialize provider and transaction builder
const provider = new BlockfrostProvider("<YOUR_API_KEY>");
const txBuilder = new MeshTxBuilder({ fetcher: provider });

// Build and submit a transaction
const utxos = await wallet.getUtxosMesh();
const changeAddress = await wallet.getChangeAddressBech32();

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

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

API Categories

CategoryPurposeKey Classes
WalletsConnect and interact with user walletsMeshCardanoBrowserWallet, MeshCardanoHeadlessWallet
Transaction BuilderConstruct and customize transactionsMeshTxBuilder
Transaction ParserParse and test transaction dataMeshTxParser, TxTester
DataHandle Cardano data types and conversionsMeshValue, JSON/Mesh formats
UtilitiesSerialize, deserialize, and resolve dataSerializers, deserializers, resolvers

Wallets

Connect to browser extension wallets (CIP-30) or create server-side wallets for backend applications.

// Browser wallet (frontend)
import { MeshCardanoBrowserWallet } from "@meshsdk/wallet";
const wallet = await MeshCardanoBrowserWallet.enable("eternl");

// Headless wallet (backend)
import { MeshCardanoHeadlessWallet, AddressType } from "@meshsdk/wallet";
const wallet = await MeshCardanoHeadlessWallet.fromMnemonic({
  networkId: 0,
  walletAddressType: AddressType.Base,
  fetcher: provider,
  mnemonic: ["..."],
});

Learn more about Wallets →

Transaction Builder

Build any type of Cardano transaction with fine-grained control over inputs, outputs, metadata, and scripts.

import { MeshTxBuilder } from "@meshsdk/core";

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

const unsignedTx = await txBuilder
  .txOut(recipient, [{ unit: "lovelace", quantity: "5000000" }])
  .mint("1", policyId, assetName)
  .mintingScript(forgingScript)
  .metadataValue(721, metadata)
  .changeAddress(changeAddress)
  .selectUtxosFrom(utxos)
  .complete();

Learn more about Transaction Builder →

Data Handling

Work with Cardano's data types and convert between different formats.

import { MeshValue, mConStr0 } from "@meshsdk/core";

// Work with multi-asset values
const value = new MeshValue();
value.addAsset({ unit: "lovelace", quantity: "5000000" });

// Create Plutus data
const datum = mConStr0([pubKeyHash]);

Learn more about Data APIs →

Utilities

Serialize addresses, deserialize transactions, and resolve various Cardano identifiers.

import {
  deserializeAddress,
  serializeNativeScript,
  resolveScriptHash
} from "@meshsdk/core";

// Get key hash from address
const { pubKeyHash } = deserializeAddress(address);

// Create and serialize a native script
const { address, scriptCbor } = serializeNativeScript(nativeScript);

// Get policy ID from script
const policyId = resolveScriptHash(forgingScript);

Learn more about Utilities →

Available APIs

On this page