Search code examples
dnssubdomainsoliditysmartcontractsrsk

How to use RNS domains with non-fungible token standards? (such as ERC721)


I have registered a .rsk domain using RNS, and am wondering if I can transfer ownership of it to other accounts, like an NFT.

Is this possible with domains and subdomains? If so how?


Solution

  • All the domains that are created with the new FIFS Registrar, or migrated using migrate from auction are ERC721 compatible.

    (Note that the above only applies to domains; subdomains are not tokenised, and not ERC721 compatible.)

    The following are the relevant lines of code within the RNS smart contracts:

    FIFSRegistrar --> (inherit) FIFSRegistrarBase --> (property) NodeOwner --> (inherit) ERC721 --> (property) tokenId


    Details

    (inherit) FIFSRegistrarBase in FIFSRegistrar.sol#L9

    contract FIFSRegistrar is FIFSRegistrarBase, PricedContract {
    

    (property) NodeOwner in FIFSRegistrarBase.sol#L27

        NodeOwner nodeOwner;
    

    (inherit) ERC721 in NodeOwner.sol#L9

    contract NodeOwner is ERC721, Ownable, AbstractNodeOwner {
    

    (property) tokenId in NodeOwner.sol#L113

            uint256 tokenId = uint256(label);