CipherPunks - SecretNFT use case / publicity opportunity to bring in ETH NFT users


NFT concept with the main goal of bringing over ETH NFT community and exposing them to some of the Unique Selling points of SecretNFTs

  1. Crypto Punk would be purchased and held in an escrow / bridge account (this could be done via smart contract or manually held by Tor)

  2. x number of CipherPunks would be created on SecretNFTs (maybe 100 or 1000) with varying degrees of random ski mask, as well as some ciphered info on them. Think of each CipherPunk as a lootbox, which one (or more) of which contain real life loot of a cryptopunk.

  3. Users can buy CipherPunks on secretnfts, with an “unmask” date built in for 1 week later

  4. Users can discuss the cipher / easter egg (similar to call of duty community easter egg deciphering)

  5. As community figures out the cipher clues, more cipherpunks will be more desirable, worth more, however floor price of cipher punks should be cryptopunk floor / x number of cipher punks. E.g. if floor is 40k usd for crypto punk and 1000 cipher punks exist, then each cipher punk should be worth $40

  6. On unmask date, the contract will allow users to unmask their cipher punk, revealing if they hold the true cryptopunk (think like the scooby doo unmasking)

  7. tor/secret network will announce winner and send to winner


  1. Will cipherpunks be for sale on secretNFTs only, or could we release mirrors on opensea?
  2. Will you burn your secretNFT after unmasking or keep it as your secret NFT, or will it bridge into ETH as its own nft (maybe with ski mask), but 1 is unmasked to punk
  3. How to plan the cipher, how difficult is this, is it crackable?


  1. Foundation will need to buy 1 Crypto Punk
  2. Will need to hire front end / UI for the buy, sell, unmask process
  3. Will need to hire backend from secret community to work on SecretNFT
  4. Will possibly need to hire backend solidity dev to create bridge / unmasking contract on ETH side
  5. x number of CipherPunks strategically donated to verified punk owners to help spread awareness (if 1000 cipher punks exist, possibly airdrop 50 to active punk owners who are active on twitter / discord)

This is really creative! Its like a lottery that shows off the uniqueness of secretNFTs. I’d definitely buy a cipherpunk if it was at the right price and gave me the chance to win big!

This would also be a very good opportunity for marketing if we are able to get some press and present it the right way.

Great idea!

I do like the idea but for me it is a bit unclear how we would facilitate secret network capability.

  • Can I as an owner unmask after a certain time-frame?
  • I assume Cipher is public, is there any connection between cipher and the info which one is the ‘actual’ punk? It seems like this in regards to (5)

I am currently thinking about ways how we could integrate the encrypted data even more to showcase secret network capabilities.

One thing to keep in mind is that if you plan to not allow anyone to unmask their CipherPunk to see if it contains the CryptoPunk until some set time, you will need to implement some sort of time oracle.

While a contract can check the time against the current block info, anyone could run a fork offline, change the blockheight/time and do a tx on their single node that is running in the “future” to see whether they have the winner, so you would need a mechanism that prevents them from being able to glean that info if on a fork.

This can be implemented a number of ways, including…The unmasking call could query some time oracle contract that gets updated by some centralized, authenticated source. The unmasking process could include a request to unmask, that needs to be confirmed by some operator that monitors for requests, and then signs off on it with their address…

I wonder though if using a centralized oracle for timing defeats some of the purpose, you can do unlockable content within rarible or opensea , using their centralized servers… so maybe we should avoid the delay and let it be a free for all, just set floor price a bit above (punk floor price / x number of cipher punks) and let people buy them up immediately.

Thanks for the feedback on a possible exploit on this running someone’s own chain

I guess I don’t really view the centralization as a deal breaker because there are already points of centralization in the whole idea…You have one person buying the cyptopunk, one person sending it to escrow, a centralized bridge operator that will release the cryptopunk whenever the right cipherpunk is sent to the bridge, etc…Adding another centralized component to a list of several doesn’t seem to violate anything in my opinion.

