Grant Application - Turnstile Migration Integration Kit

Hello everyone,

I’m Maheswaran Velmurugan, known as soloking1412. I work as an independent developer and security researcher: 20+ confirmed High/Medium findings across EVM protocols on Sherlock, Code4rena, Cantina, and Immunefi, and I’ve completed grants from Arbitrum Foundation (Stylus gas benchmarking toolkit, both milestones accepted) and Stacks Foundation (SatoshiYield). I also contributed a fuzz-testing crate to Bitcoin Development Kit (BDK), which is the closest prior art to what I’m proposing here.

GitHub: soloking1412 (Maheswaran Velmurugan) · GitHub

GitHub Proposal

Why this, why now

Ironwood introduces a turnstile mechanism so anyone can verify Zcash’s circulating supply by running a node. That part is solid, it’s been reviewed and formally verified at the consensus level.

What hasn’t been addressed is the layer above it: every wallet, exchange, and SDK integrating migration support has to write its own client-side code to construct and track these transactions. Shielded Labs already flagged that some of these teams might not have enough time to prepare. That’s exactly the kind of gap where bugs slip through, not because the protocol is wrong, but because each integration is built independently under time pressure.

This proposal is not about fuzzing Zebra or the Ironwood circuit itself. The approved Zebra Coverage-Guided Fuzzing grant and the Batch-vs-Single Verification soundness fuzzing proposal already cover that layer, and I don’t want to duplicate either. This sits one layer up: a Rust crate and CLI that wallet/exchange/SDK teams can run against their own migration code to catch value leaks, stuck funds, double-migration, and turnstile-cap handling bugs before shipping. Plus a plain-language checklist for teams that don’t want to touch Rust directly.

Why me

I don’t just write about security, I ship into production codebases. I currently have open and merged contributions to paritytech/polkadot-sdk, on pallet-revive’s Ethereum JSON-RPC layer (the pallet that gives Polkadot parachains EVM compatibility), fixing exactly the kind of edge-case bugs this grant is about: null values, empty filter lists, boundary block tags, and spec-compliance gaps that don’t show up until something hits a corner case.

Full list here: Pull requests · paritytech/polkadot-sdk · GitHub

On the Zcash-adjacent side:

soloking1412 (Maheswaran Velmurugan) · GitHub has the full history if you want to check any of it yourself before deciding.

I’m doing this solo, no team, so budget and scope are kept tight on purpose: $19,500 across a $4,000 startup advance and 3 milestones ($5,000 / $5,500 / $5,000), roughly 10 weeks.

Happy to answer anything, including if you think this overlaps with something I’ve missed or if the scope should be narrower or wider.

1 Like