Zcash Refund Helper: check a ZEC deposit stuck in the NEAR Omni bridge, and who can refund it (read-only, no keys)

Hi all, I’m Anirudh from Hyderabad. New here.

Earlier this month I came across a Bitcoin deposit stuck in the NEAR Omni bridge. Someone had requested its refund on 19 Aug, and then nothing happened, for two months. The bridge does have refund steps, they’re just buried in the contract. So I wrote a small tool that digs them out.

You paste the deposit’s tx hash (ZEC or BTC) and it tells you where the coins are right now and whether a refund is possible. Since 16 Oct that comes down to one thing. If the deposit named a refund address, anyone can run the bridge’s own refund after a 2-day lock, and the coins can only go back to that address. If it didn’t, the bridge now locks the refund for 100 years, and the tool says so plainly instead of showing steps that can’t work.

It never asks for a key, seed or viewing key, and it never signs anything. It also can’t do anything about 1Click compliance holds. That’s a separate system and only NEAR can act on those.

That August deposit (0.1 BTC) went back to the address it came from on 15 Oct, following those steps. It’s on chain, the “Try a real one” link on the page opens it.

A couple of honest limits: it queries public services from your browser, so they see your IP (Tor or a VPN if you care). And some deposits need the operator to act. When that’s the case it says so, it doesn’t guess.

To be upfront: I’m independent, not part of NEAR, Omni or any Zcash org. My small company, Cryppit, also runs a NEAR Intents swap checker called Where’s My Swap.

Along the way I ended up filing a few Zcash issues: TEX in Keystone (#2313, they said next release), a TEX memo bug in Unstoppable (#7295, fixed in #7300), and unified address handling in zebra (#11803, confirmed this week) and zcash-test-vectors (#135). Zingo also merged two small fixes of mine (#1663, #1665).

Code (MIT): GitHub - cryppit/zec-refund-helper: Keyless, read-only checker for BTC and ZEC deposits stuck in the NEAR Omni bridge. Prints the bridge's own refund steps. · GitHub
Try it: Zcash Refund Helper

If you’ve got ZEC stuck in the bridge, give it a go and tell me where it’s wrong.