Let’s say you launched an NFT project on the OpenSea contract. You want to migrate the NFTs to your own contract that you deploy. There are two primary strategies for going about this:
- Deploy a new contract which allows token holders to burn [destroy] the original NFT. This mints them a new proxy NFT which has the same tokenURI metadata but which is part of this new contract. No going back.
- Deploy a new contract which allows token holders to lock [in escrow] the original NFT inside of the contract. This mints them a new proxy NFT which has the same tokenURI metadata and this new proxy NFT can be burned at any time to release, from escrow, its corresponding original NFT.
While option 1 is tempting, some collectors may determine that burning their NFT for a new one may change its value. Could go up, could go down. Collectors may decide not to burn (migrate) with the thought that it would be better for the value of their NFT. After all, there is no two-way peg. There is no going back.
Option 2 has a true two-way asset peg so the value of migrated NFTs will always equal the value of unmigrated NFTs. That is because they quite literally are the same asset. They can be redeemed for one another , using contract methods, at any time by the current owner. Infinite times. The expectation is that nobody would ever NEED to migrate back. But they COULD. Which preserves the value of the asset via the peg.
Ill make the decision easy for you: Do you want to permanently fracture your collections (option 1) or do you want to maintain it as one flowy mesh of tokens (option 2).
I could talk more about how you actually write the contract, but just dm me or whatever. Here is an example: https://github.com/admazzola/OSSS_wrapper