Skip to content

ZK PrivacyPrivate Stablecoin Ecosystem

MiCA-compliant EMT stablecoins with zero-knowledge privacy

The Ecosystem

🏦 EMT Stablecoins

Fully-backed digital euros and dollars with issuer controls (freeze, blacklist, seize) for regulatory compliance.

🔒 Privacy Pool

Shield tokens to become private. Transfer without revealing sender, recipient, or amounts. Unshield to withdraw.

🔄 Private Swaps

Exchange zkUSD ↔ zkEUR ↔ zkPLN atomically within the pool. Market makers provide liquidity.

📱 Apps

Portfolio - Full wallet for managing private balances
Shield Portal - Simple deposit interface
Scan - Privacy-aware block explorer

Quick Example

typescript
import { PrivacyClient, createProver, setGlobalProver, DEPLOYMENTS } from '@zkprivacy/sdk';

// Initialize prover
const prover = await createProver({
  transferCircuit: '/circuits/transfer.json',
  unshieldCircuit: '/circuits/unshield.json',
});
setGlobalProver(prover);

// Create client
const client = new PrivacyClient({
  rpcUrl: DEPLOYMENTS.remote.rpcUrl,
  poolAddress: DEPLOYMENTS.remote.pool,
});

// Connect with wallet
await client.connect({ mode: 'linked', walletClient });

// Sync and use
await client.sync();
console.log('Balance:', client.getBalance());

// Private transfer
await client.transfer({
  recipient: 'zks1...',
  amount: parseUnits('100', 6),  // 100 zkUSD
  tokenId: BigInt(DEPLOYMENTS.remote.tokens.zkUSD),
});

// Private swap
await client.swap({
  fromToken: 'zkUSD',
  toToken: 'zkEUR',
  amount: parseUnits('100', 6),
});

SDK Options

ImportSizeUse Case
@zkprivacy/sdk/shield~150KBDeposit widgets, payment integrations
@zkprivacy/sdk~2MBFull wallets with transfers & swaps

Live Apps

AppURLPurpose
Portfolioportfolio.zkprivacy.devFull privacy wallet
Shield Portalshield.zkprivacy.devSimple deposits
Scanscan.zkprivacy.devBlock explorer
Devtoolsdevtools.zkprivacy.devDeveloper testing

Released under the MIT License.