Protocol Documentation

How Zarklink works and how to use it

Zarklink is a trustless, privacy-preserving cross-chain bridge between Zcash and Starknet. It lets you move ZEC value across chains by creating a wrapped token called wZEC on Starknet.

Issue (ZEC → wZEC)
Lock ZEC on Zcash, mint equivalent wZEC on Starknet. Use wZEC in Starknet DeFi.
Redeem (wZEC → ZEC)
Burn wZEC on Starknet, unlock ZEC on Zcash. Get your ZEC back privately.

Key Properties

  • Trustless: No central authority. Vaults are economically bonded with collateral.
  • Privacy-Preserving: Transfer amounts hidden via zk-SNARKs + splitting strategy.
  • Censorship-Resistant: Anyone can become a vault by posting collateral.
  • Fraud-Provable: Challenge mechanism with on-chain zk-SNARK verification.

Based on the ZCLAIM framework (Sanchez et al., 2022).

Prerequisites

  • A Starknet wallet (e.g. Argent X or Braavos) connected to Sepolia testnet
  • STRK tokens for gas fees (use a Sepolia faucet)
  • At least one vault must be registered and funded in the pool

Issue ZEC → wZEC

1Go to the Bridge page
2Connect your Starknet wallet
3Make sure Issue tab is selected
4Enter an amount (e.g. 0.5 ZEC)
5Click Issue wZEC. Watch the 3-step process complete automatically.
6Your wZEC balance updates in the balance card at the top.

Redeem wZEC → ZEC

1On the Bridge page, switch to the Redeem tab
2Ensure you have wZEC in your connected wallet from a previous Issue
3Click Max to fill your full wZEC balance, or enter a custom amount
4Click Redeem ZEC. The 2-step process completes automatically.
5Your wZEC balance decreases. On mainnet, you'd receive ZEC in your Zcash wallet.

Important Notes

  • The vault daemon handles Steps 2-3 of Issue and Step 2 of Redeem automatically.
  • The relayer must be running with finalized blocks for the bridge to work.
  • This is running on Starknet Sepolia testnet — no real ZEC is involved.
  • The relayer must be running with finalized blocks for the bridge to work.