How can I create an NFT associated to a program account with metadata?

I’m looking to store metadata in a Solana program account, then use the metadata program account as the NFT’s authority. This would let me reverse-lookup to see information on an NFT.

Is it possible to use a memo in a TX instead? I have been experimenting on devnet with the SPL memo program however have had no success, when I deploy the program it creates 40+ transaction none with a memo. Explorer | Solana

I can create an NFT.

My end goal is to link some text and a IPFS hash within it, I am a new developer to Solana with little rust programming knowledge, is there any alternative methods I am missing?

Any help or guidance would be much appreciated.