Merkle Tree Builder

Build a Merkle root from a list of values and produce the proof for one leaf, hashing with keccak256 and pairing nodes left to right, duplicating the last one when a level has an odd number.

freeworks offlinenothing uploaded
Input
Output

About merkle tree builder

Merkle Tree Builder loads once and then runs on its own. Close the tab and there is nothing left behind, on the machine or anywhere else.

No telemetry, no analytics on what you type, no request that carries the contents anywhere. The browser does the whole job.

You will find it under Blockchain, alongside 6 other tools for the same sort of job.

Runs in this tab, so nothing you type is uploaded.

How to use it

01
Start it
Every control is on the tool itself. Keyboard shortcuts, where there are any, are listed beside it.
02
Watch it run
It updates in the page as you go. Nothing is sent anywhere, so it keeps working with the network off.
03
Close when done
Nothing is stored between visits. Reloading gives you a clean start rather than picking up where you left off.

Examples

Four values, proof for the second
A balanced tree, so no duplication is needed
Input
values: ["alice","bob","carol","dave"]
leafIndex: 1
Output
Merkle root hex: 415e49eafecf2263e29c49dcf6473e52dbf4b0f03090ff949b52aabc88aa1e8b
Leaf hash hex: 38e47a7b719dce63662aeaf43440326f551b8a7ee198cee35cb5d517f2d296a2
Tree depth: 2
Leaf count: 4
Proof sibling hashes: 9c0257114eb9399a2985f8e75dad7600c5d89fe3824ffa99ec1c3eb8bf3b0501, b81613f04cd9ce07b4781be9bbaa86a503220985be2a3f168b30d158da0db0e2
Proof sibling positions: left, right

Questions

Does Merkle Tree Builder work offline?+

Yes. It is JavaScript running in this tab, so once the page has loaded it needs nothing further from the network. Put the machine in flight mode and it carries on. Nothing you do here is sent anywhere, because there is nowhere for it to go.

Does it remember anything between visits?+

No. Reload the page and it starts from nothing. There is no account, no saved state and no cookie holding your last session. That is a deliberate trade: it cannot lose your data because it never keeps any.

Is it accurate?+

Timing comes from performance.now(), the high resolution clock the browser provides, rather than from setInterval, which drifts by a few milliseconds every tick and compounds over minutes. What can still shift things is the browser throttling a tab in the background, so leave it visible if the timing matters.

Does it make a sound?+

Where a sound makes sense, it is generated with the Web Audio API rather than loaded as a file, so there is nothing to download and nothing to block. Browsers refuse to start audio until you have interacted with the page, which is why the first press is what switches it on.

Can I use Merkle Tree Builder on a phone?+

Yes. The controls are sized for touch and the layout collapses to one column on a narrow screen. Bear in mind that a phone locking its screen will suspend the page, and timing stops with it.