Midnight PreprodCompact v0.23

Privacy-preservinginsight marketplace

Creators sell signals with cryptographic proof. Buyers verify on-chain. Nobody sees the content except the two parties. Built on Midnight's selective disclosure — the chain confirms the trade without ever seeing what was traded.

Explore
3ZK Circuits
13Tests Passing
50Preprod Users
Contract5c35a52355...ad80db3e

The chain verifies the trade.
It never sees the content.

Every signal is proven authentic without revealing the insight. This is the primitive that Midnight enables and no transparent chain can replicate.

Public Ledger

Visible to everyone

Content HashAnyone can verify
0x3f8a...b12d
PriceListed publicly
50 tNIGHT
Buyer CountVisible on-chain
3 purchases
Creator IdentityCommitment, not wallet
ZK-derived
Active StatusState on ledger
True
Private Witness

Never touches the chain

Signal ContentOnly creator and buyer
Encrypted
Creator WalletBehind ZK identity
Untraceable
Buyer IdentityNot on-chain
Shielded
Decryption KeyNever leaves device
Local witness
Purchase LinkNo graph
Not recorded

Every action is a
ZK circuit call

01

Create Signal

Creator hashes the insight inside a ZK circuit. The content hash is disclosed to the public ledger. The raw content stays in the private witness.

02

Purchase Access

Buyer pays tNIGHT via receiveUnshielded. The transaction is publicly visible but no buyer identity is stored on-chain. The signal stays private between the two parties.

03

Off-chain Delivery

Creator sends the signal content off-chain through any channel — Discord, email, encrypted DM. The chain holds the proof, not the payload.

04

Verify Authenticity

Buyer hashes the received content and compares it to the on-chain contentHash. A match proves authenticity. A mismatch is cryptographic proof of fraud.

On-chain, verifiable,
open source

nightsignals.compact
export circuit createSignal(price: Uint<64>, content: Bytes<32>): [] {
  const sk = localSecretKey();
  const creator = ownerCommitment(sk);
  const contentHash = persistentHash([pad(32, "ns:content:"), content]);
  signals.insert(nextId.read(), SignalInfo {
    creator: disclose(creator), price: disclose(price),
    contentHash: disclose(contentHash), active: disclose(true),
    buyerCount: disclose(0 as Uint<64>),
  });
}
NetworkMidnight Preprod
LanguageCompact v0.23
Circuits3 Circuits
Tests13/13 Tests
LicenseMIT License
Address5c35a52355de...ad80db3e

Verified by the chain,
validated by users

13Tests

Contract verification, circuit integrity, and key validation — all passing on every push.

50Users

Verifiable preprod wallet addresses with on-chain activity on the nightsignals contract.

3Circuits

createSignal for listing, purchaseSignal for buying, deactivateSignal for lifecycle management.

4.3Rating

Average user satisfaction across 50 structured feedback responses from real testers.

“Anyone can claim a 90% win rate. There's no cryptographic proof. NightSignals changes that — immutable content hashes on-chain make creator reputation verifiable, not claimed.”

Trade with proof,
not trust.

Connect your Lace wallet to create and purchase signals on Midnight Preprod. Every transaction is a ZK circuit call — verifiable, private, and immutable.

GitHub