# Anon Media NFT Drops
## Summary
A system that allows members of a group to pseudonymously create NFT collections for media content (i.e. image, video, audio) in order to publicly share cryptographically authenticated and timestamped media without revealing their address while proving that they are a member of the group.
## Motivation
There are a number of scenarios where an individual may want to publicly share media content without completely revealing their identity:
- A citizen journalist that wants to share on-the-ground images, videos and audio in an environment that is hostile towards news reporting
- Examples:
- [@whyyoutouzhele](https://twitter.com/whyyoutouzhele) on Twitter shared many images and videos from their followers during the [recent Shanghai protests](https://www.technologyreview.com/2022/12/02/1064075/teacher-li-twitter-china-protests)
- IranWire reports that it shares media submitted by citizen journalists that are on-the-ground in [this video](https://www.youtube.com/watch?v=1meE0CY54CM)
- An employee of a company that wants to whistleblow by publicly sharing leaked images, videos and audio content
- A DAO that wants to publish creative works by its members under the DAO's brand without having public perception of individual members of the DAO influence reception of the work
- A member of a DAO that wants to comment on a proposal [1]
- The comment itself can be a NFT and someone that wants to endorse the comment can mint/collect the NFT
- For this use case, it may be important for others to be able to anonymously mint/collect the NFT. In some cases, just the fact that someone made the comment might be enough be others to reveal their true beliefs by publicly endorsing the comment. However, in other cases, there may need to be momentum around the comment to be established through anonymous endorsements until a "tipping point" is reached when it is "safe" to make public endorsements
- This can be viewed as an instantiation of the commitment pool mechanism described by Vitalik in [this blog post](https://vitalik.ca/general/2022/06/12/nonfin.html) without the requirement to reveal your position since it is up to the individual if they want to reveal their position (i.e. if they were the one that created the comment NFT, if they were the one that made an endorsement by minting/collecting the NFT)
There could be a few benefits of publicly sharing media content by creating a NFT collection:
- Creating a NFT for a piece of media ensures that the media is publicly timestamped so the public knows when it was published and the reputation of the address based group membership. While the original address would be unknown initially, there could be an option to reveal the address later on at the user's discretion (i.e. in order to claim mint fees)
- NFT mint fees and/or royalties can be collected and used to compensate individuals or the group if the public values the NFT. An example is if a citizen journalist shares a video clip that is influential, collectors mint the NFT as memorabilia and the journalist later on claims the mint fees (which would also reveal their address). In some circumstances, the minting of the NFT can also be thought of as donation in the form of an atomic swap of currency for a memorabilia/"thank you note"
- The existence of multiple NFT marketplaces that index all NFTs means that there are numerous opportunities to surface the media content even outside of the primary app allowing media to be easily "picked up" by indexing infrastructure as soon as the NFT is created
## (Rough) Workflow
- Define a group membership predicate X
- The individual generates a zkSNARK membership proof for the predicate similar to the mechanism that is used in [heyanoun](https://github.com/personaelabs/heyanoun)
- The individual generates the metadata for the NFT collection including an IPFS hash for the content
- The proof and the metadata are submitted in a tx to a contract (via a tx relayer network?)
- The contract verifies the proof and if the proof is valid deploys a new NFT contract for the collection using the provided metadata
- An app can render all NFTs created in this manner with an indication that the NFT was created by a member of the group with a publicly verifiable timestamp
- Anyone can mint one of the NFTs for a fee
Note: I believe the displayed owner of the NFTs created in this way would be the contract in most NFT marketplaces.
**Mint Fee Withdrawls**
If there is desire to compensate group members with fees from NFT mints, then the impact on pseudonymity will need to be considered since the act of withdrawing value will reveal an address. An option could be to give individuals the option of revealing an address during withdrawal at their discretion by proving that they were the one that submitted the metadata for a NFT collection. Another option that does not directly compensate the individuals that created NFTs could be to collect fees in a contract that are then used to fund the infrastructure required to run the system and/or distribute value evenly to all members of the group.
[1] Based on a conversation with @lsankar