Shieldz

How it works

Shieldz is a thin routing + notification layer over two existing systems: Zcash's shielded pool and MAYAChain's cross-chain swap protocol.

The on-chain mechanic

When a customer pays an invoice, their Zcash wallet broadcasts a shielded transaction with two things:

  1. A transparent output sending ZEC to MAYAChain's inbound vault (the same t1… for every Shieldz invoice).
  2. A zero-value Sapling note carrying an encrypted memo addressed to MAYAChain's unified address. The memo encodes:
    =:<to_asset>:<to_address>:<limit>:leo:75
    Where to_asset is the merchant's chosen USDC contract, to_address is their settlement address, limit is the slippage-protected minimum output, and 75 is the affiliate bps (Shieldz's take).

MAYAChain's observers see the ZEC arrive, decrypt the memo via their unified address's incoming-viewing key, and execute the swap. USDC is delivered directly to the merchant's address. The buyer's identity stays inside the shielded pool.

What Shieldz adds

What Shieldz is NOT

Failure modes

When the swap can't be completed (slippage trips, MAYAChain pool is halted, no liquidity at this size), MAYAChain refunds the ZEC to the buyer's original t-address — which is why we require it at checkout time. The buyer is whole; the merchant gets nothing; the invoice transitions to failed and a webhook fires.

Stack

Buyer walletAny shielded Zcash wallet (the Shieldz wallet integrates deep-links; Zashi/Nighthawk work via ZIP-321 QR) Hosted checkoutServer-rendered HTML on shieldz.cash, no JS framework AggregatorLeoKit (open-source cross-chain swap aggregator) Swap protocolMAYAChain (continuous liquidity pools, shielded-memo decoder) Merchant dashboardTelegram Mini App at merchant.shieldz.cash