Merkle tree, merkle root and proofs

$0.01 per call · failed calls are never charged · no account or subscription: pay per call with a card key or USDC

Build a Merkle tree for an allowlist or airdrop and get the root and a proof per entry, OpenZeppelin-compatible: values ABI-encoded by types (address,uint256 for airdrops), double-keccak leaves, sorted pairs, so proofs verify with MerkleProof.verify and the dump loads in StandardMerkleTree.load. Up to 2,000 values; proofs for the first 256 or the one you ask for. Ready bytes32 leaves work too. Use to set up a claim contract or check a list.

Run it free (25 free calls) Buy credits by card (from $1) Example result (JSON)

Try it with your own inputs

The entries: a JSON array of rows ([["0xabc…","100"],…]) or one row per line, fields comma-separated

Uses one of your 25 free calls. Nothing is charged, and a call that fails is not counted.

Inputs

NameTypeDescription
values (required)stringThe entries: a JSON array of rows ([["0xabc…","100"],…]) or one row per line, fields comma-separated
typesstringSolidity types of each row's fields, comma-separated (default: read from the rows: address,uint256 or address or bytes32 leaves)
proofForstringOnly the proof for this entry: its 0-based index or its first field (an address)

Request

Over HTTP, with a card key from /credits:

curl -H "Authorization: Bearer adt_…" "https://agent-data-tools.revmesh2074.workers.dev/merkle/tree?values=%5B%5B%220x1111111111111111111111111111111111111111%22%2C%225000000000000000000%22%5D%2C%5B%220x2222222222222222222222222222222222222222%22%2C%222500000000000000000%22%5D%5D"

Or one of your 25 free calls, no key:

curl "https://agent-data-tools.revmesh2074.workers.dev/merkle/tree?values=%5B%5B%220x1111111111111111111111111111111111111111%22%2C%225000000000000000000%22%5D%2C%5B%220x2222222222222222222222222222222222222222%22%2C%222500000000000000000%22%5D%5D&trial=1"

Without a key, the same URL answers 402 Payment Required with x402 and MPP terms, so an agent with a wallet pays per call in USDC (Base, Polygon, Arbitrum or Solana over x402; Base or Tempo over MPP) and retries.

Example result

{
  "format": "standard-v1",
  "leafEncoding": [
    "address",
    "uint256"
  ],
  "root": "0xd4dee0beab2d53f2cc83e567171bd2820e49898130a22622b10ead383e90bd77",
  "count": 2,
  "entries": [
    {
      "index": 0,
      "value": [
        "0x1111111111111111111111111111111111111111",
        "5000000000000000000"
      ],
      "leaf": "0xeb02c421cfa48976e66dfb29120745909ea3a0f843456c263cf8f1253483e283",
      "proof": [
        "0xb92c48e9d7abe27fd8dfd6b5dfdbfb1c9a463f80c712b66f3a5180a090cccafc"
      ]
    }
  ],
  "proofsIncluded": 2,
  "dump": {
    "format": "standard-v1",
    "leafEncoding": [
      "address",
      "uint256"
    ],
    "tree": [
      "0x…"
    ],
    "values": [
      {
        "value": [
          "0x1111111111111111111111111111111111111111",
          "5000000000000000000"
        ],
        "treeIndex": 1
      }
    ]
  },
  "verifyOnChain": "MerkleProof.verify(proof, root, keccak256(bytes.concat(keccak256(abi.encode(account, amount)))))"
}

From an AI agent (MCP)

Add the MCP server to Claude, Cursor or any MCP client. This tool is merkle_tree, and the first 25 successful calls are free:

https://agent-data-tools.revmesh2074.workers.dev/mcp

Related tools