Every NFT creation is done in two steps, first - uploading associated metadata (this could be any file e.g. a picture) into storage, second - minting a token that goes into creators wallet on blockchain. First step requires a very important property - content addressability, this is ensured by IPFS: every file gets a unique content ID. The main purpose of the marketplace smart contract is to ensure a one to one link between a token in users wallet and that content ID. NFT marketplace app also provides user ability to list NFTs for sale or auction and bundling them up, ensuring privacy of content ID links for not listed NFTs.