npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@dedot/merkleized-metadata

v1.0.2

Published

RFC-0078 Merkleized Metadata Implementation

Readme

@dedot/merkleized-metadata

Merkleized Metadata Utilities - Implementing the RFC-0078 Merkleized Metadata specification.

Overview

This package provides utilities for:

  • Calculate metadata hash/digest
  • Generate proofs for extrinsic, extrinsic payload or extrinsic parts

Usage

Calculating Metadata Hash/Digest

import { DedotClient, WsProvider } from 'dedot';
import { MerkleizedMetadata } from 'dedot/merkleized-metadata';

// Create a dedot client
const client = await DedotClient.new(new WsProvider('wss://rpc.polkadot.io'));

// Get metadata from the client
const metadata = client.metadata;

// Define chain-specific information
const chainInfo = {
  // These can be omitted as they'll be fetched from metadata
  // specVersion: client.runtimeVersion.specVersion,
  // specName: client.runtimeVersion.specName,
  // ss58Prefix: 0, // Polkadot

  // These are required
  decimals: 10,
  tokenSymbol: 'DOT'
};

// Create a merkleizer instance
const merkleizer = new MerkleizedMetadata(metadata, chainInfo);

// Calculate metadata hash
const hash = merkleizer.digest();
console.log('Metadata Hash:', hash);

Generating Proofs for Extrinsics

import { MerkleizedMetadata } from 'dedot/merkleized-metadata';

// Create a merkleizer instance
const merkleizer = new MerkleizedMetadata(metadata, chainInfo);

// Generate proof for an extrinsic
const extrinsicHex = '0x...'; // Hex-encoded extrinsic
const proof = merkleizer.proofForExtrinsic(extrinsicHex);

// Generate proof for extrinsic payload
const txPayload = '0x...'; // Hex-encoded extrinsic payload
const proof3 = merkleizer.proofForExtrinsicPayload(txPayload);

// Generate proof for extrinsic parts
const callData = '0x...'; // Hex-encoded call data
const includedInExtrinsic = '0x...'; // Hex-encoded extrinsic extra
const includedInSignedData = '0x...'; // Hex-encoded signed extra
const proof2 = merkleizer.proofForExtrinsicParts(callData, includedInExtrinsic, includedInSignedData);

MerkleizedMetadata

Main class for calculating metadata hashes and generating proofs.

  • Constructor: new MerkleizedMetadata(metadata, chainInfo)

    • metadata: Metadata object, hex string, or Uint8Array
    • chainInfo: Chain-specific information (some fields can be omitted as they'll be fetched from metadata)
  • Methods:

    • digest(): Calculate metadata hash and return as Uint8Array
    • proofForExtrinsic(extrinsic, additionalSigned?): Generate proof for an extrinsic
    • proofForExtrinsicPayload(txPayload): Generate proof for extrinsic payload
    • proofForExtrinsicParts(callData, includedInExtrinsic, includedInSignedData): Generate proof for extrinsic parts

License

Apache-2.0