Skip to content

salazarsebas/PrivacyKeys-NFT

Repository files navigation

🔐 PrivacyKeys NFT

Zero-Knowledge Encrypted Secrets for Developers
Secure your environment variables and API keys using Noir circuits on Aztec. Share secrets privately, prove access cryptographically — and never worry about leaking a .env again.


🚀 What is PrivacyKeys NFT?

PrivacyKeys NFT is a secret-sharing tool built for modern developers and open-source teams. It lets you encrypt any secret (like .env keys or tokens) into a private NFT, using Noir zero-knowledge circuits and deployed on the Aztec privacy layer.

Only wallets you authorize can read the message.
No servers. No plain-text sharing. Just provable privacy.


🎯 Use Cases

  • 🔐 Share API keys with contractors securely.
  • ⚙️ Inject secrets into CI/CD pipelines without exposing them.
  • 👥 Onboard open-source contributors without .env leaks.
  • 🧪 Protect ephemeral keys used in temporary dev/test environments.

🧠 How It Works

  1. ✍️ You write a secret (like SUPABASE_KEY=...)
  2. 🔁 Noir ZK circuit encrypts it privately.
  3. 🧾 A PrivacyKeys NFT is minted with the ciphertext.
  4. 👛 You authorize specific wallet addresses to decrypt.
  5. ✅ Only those wallets can view the original secret, provably.

All encryption and access validation happens on-chain and client-side.
No leaks. No compromises.


📦 Installation

Coming soon as an SDK and CLI.

npm install @privacykeys/sdk
# or
bun add @privacykeys/sdk

✨ Live Demo (Try it Now)

Coming soon on privacykeys.xyz

Interactive UI with:

  • Secret input 🔐
  • Wallet authorization 👛
  • Real Noir ZK circuit preview 🧠
  • NFT mint confirmation 🎉

📄 Example

import { encryptSecret, mintPrivacyNFT } from '@privacykeys/sdk'

const secret = "STRIPE_SECRET_KEY=sk_test_12345"
const wallets = ["0xabc123...", "0xdef456..."]

const encrypted = await encryptSecret(secret, wallets)
await mintPrivacyNFT({ ciphertext: encrypted, accessList: wallets })

🛡️ The SDK ensures the secret is ZK-encrypted using Noir before minting.


🧪 GitHub Action Use Case

- name: Retrieve Secret from PrivacyKeys
  uses: privacykeys/github-action@v1
  with:
    nft-id: "123"
    private-key: ${{ secrets.PRIVATEKEY_WALLET }}

🧭 Documentation

Explore the full interactive docs on the website:

  • 🔍 ZK architecture explained visually
  • 🎮 Live playground: simulate writing + minting secrets
  • 🤖 CI/CD setup guides
  • 📚 Noir circuit internals for developers

All docs are embedded, interactive, and continuously updated.


💰 Pricing (Like OneTimeSecret)

Plan Features Price
Free 1 secret, 1 wallet, 24h expiry $0
Pro Multiple secrets, custom expiry, up to 10 wallets $9/mo
Team GitHub integration, CI/CD, audit trails, 100+ wallets $29/mo

🔐 Why PrivacyKeys NFT?

✅ Based on Aztec ✅ Built using Noir ✅ Wallet-gated ZK access ✅ Serverless + censorship-resistant ✅ For devs, by devs


📣 Join the Movement


“Your code is open. Your secrets shouldn't be.”

🔐 PrivacyKeys NFT – Secrets on the blockchain. Private by default.

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published