Portal Foundation

ZK PORTAL CHAT

Zero-knowledge authenticated messaging with on-chain storage and end-to-end encryption.
ZK Portal Chat Interface

ZK Portal Chat

Portal Chat

Launch

What It Is

Private messaging protocol powered by ZK-SNARKs. Every message is cryptographically authenticated through zero-knowledge proofs, encrypted end-to-end, and stored permanently on-chain. No accounts, no servers, no metadata leaks.


The Problem

Private communication on the internet relies on centralized infrastructure with:

  • Server-side access to message content and metadata
  • Single points of failure and censorship
  • Identity systems controlled by corporations
  • No cryptographic guarantees of sender authenticity

Existing encrypted messengers still require trust in a central operator. Blockchain messaging attempts exist but expose sender addresses and lack cryptographic privacy guarantees.


The Solution

Wallet-native messaging with zero-knowledge authentication:

  • ZK-SNARK proofs
    • Cryptographically prove identity without exposing keys
  • On-chain storage
    • Messages persist on Ethereum and Base, censorship-resistant
  • Stealth addresses
    • Recipient identity obscured on-chain
  • Wallet-derived keys
    • No passwords, no seed phrases to manage

How It Works

  1. Connect wallet (Ethereum or Base)
  2. Derive viewing key (one-time wallet signature)
  3. Enter recipient wallet address
  4. Compose and send message
  5. ZK-SNARK proof generated in browser
  6. Encrypted message posted on-chain with proof verification

No account creation. No server registration. Viewing keys deterministically derived from wallet signature - same key on any device.


Technical Architecture

Zero-Knowledge Layer

  • Groth16 ZK-SNARKs for viewing key ownership proofs
  • Poseidon hashing for ZK-optimized commitments and nullifiers
  • Client-side proof generation via snarkjs in browser
  • On-chain verification through deployed Verifier contracts

ZK Circuit

  • Proves ownership of viewing key without revealing it
  • Generates nullifiers to prevent replay attacks
  • Creates commitments binding message to sender
  • All computation happens client-side - keys never transmitted

Encryption Layer

  • End-to-end encrypted message content
  • EIP-5564 stealth addresses for recipient privacy
  • Only intended recipient can decrypt

Storage Layer

  • Encrypted messages stored on Ethereum and Base
  • ZKNoteRegistry smart contract with proof verification
  • Permanent, immutable message history
  • No server infrastructure required

Key Management

  • Viewing keys derived from wallet signatures
  • Deterministic derivation - same key on any device with your wallet
  • Keys never transmitted or stored remotely
  • Sign once, decrypt forever

Features

FeatureDescription
ZK-SNARK AuthenticationEvery message authenticated via zero-knowledge proof
Stealth RecipientsOn-chain addresses unlinkable to recipient identity
Browser Proof GenerationGroth16 proofs generated entirely client-side
Wallet-Native IdentityNo usernames, no passwords - your wallet is your identity
On-Chain PersistenceMessages survive server failures, domain seizures, shutdowns
Multi-Chain SupportLive on Ethereum and Base

Security Model

ZK Portal Chat is a client application. It does not operate servers, store messages, or custody keys.

What the system does NOT do:

  • Does not store viewing keys or private keys
  • Does not maintain message databases
  • Does not relay messages through servers
  • Does not collect metadata or analytics
  • Does not require trust in any operator

What happens:

  • All encryption/decryption happens locally in browser
  • ZK-SNARK proofs generated client-side using snarkjs
  • Messages posted directly to smart contract with proof
  • On-chain Verifier confirms proof validity
  • Only recipients with correct viewing key can decrypt

Privacy Guarantees

PropertyGuarantee
Message ContentEncrypted - unreadable on-chain
Sender IdentityProven via ZK-SNARK - address not linked to message
Recipient IdentityStealth address - only recipient knows it's for them
Key CustodyViewing keys never leave device

Deployed Contracts

NetworkContract
BaseViewingKeyOwnershipVerifier
BaseZKNoteRegistry
EthereumZKNoteRegistry
EthereumViewingKeyOwnershipVerifier

Development Status

MilestoneTargetStatus
Core encrypted messagingQ4 2025Live
Viewing key derivationQ4 2025Live
On-chain message storageQ4 2025Live
ZK-SNARK proof generation (Groth16)Q1 2026Live
ZKNoteRegistry + Verifier contractsQ1 2026Live
Multi-chain (Ethereum + Base)Q1 2026Live
Stealth address integrationQ1 2026Live
Group messagingQ2 2026Planned
Encrypted attachmentsQ2 2026Planned
ENS/Basename resolutionQ2 2026Planned
Mobile applicationQ3 2026Planned