I want to get all the onchain data available on the Ethereum blockchain about an NFT from its contract address and tokenID. Like its metadata, the current owners, its last price, etc. 
How can I do this from scratch without using any API
I need this as I'm trying to build a product of which this is a component, and cannot use any third party API for this.