Can an NFT own other NFTs?
As soon as you have a blockchain address, you can own NFTs. All you need to do is use a contract that allows you to mint one, or have someone send or sell you one of their NFTs.
But can an NFT own other NFTs?
Use case 1: NFT basket
If an NFT could own other NFTs, it could serve as an NFT basket, that you could send / sell / swap / lend, just as easily as a single NFT. Think bundled properties.
Use case 2: gaming
NFT have a good user case in gaming. Special items (swords, armor, relics, ...) that you use in-game, can easily be taken out of the game to exchange them or put them for sale in NFT market places.
Like Splinterlands, a collectible card game, where each card is an NFT.
Now imagine you have a character in a game, or a deck of cards in Splinterlands. You can sell each item or card one by one, but what if you could sell the whole character (and all the items he owns), or an entire deck as a single NFT?
So, is it possible?
If you want to answer that question, you need to look at the ERC-721: Non-Fungible Token standard.
We can read there that NFTs are defined by two things:
- the smart contract address of the NFT collection
- the id of the token
But the owner of a Non-Fungible Token is only defind by a blockchain address, which can be a user wallet address (this is often called an EOA for Externaly Owned Account) or the address of a smart contract.
So, as you need two numbers to define a token, but as the owner of a token is only defined by one number (an address is a number in hexadecimal format), then, you cannot specify a single NFT as the owner of another NFT.
So no, an NFT cannot properly own another NFT.
If you've read Turn an ownable smart contract into an NFT, you can probably figure out a work around: for an NFT to be able to own other NFTs, it simply needs to have its own blockchain address.
Here is the set up. We'll take an concrete example to make thing clearer. Imagine I want to develop a magic collectible card game where you build decks of cards. Players need to mint a deck token, that will hold some cards. So I need to create a deck NFT collection. But each time a new player mints a new empty deck, the NFT collection smart contract creates a new smart contract, and associate the address of that smart contract to the new deck NFT.
Now we can create a card NFT collection smart contract, and each newly minted card NFT, can be owned by a deck NFT.
That way, you can trade cards, but you can also trade a whole deck of cards as a single NFT.
If you don't like the collectible magic card use case, just think about a vault, storing any kind of NFT (or ERC-20 token for that matter), that you can then send, swap, sell like any NFT.
With this very small hack, you can have fully ERC-721 standard compliant NFTs, owning other NFTs.
I'd love to have the time right now to write this NFT collection of smart contracts smart contract, and the corresponding smart contract NFT, but for now, it is already too late and I'm already too tired.