Skip to content

Confidential settlement
meets tokenized finance.

Z-Relay is the shielded liquidity and viewing-key attestation layer for Robinhood Chain. Move tokenized equities and USDG into native Zcash Orchard pools, prove solvency on-chain, and disclose selectively — in three lines of code.

0k
gas per proof
0ms
block time
$0
backend cost
zrelay@robinhood-chain
$
nitro preconforchardhalo 2 → groth16
Orchard shielded pool
FROST threshold Schnorr
Halo 2 → Groth16
Arbitrum Orbit Nitro
Viewing-key attestations
Tokenized equities
zebrad · lightwalletd
Selective disclosure
Client-side proving
Orchard shielded pool
FROST threshold Schnorr
Halo 2 → Groth16
Arbitrum Orbit Nitro
Viewing-key attestations
Tokenized equities
zebrad · lightwalletd
Selective disclosure
Client-side proving
Why Z-Relay

Privacy that survives
a compliance review.

All four layers
Architecture

Three layers, one call.

A shield request crosses an EVM rollup, a threshold-signing ring and a shielded pool — and returns as a 180k-gas proof. Every layer below is a page.

Shield → value leaves the EVM and lands as an Orchard note
← Attest a compressed proof returns to the on-chain verifier
Developer surface

Three lines.
No cryptography.

The SDK hides FROST rounds, Orchard note construction and recursive proof compression behind ordinary async functions. Everything runs client-side — there is no Z-Relay server in the path.

client.shield()EVM → Orchard, atomically
client.attest()viewing key → Groth16 proof
client.track()live cross-chain status
shield.ts
import { ZRelayClient } from "@zrelay/sdk";
import { ethers } from "ethers";

const provider = new ethers.JsonRpcProvider("https://rpc.robinhoodchain.com");
const signer = new ethers.Wallet(process.env.PRIVATE_KEY!, provider);

const client = new ZRelayClient({
  chainId: 4663,            // Robinhood Chain mainnet
  signer,
});

// One call: swap, escrow, threshold-sign, mint into Orchard.
const settlement = await client.shield({
  token: "0xUSDG_ADDRESS",
  amount: ethers.parseUnits("2500", 6),
  recipientZAddress: "u1xyz...orchard_unified_address",
  memo: "Quarterly stock-token yield",
});

console.log(settlement.zcashTxId);   // 9f2a...c41d
console.log(settlement.status);      // "SETTLED"
Differentiation

Why the alternatives fall short.

Mixers give you privacy that gets your deposit frozen. Bridges give you settlement with no privacy at all.

DimensionEVM mixersCross-chain bridgesZ-Relay
Privacy engineTornado-style pools — tainted by defaultNone; transparent EVM and UTXO stateNative Zcash Orchard, Halo 2 proofs
Regulatory postureDeposits routinely blacklistedBalances fully public to competitorsViewing keys: disclose one fact, on demand
Integration costHand-rolled circom / snarkjs circuitsSlippage, gas and multi-wallet plumbingOne npm package, three function calls
Chain focusEthereum L1, prohibitive gasGeneralist L2s, thin RWA volumeRobinhood Chain: stock tokens, 100ms blocks
Guides

What is
live?

Every guide
Token

$ZRL launches fair,
or not at all.

One billion tokens, minted once, placed entirely on a bonding curve. No pre-mine, no private sale, no team allocation. At 4.2 ETH the market graduates to a Uniswap v4 pool whose liquidity is locked permanently.

0B
Total supply
0%
On the curve
0 ETH
Graduation
0%
Liquidity locked
FAQ

The questions that matter.

Talk to the team
No. A mixer breaks the link between deposits and withdrawals inside one transparent chain, which is exactly the pattern compliance teams flag. Z-Relay moves value into Zcash's Orchard pool, where privacy is a property of the protocol itself — and pairs it with viewing-key disclosure, so a holder can prove a specific fact to a specific party without revealing anything else.
Build on Z-Relay

Your users' balances are nobody else's business.

Shielded settlement, on-chain attestation and selective disclosure — on Robinhood Chain, with no backend to run and no key to hand over.

Overview