# merkletreejs/merkletreejs

🌱 Construct Merkle Trees and verify proofs in JavaScript. By @miguelmota

Repository: https://github.com/merkletreejs/merkletreejs
Canonical: https://ross.abutalabs.com/products/merkletreejs
Homepage: https://merkletree.js.org
Language: TypeScript
License: MIT
License Family: permissive
Topics: merkle-tree, merkle-proof, blockchain, bitcoin, ethereum, nodejs, javascript, merkle-root, protocol, solidity, smart-contracts, merkle, merkle-tree-diagram, multiproof, merkle-multiproof, verify-proofs, soli, merkletreejs, mmr, merkle-mountain-range
Last push: 2025-09-15T07:52:58+00:00

## Health v2 (maintenance only)
Score: 47/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 42, release rhythm 23, longevity 100
- inputs: {"age_days": 3329, "days_push": 352, "days_rel": 352, "gap_med": 100.0, "n_releases_24m": 3}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1241, forks 227 (observed 2026-08-28T04:04:06.346621+00:00)

## What it is
A JavaScript/TypeScript library for constructing Merkle Trees and generating and verifying cryptographic inclusion proofs. It supports multiple hash functions, Bitcoin-style trees, multi-proofs, JSON serialization, and Merkle Mountain Ranges.

## Use cases
- generate merkle proofs for ethereum smart contract whitelists
- verify merkle proofs in javascript
- build a merkle tree from hashed leaves
- compute a merkle root for airdrop eligibility
- generate multiproofs for multiple leaves
- implement bitcoin-style merkle trees
- serialize and deserialize merkle trees to json

## When to choose
- you need merkle proof generation and verification in Node.js or the browser
- you're building Ethereum/Solidity smart contract workflows like airdrops or whitelists
- you need flexible hash functions, sorting options, or multi-proof support
- you want TypeScript types and JSON tree serialization

## When to avoid
- you need merkle trees in a non-JavaScript language
- you need a general-purpose hash tree or authenticated data structure beyond Merkle variants
- you need a persistent on-disk merkle database rather than an in-memory tree

## Facets
- artifact type: library
- maturity: stable
- function: cryptography, serialization, developer-tools
- domain: blockchain, security
- platform: browser
- tags: merkle-tree, merkle-proof, smart-contracts, ethereum, bitcoin, multiproof, merkle-mountain-range, whitelist, cryptocurrency, algorithms, nodejs, javascript, typescript

## Member repositories
- merkletreejs/merkletreejs (main) score 47

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:04:06.346621+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T05:08:29.533141+00:00, confidence not recorded.
  - readme: https://github.com/merkletreejs/merkletreejs (fetched 2026-08-28T04:04:06.346621+00:00, sha 0decb5ab28bb)
  - homepage: https://merkletree.js.org (fetched 2026-08-29T12:20:25.726438+00:00, sha 57360ea8ee9c)
  - registry_npm: https://registry.npmjs.org/merkletreejs (fetched 2026-08-29T12:20:25.734554+00:00, sha 1a2ccf6a4f02)
- Data as of 2026-08-30T08:39:29.467469+00:00.
