How it works · Try it

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.

Commands to paste These run in a sandbox: a disposable Linux machine on Beam, started for you, with the vintage command, the signed event registry and our demo files (demo/) pre-installed. It can reach only the Zcash data servers and our API. It closes after 15 minutes and keeps nothing: no logs, no history. Your own machine runs nothing and downloads nothing.

01Coins from before the hack

A stranger's transaction from 29 September, the day before Bitget's stolen coins entered Ironwood.

  1. vintage verify d3252057…41e4 --before bitget-2026-09
    PASS its coins were already in the pool
  2. vintage age d3252057…41e4
    DATED in the pool by block 3,499,995, 29 September

02Coins from after the hack

Another stranger's transaction, from 1 October. A FAIL only means no proof of age: it flags nothing.

  1. vintage verify 5c24a1c2…8d53 --before bitget-2026-09
    FAIL its coins can't be dated before the hack
  2. vintage age 5c24a1c2…8d53
    DATED in the pool by block 3,501,995, after the hack

03One payment, both sides of an event

Our Vintage payment, and coins that arrived after our staged event.

  1. vintage verify da9017e0…e3a7 --before vintage-demo-2026-10
    PASS it predates our staged event
  2. vintage verify da9017e0…e3a7 --before bitget-2026-09
    FAIL the hack came first
  3. vintage verify a4c7622f…c143 --before vintage-demo-2026-10
    FAIL these coins arrived after the event

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).

  1. vintage link verify demo/mainnet-link-bundle.json --before vintage-demo-2026-10
    PASS both inputs came from the Vintage payment
  2. vintage link verify demo/mainnet-zk-link.json --before vintage-demo-2026-10
    ZK LINK PASS two proofs, no viewing key
  3. vintage --network test link verify demo/testnet-zk-link.json --before 4562500
    ZK LINK PASS our testnet run

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.

  1. vintage sample --blocks 3
    txids real transactions from the last 3 blocks

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.

  1. GET /verify
    curl -s 'https://api.usevintage.site/verify/d3252057…41e4?before=bitget-2026-09'
    PASS
  2. GET /age
    curl -s https://api.usevintage.site/age/5c24a1c2…8d53
    DATED
  3. GET /events
    curl -s https://api.usevintage.site/events
    the registry
  4. GET /stats
    curl -s https://api.usevintage.site/stats
    daily counts
  5. POST /verify-link
    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)}"
    PASS
  6. POST /verify-zk-link
    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)}"
    PASS
Sandbox · vintage

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.

Paste with your usual shortcut or a right-click. Prefer your own machine? Every command works there too: install the command line.