meshjs/skills · Archived

mesh-core-cst

Use when working with low-level Cardano utilities via MeshJS core-cst package.

First seen Feb 22, 2026

Installation

$ npx skills add meshjs/skills --skill mesh-core-cst

Summary

  • Use when working with low-level Cardano utilities via MeshJS core-cst package.
  • Covers CBOR serialization and deserialization, Plutus data conversion, address resolution and parsing, CIP-8 message signing and verification, script parameterization with applyParamsToScript, native script hashing, and direct access to cardano-sdk types.

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from meshjs/skills.

npx skills add meshjs/skills

Browse all from meshjs/skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 2
License Apache-2.0
Default branch main
Open issues 0
Status Archived

Skill metadata

Parsed from SKILL.md frontmatter.

Version1.0
LicenseApache-2.0
More metadata
author
MeshJS
version
1.0

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 5,410 B
  • docs README.md 1,681 B
  • docs SUMMARY.md 355 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 38 installs

SKILL.md

Mesh SDK Core CST Skill

AI-assisted low-level Cardano utilities using @meshsdk/core-cst.

Package Info

npm install @meshsdk/core-cst
# or
npm install @meshsdk/core  # includes core-cst + transaction + wallet + provider

What is core-cst?

@meshsdk/core-cst provides low-level utilities for:

  • Serialization - Convert transactions to/from CBOR
  • Resolvers - Extract hashes, addresses, keys from various formats
  • Message Signing - CIP-8 COSE sign and verify
  • Plutus Tools - Apply parameters to scripts, normalize encodings
  • Data Conversion - Plutus data ↔ JSON ↔ CBOR
  • Address Utilities - Parse, serialize, convert address formats

Quick Reference

Resolvers

import {
  resolveDataHash,
  resolvePaymentKeyHash,
  resolveStakeKeyHash,
  resolveRewardAddress,
  resolvePlutusScriptAddress,
  resolvePlutusScriptHash,
  resolveNativeScriptAddress,
  resolveNativeScriptHash,
  resolvePoolId,
  resolvePrivateKey,
  resolveTxHash,
  resolveScriptRef,
  resolveScriptHashDRepId,
  resolveEd25519KeyHash,
} from '@meshsdk/core-cst';

// Get data hash from Plutus data
const hash = resolveDataHash({ constructor: 0, fields: [] });

// Get payment key hash from address
const keyHash = resolvePaymentKeyHash('addr_test1qp...');

// Get stake/reward address from base address
const rewardAddr = resolveRewardAddress('addr_test1qp...');

// Get script address from Plutus script
const scriptAddr = resolvePlutusScriptAddress(
  { code: '59...', version: 'V2' },
  0  // networkId
);

// Get tx hash from tx CBOR
const txHash = resolveTxHash(txCborHex);

Message Signing (CIP-8)

import { signData, checkSignature } from '@meshsdk/core-cst';

// Sign data
const signature = signData('Hello Cardano!', signer);
// { key: 'a401...', signature: '845846...' }

// Verify signature
const isValid = await checkSignature(
  'Hello Cardano!',
  signature,
  'addr_test1qp...'  // optional address verification
);

Plutus Tools

import { applyParamsToScript, normalizePlutusScript } from '@meshsdk/core-cst';

// Apply parameters to parameterized script
const appliedScript = applyParamsToScript(
  rawScriptHex,
  [{ constructor: 0, fields: [{ bytes: 'abc123' }] }],
  'Mesh'  // or 'JSON' or 'CBOR'
);

// Normalize script encoding
const normalized = normalizePlutusScript(scriptHex, 'DoubleCBOR');

Data Conversion

import {
  toPlutusData,
  fromBuilderToPlutusData,
  fromPlutusDataToJson,
  parseDatumCbor,
} from '@meshsdk/core-cst';

// Mesh Data → PlutusData
const plutusData = toPlutusData({ constructor: 0, fields: ['hello', 42] });

// BuilderData → PlutusData (handles Mesh/JSON/CBOR)
const data = fromBuilderToPlutusData({ type: 'Mesh', content: myData });

// PlutusData → JSON
const json = fromPlutusDataToJson(plutusData);

// Parse datum CBOR to JSON
const datum = parseDatumCbor<MyDatumType>(datumCborHex);

Address Utilities

import {
  deserializeBech32Address,
  serialzeAddress,
  scriptHashToBech32,
  addrBech32ToPlutusDataHex,
} from '@meshsdk/core-cst';

// Deserialize address to components
const { pubKeyHash, scriptHash, stakeCredentialHash } =
  deserializeBech32Address('addr_test1qp...');

// Script hash to bech32 address
const addr = scriptHashToBech32(scriptHash, stakeKeyHash, 0);

// Address to Plutus data (for on-chain use)
const addrPlutusHex = addrBech32ToPlutusDataHex('addr_test1qp...');

CardanoSDKSerializer

import { CardanoSDKSerializer } from '@meshsdk/core-cst';

const serializer = new CardanoSDKSerializer(protocolParams);

// Serialize transaction body
const txCbor = serializer.serializeTxBody(meshTxBuilderBody);

// Add signing keys to transaction
const signedTx = serializer.addSigningKeys(txCbor, [privateKeyHex]);

// Serialize data
const dataCbor = serializer.serializeData({ type: 'Mesh', content: myData });

// Serialize address from components
const addr = serializer.serializeAddress({
  pubKeyHash: '...',
  stakeCredentialHash: '...',
}, 0);

Files

  • [CORE-CST.md](./CORE-CST.md) - Complete API reference
  • [PATTERNS.md](./PATTERNS.md) - Common usage patterns
  • [TROUBLESHOOTING.md](./TROUBLESHOOTING.md) - Error solutions

Module Exports

Module Purpose
resolvers Hash/address resolution functions
serializer CardanoSDKSerializer class
message-signing CIP-8 COSE utilities
plutus-tools Script parameterization
utils Data, address, encoding utilities
types Re-exports from @cardano-sdk/core

Important Notes

  1. This is a low-level package - Most users should use @meshsdk/transaction instead
  2. Used internally by Mesh - Powers MeshTxBuilder serialization
  3. Requires understanding of Cardano primitives - CBOR, Plutus data, addresses
  4. Re-exports cardano-sdk - Access via Cardano, Serialization, Crypto exports