How to list NFTs on own marketplace like Opensea, Rarible, etc

In the Opensea clone tutorial video - to list an NFT it was transferred from the user address to the marketplace contract address - WHICH IS NOT RIGHT!

In reality, the user still owns the NFT but it is listed on the marketplace for a certain price and someone can decide to buy it for the decided price.

My question:
In solidity is the marketplace contract being given permission to transfer the NFT from the seller to the buyer or what?

Thanks in advance to anyone that helps : )

I think that it is how a marketplace works. You give it the permission to transfer the nft or you thransfer it to it. And this way when a buyer wants to buy the nft then the marketplace contract can make that sell automatically.


Hope you’re doing well!
cool that helps!