Architecture
Pingify combines smart contracts, decentralised storage, a messaging layer, client applications, and some lightweight lambda functions to provide all digital identity and interaction for physical items.
Smart contracts form the core logic and data storage on the Polygon Network for secure interactions, independent of outside failure and low gas fees.
Applications, consisting of a mobile app for end users, and web app for user interacting with NFT sharable URLs provide the full interface required to interact with Pingify NFTs.
Communication and chat functionality is delivered over Push Protocol (formerly EPNS), a fully encrypted Wallet to Wallet encrypted communication network.
Push notifications are linked using a single lambda function that utilises encrypted on-chain data to derive the users firebase id and delivery device notifications.
📄️ Smart Contracts
Pingify smart contracts are abstracted out into their own domains and responsibilities, you have the following:
📄️ Mobile App
The Pingify Mobile App acts as an interface to interact with Pingify NFTs, tags, and chat with users who scan your tag, directly to their device browser. All data fetched for the core functionality is fetched on the Polygon Blockchain. You could essentially continue running the application and services if Pingify ceased to exist, you could just connect your own RPC and it would continue to communicate with the range of smart contracts that contain the core functionality.
📄️ NFC Tags
The mobile device acts as a writing devices for the physical Pingify tags. As encryption keys are derived from the owner, the owner needs to set the tags as the app walks them through the process. This adds another step to the setup but with the added advantage of security and re-usability.
📄️ Web App
The web app serves the sole purpose of displaying an NFT via the sharable link and delivering a chat interface with the owner via Push Protocol. It is simplistic in nature and can be moved to web3 delivery in the future as web3 access becomes more universally supported (notable example: brave browser).
📄️ Messaging
Communication happens on the Pingify App and Pingify Web App, as a person scan a tag they reach the web app with the NFTs decryption key in the URL.
📄️ Push Notifications
The push notification layer of Pingify is one of the most minimalistic, it consists of one lambda function that validates a notification from the Pingify Web App and pushes them to the owners device using a two way encrypted device notification id.