Open source · v1.0.2

Morylen Airdrop Kit

A standalone toolkit that runs a token airdrop from start to finish on any EVM chain — no database and no cloud. It is the exact code behind the Musicoin → MORY distribution, released so anyone can audit it, reproduce the Merkle root, and run their own campaign. MIT licensed.

Download · v1.0.2

~51 MB · source + contracts + the full Musicoin → MORY campaign data, Merkle proofs, and a ready-to-run merkle.json

Download airdrop kit
MD5   bdfd0192af9f31f16731e37920fa1e3e
SHA256 32dc9df513eb77e7abffc203b73f420425cf0a97be2603dde953d94e7826ba2b

Verify after download: md5sum airdrop-kit-1.0.2.zip and compare to the value above.

What's inside

Smart contracts

A gas-efficient MerkleDistributor (claim by proof, sweep unclaimed after the deadline, reentrancy-guarded), an EscrowClaimDistributor for a gasless, front-run-safe email claim to a new wallet (for keyless custodial holders), plus a fixed-supply ERC20 template. Hardhat project with cross-checked test vectors.

Core engine

Ingest → allocate → build Merkle tree → estimate cost → preflight gate → nonce-safe, resumable bulk send (skips already-claimed, checkpoints progress, survives interruptions).

CLI

Keyless by default — the kit prints calldata and you sign in Ledger or Safe; a hot-key is opt-in (encrypted keystore) only for high-volume pushes.

Operator console (local web)

A localhost dashboard to deploy, fund, and bulk-send, plus an email mapping workspace: export a template, import contacts, see coverage, and notify recipients with delivery/bounce handling.

The Musicoin → MORY campaign data

The kit ships with the real, verifiable distribution. Every figure below is reproducible from the included files — rebuild the tree with scripts/verify-all.ts and you get the same Merkle root, byte for byte.

Recipients

102,376

eligible wallets

Total

1,104,593,393.72

MORY (18 decimals)

Excluded

1,029

with on-record reasons

Merkle root

0x4c8769e947a1de555325155d88d233b8b04f9d6901ab6d49c5463f95a2a962a9

Run it

unzip airdrop-kit-1.0.2.zip && cd airdrop-kit
npm install
npm test                 # full test suite
npm start                # local operator console (http://localhost:4321)
npm run airdrop -- --help   # the CLI

# reproduce the Merkle root from the bundled data:
node --import tsx scripts/verify-all.ts examples/morylen-campaign