Try it in a sandbox.
Start a sandbox, copy a command from the list, paste it into the terminal. The vintage command checks real Zcash transactions against the public chain, and gets the same answers as the API. Nothing to install, nothing downloaded to your machine.
01Coins from before the hack
A stranger's transaction from 29 September, the day before Bitget's stolen coins entered Ironwood.
- PASS its coins were already in the pool
vintage verify d3252057…41e4 --before bitget-2026-09 - DATED in the pool by block 3,499,995, 29 September
vintage age d3252057…41e4
02Coins from after the hack
Another stranger's transaction, from 1 October. A FAIL only means no proof of age: it flags nothing.
- FAIL its coins can't be dated before the hack
vintage verify 5c24a1c2…8d53 --before bitget-2026-09 - DATED in the pool by block 3,501,995, after the hack
vintage age 5c24a1c2…8d53
03One payment, both sides of an event
Our Vintage payment, and coins that arrived after our staged event.
- PASS it predates our staged event
vintage verify da9017e0…e3a7 --before vintage-demo-2026-10 - FAIL the hack came first
vintage verify da9017e0…e3a7 --before bitget-2026-09 - FAIL these coins arrived after the event
vintage verify a4c7622f…c143 --before vintage-demo-2026-10
04Coins received after an event
The link back to the payment that funded them: with a viewing key, then with zero-knowledge proofs and no key (experimental).
- PASS both inputs came from the Vintage payment
vintage link verify demo/mainnet-link-bundle.json --before vintage-demo-2026-10 - ZK LINK PASS two proofs, no viewing key
vintage link verify demo/mainnet-zk-link.json --before vintage-demo-2026-10 - ZK LINK PASS our testnet run
vintage --network test link verify demo/testnet-zk-link.json --before 4562500
05Bring your own transaction
Vintage checks any Zcash mainnet transaction, against any event in the registry or any block height. Paste a txid from a block explorer, or list real ones with vintage sample.
- txids real transactions from the last 3 blocks
vintage sample --blocks 3
APIWant to test the API too?
Paste these into the same terminal; they call our public API. The last two send demo files that are already in the sandbox.
- GET /verifyPASS
curl -s 'https://api.usevintage.site/verify/d3252057…41e4?before=bitget-2026-09' - GET /ageDATED
curl -s https://api.usevintage.site/age/5c24a1c2…8d53 - GET /eventsthe registry
curl -s https://api.usevintage.site/events - GET /statsdaily counts
curl -s https://api.usevintage.site/stats - POST /verify-linkPASS
curl -s https://api.usevintage.site/verify-link -H 'content-type: application/json' -d "{\"before\":\"vintage-demo-2026-10\",\"bundle\":$(cat demo/mainnet-link-bundle.json)}" - POST /verify-zk-linkPASS
curl -s https://api.usevintage.site/verify-zk-link -H 'content-type: application/json' -d "{\"before\":\"vintage-demo-2026-10\",\"file\":$(cat demo/mainnet-zk-link.json)}"
A terminal, ready in seconds.
Start a sandbox to get a shell with vintage and the demo files. It's yours for up to 15 minutes; end it any time with End sandbox.
- Asking Beam for a fresh machine
- Booting Ubuntu 24.04
- Loading vintage, the registry and demo files
- Locking the network to zec.rocks and our API
- Opening the terminal
Usually about 7 seconds. Each sandbox is new: nobody else has used it.
Paste with your usual shortcut or a right-click. Prefer your own machine? Every command works there too: install the command line.