And in that light, if you are already fully accepting that the idea is just going to have points of centralization, you could make the ability to unmask as simple as having a handle msg that only an admin address can use that let’s everyone unmask their cipherpunk after he executes the msg. That would also prevent someone from being able to do it on a fork.

You could even turn that part into a game if you want. Create clues that if anyone solves it will provide the mnemonic for the address that has the ability to enable unmasking. Then anyone who solves the puzzle can add the mnemonic to any wallet and unlock the unmask ability for everyone

To simplify things, I think a 2 phase CipherPunk roll out could go like this:

Phase 1 - Simple Sealed Bid of 1 CryptoPunk, hidden within x CipherPunks

1 cipher punk holds the private key to an ETH wallet that holds a cryptopunk
can market the eth address to prove it exists
cipher floor price should be cryptopunk floor price (possibly slightly less based off users needing to bridge, but any savvy investor will see this as a buy opportunity)

Showcases the sealed bid aspect as well as private metadata (literally putting in the private key for an eth wallet)

Phase 2 - Lootbox type game - 1000 CipherPunks

Private key of wallet is distributed via mnemonic over 12 cipher punks
clues in the metadata as community works together to solve the puzzle, buy new cipherpunks to decipher the mnemonic

The mnemonic will be the key to a metamask wallet which holds a cryptopunk

Because phase 1 was succesful, people will trust this and try to game it, creating buzz as people try to solve it

Talked to can about the idea to just put the private key of an eth wallet in the metadata , then no bridge operator needed, the winning user will just get access to the eth wallet holding the eth nft.

If you put the mnemonic in the private metadata, you’ll want to make sure that a sale can only be finalized by the seller performing some HandleMsg (i.e., if using an auction model, only the seller can close the auction).

Otherwise, someone can do an offline attack where they buy every cipherpunk on their own fork (doesn’t matter how much they spend because those tokens are not actually being spent on the real chain), and look at the private metadata of every one of them since they own all the cipherpunks on the forked chain, and just use the private key to claim the cryptopunk without even buying one real cipherpunk.

You can look at this discussion for more detail Product Idea - Secret Market

Ok so this is basically like “accept offer” option from the seller? Does this mean that, in general, secret metadata will not be able to exist in secretNFTs on open auctions (that don’t require a seller action)?

If you are talking about sealed-bid auctions, it isn’t really “accept offer” because the seller wouldn’t know what the offer is. It is just “close auction” which accepts whatever the highest bid is.

Every auction has to be closed to finalize a sale. For the OTC auction, either the seller can do it, or after the auction ending time has passed anyone can do it. If you plan on putting something in the metadata that has value that resides outside of the state of the SN blockchain, you should only allow the seller to close the auction to prevent off-chain attacks

I’m not sure if that “value residing off-chain” is clear…

Basically if you are selling information that has value, someone acquires that value from learning that information (the value has no dependence on the SN blockchain). But when you are selling that information for tokens, those tokens only have value if it has been transferred on the chain that everyone agrees represents the state of the network. So you only want to release that information if there is confirmation/assurance that you have/will receive the chain-dependent value

bored ape yacht club did a great giveaway with encrypted clues, called Frankie’s Lost Wallet.

1 Like

I would like to see there be no automatic reveal, maybe it could go on until it’s finally the right one opened. Like unopened Pokémon card packs. People want to hold it unopened because if they open it and it doesn’t have that rare Charizard it actually loses value. Could be funny if a bunch of people open up their packs and its not in there. Now less are left unopened (which may be tracked somehow?) with the real one still left. Each time your probability of holding it goes up and your expected value. Now you can sell or open. I dont think the game has to end at a specific point in time. The mystery could go on for years. Would just have to make it so even the hodlr doesnt know until they pay the gas to unwrap it. To me this could be enjoyable and create some interesting reasons to buy/sell/trade but not even open up the item for a long time to come.

Another puzzle / hunt for keys (wont be legit unless its done on secretNFTS) but you can see the narrative is there.

Screen Shot 2021-05-06 at 7.26.29 PM