my project is split in half at the moment. The old system with working monero payments relies on people trusting me with primary address and view-key and that data is stored in a database bound to the persons npub until they update or delete it. When someone tips the profile they're basically drafting a secret event post to the receiver. You can include whatever you want in that secret p2p event. When you tip the profile you can include a message, if you tip a post it includes it as a quote and attached is the amount and who sent it, payment must be detected in for the secret p2p event to actually be sent to the receiver.
The newer system which isn't working because i'm learning how to make it work gets rid of the backend server database and has everything work with a bot. When you save your view only wallet data instead of being put in a central server it giftwraps the event like a contract between the bot and user, no one else can see it and theres no central server, its being transmitted over nostr in giftwrapping. Then basically the same process as the first.
In both cases I have the view-keys and can technically see all incoming transactions to the wallets and know whose receiving wallet is which npub but who sent it? no idea, did they leave a message? no idea, did they tip a specific post? no idea.