Fusion of ERC-721 and ERC-20

Author’s information
name: John

twitter: https://twitter.com/john_s_block

Simple Summary
Implementing mutual conversion between ERC-20 and ERC-721

Abstract
This method can be converted between NFTs and tokens, which can be used as tokens for uniswap trading or as NFTs for trading in markets such as Blur.

Motivation
The ecosystem of ERC-721 is thriving, with each NFT capable of carrying different types of content, such as images, music, web pages, etc. But each NFT is a whole, and as its value increases, there will be issues with high unit prices and reduced liquidity.

Most NFT fragmentation implementations on the market involve splitting NFTs through transfer, which actually increases security risks and implementation logic.

Split ERC-721 into ERC-20, and its contract can be either ERC-721 or ERC-20, so that Uniswap can add pools and conduct transactions.

Rationale
Both ERC-721 and ERC-20 have mature EIP protocols and practices, which only need to be inherited here. The core is how to integrate.

Specification (non-mandatory)
Here, translation can also be achieved through proxy contracts, and can even be integrated into one contract. Of course, there will also be better implementation methods, but here is just a way of thinking


    ///  Note: Implement in ERC-721
    interface ERC721Translate {
        
        function setTranslateAddress(address _erc20Address) external;

        function getTranslateAddress() external;

        function translateToToken(uint256 _tokenId) external;
    }

    ///  Note: Implement in ERC-20
    interface ERC20Translate {
        function setTranslateAddress(address _erc721Address) external;

        function getTranslateAddress() external view returns (address);

        function translateToNFT(uint256 _value) external;
    }

Open-source commitment
I commits to open-sourcing the NIP and grants permission for developers within the Mint blockchain ecosystem to build protocols and applications based on this NIP.