# Dopps: NFT doppelgängers
## Overview
NFTs represent ownership of somnething, membership in a community, proof of participation or attendance, etc. All of these properties make them a powerful vector around which to build communication—among owners of NFTs, among NFT communities, or as a way to gate communication.
But wallet security is a concern, and users may not feel comfortable using the same wallet to communicate as the one that holds their valuable assets.
Here we describe a way to mint new NFTs which are copies of an original, which can be placed in less secure wallets, where they can act as stand-ins for the real thing—opening opportunities for communication and other use cases, but without compromising on security.
## Problem
### NFT pros/cons:
- They are proofs of ownership of an asset (the NFT itself)
- They’re associated with a specific wallet
- They can be used as credentials, membership into communities
- They can be valuable
- Which also means they can be stolen
- And concern should be given to the security of the wallet they’re contained in
Considering all of this, it would be worthwhile to use NFTs as a vector for communication—in both identifying owners and communicating with them, as well as consenting to communication with fellow owners.
But communication (or other non-trading use cases) via the wallet that owns these NFTs presents a unique security challenge: that you must sign in with that specific wallet to use the assets.
## Background
### High value NFTs in harder-to-use wallets
In [this ApeCoin forum post](https://forum.apecoin.com/t/ape-p2p-messaging-platform/9266/9?u=mg), discussing solutions for wallet-to-wallet messaging, one member who has built ApeClub.io said about their social offering:
> Our messaging won’t be wallet to wallet because it’s just easier to use it across different devices without connecting your precious Ape holding vault.
In XMTP we’ve been looking for ways for NFT owners to communicate with one another, but the above comment points out a major concern that would be brought by anyone that owns a valuable NFT: that they wouldn’t want to directly connect their wallet to XMTP to enable messaging.
To make matters worse, XMTP relies on wallet signatures to authenticate the user when they try to sign in, which means that if someone keeps their NFTs in a hardware wallet (like me), or in a smart contract wallet, using XMTP is either very difficult or impossible. And even if I was feeling enterprising enough to always sign in with my hardware wallet, it presents an additional security risk in that I’m de-sensitizing myself for wallet signatures because I’d be asked to do it just so many times with XMTP.
So how would XMTP simply and securely enable communication within communities such as Yuga’s collections, Nouns, Proof Collective and Moonbirds, etc.? The short answer is without addressing the very real security concerns, we can't. While other solutions such as account abstraction, delegation, etc. are possible, they are all more complicated, would take longer to ship, and would ask more of users than something as simple as dopps.
### The many wallet problem, and soul-bound tokens
Another issue in using XMTP as a vector for communication, centered around NFTs, is that one might have a number of wallets where they custody them—such as myself. I have at least 4 wallets where different NFTs live. And when I use XMTP I’m only signing in with a subset of them unfortunately.
Additionally, soulbound tokens cannot be moved from the wallet they’re minted into (by design).
There should be a lighter weight way of pulling these tokens together into one place, as a focal point for communication.
## Solution
Enabling wallets to mint doppelgängers (dopps) of the NFTs they own, into any other wallet, such that the dopps can be used as proof of ownership.
### How dopps work
- An NFT owner goes to `dopp.xyz` and enters a source wallet (the one that owns their NFTs)
- The interface presents their NFTs which haven’t had dopps minted from them
- The user can batch mint dopps of their NFTs to any wallet of their choice
- Dopps use the images and metadata from the original, and may add some additional context relevant to the dopp itself
- While dopps can be placed into any wallet, the owner of the original NFT can always recall them to the same wallet that contains the original
- This is why there’s no wallet connection needed to the original NFT wallet
- Though it would make sense to indicate dopps that were minted **by** the owning wallet, perhaps as “verified”
- Should a wallet that contains dopps ever become compromised, and the dopps stolen, they can all be recalled easily to the wallet of the original owner
### Why should it be XMTP Labs that does it?
- We can promote dopps as a safe way to enable wallet-to-wallet chat between NFT owners
- Set up XMTP in `dopp.chat` as a home for communication among dopp controllers
- We can make a big play to go after NFT communities and present them with both a verified and secure means of communication AND a valuable new security method
- Would open the door to `nouns.chat`, `apecoin.chat`, etc. without requiring people to sign in with their valuable wallets
- In web3 it’s powerful to contribute something valuable to the broader community, as a means of viral marketing of sorts
- Uniswap built `web3-react`, a React library for building web3 apps—4.5k stars
- WalletConnect built `web3modal` and is a ridiculously easy way to connect websites to wallets—3.7k stars on GitHub—massively popular
- OpenZepplin built a bunch of the most popular NFT contract code that is in use today—and it’s not their core business
### What it means for the broader NFT community
XMTP is contributing a public good to the NFT world. Dopps could be used safely in so many other contexts other than communication.
Specifically, since dopps are already NFTs, it would be trivial for other apps to support them as stand-ins for original NFTs. This would be much simpler than apps building in support for other solutions such as Tokenproof, signatures, zk-proofs, etc.
The viral factor is that dopps are already ready as a vector for communication—through XMTP.
## Branding
So why “dopp”?
- Doppelgänger means “a biologically unrelated look-alike, or a double, of a living person” and has been used in literature since the 1600s
- Its modern context is simply used to describe any person who physically resembles another person.
- In the context of NFTs a “dopp” would be a copy of the original, to be used in place of it
- “dNFT” could be used as a term to describe the object that a dopp represents—which could stand for “doppelgänger NFT” or “duplicate NFT”
- “Dopp” as a term also resembles “dapp” or “decentralized app” so there’s some nice industry-alliteration
- “Dopp” is easy to pronounce, is a four letter word, and would be unique enough on its own to self-declare what it is without additional explanation
- A "dopp kit" is a bag for holding toiletries when traveling, keeping them safe and secure so they don't leak out while in transit
- “Drop” is also close to “dopp” which could set up for some fun marketing opportunities, e.g. a “Dopp drop”
- Lends itself to becoming a noun “dopped NFT”
## Misc notes
- `dopp.xyz` **is available**
- Many other `dopp.` SLDs are available, such as `dopp.chat`
- `dopp.eth` available
- `.dopp` on HNS not available, but not meaningfully used