Personalized eCommerce powered by ZKP, implementing a novel Proof-of-Purchase system based on Polygon ID
This project combines zk-proofs using Polygon ID and a browser extension frontend to generate personalized experiences for eCommerce consumers.
On the frontend, there are actually two components:
Whenever a purchase is made on an eCommerce store with the plugin installed, the ShopConnect API issues a Polygon ID Verifiable Credential as Proof-of-Purchase to the consumer's wallet.
The consumer can view all of this in their ShopConnect extension. This then allows them to qualify for any other deals, be it collaborative business promotions, or businesses wanting to target customers who have a certain shopping profile based on their purchase history.
When a deal is found, the consumer can apply it through the extension before checkout. The extension prompts them to apply (where the extension is actually generating the zero-knowledge proof of the Verifiable Credential through Polygon ID in the backend. This way, the consumer gets to keep their data privacy while still being able to qualify for personalized deals.
So we believe that zero-knowledge proofs and web3 allow for truly multiplayer, collaborative, and personalized e-commerce.
The project is mostly built in Typescript. In the technical architecture, there are 5 main components:
Repository: https://github.com/shopconnectorg/chrome-extension
ShopConnect Plugin Is a JS script installed on every store. This lets the extension know that this particular eCommerce store is ShopConnect-enabled, and serves as the communication point between extension and backend.
ShopConnect API This backend server exposes endpoints that connect the extension, backend, and stores together. All requests to issue new Verifiable Credentials are made through the API, and requests to verify credentials in a user's wallet are also made through the API. ShopConnect operates an Issuer Node on the backend, allowing it to issue VCs whenever a purchase is made.
Polygon ID The Iden3 State V2 Smart Contracts have been deployed on multiple chains, including Scroll Sepolia, Mantle Testnet and Polygon zkEVM testnet (although zkEVM testnet is pending a fix by the zkEVM team before the deployment can be fully functional). We've also deployed on our Issuer Node to issue Verifiable Credentials with a custom eCommerce schema.
Store Mockup Built with nextJS, tailwind
Repository: https://github.com/shopconnectorg/shopconnect
DISCLAIMER - Scope of implementation:
Even though we wanted to achieve the full flow, including verifications, and that we built all the components in order to achieve it, our best efforts didn't match the time required for it, so for that reason we have partially simulated how it would actually work.
We have created the architecture of the real-world implementation, with two APIs, an e-commerce store, and a browser extension. We have achieved bidirectional communication between the browser extension and the backend, and partially implemented the required Polygon ID actions on the backend.
On the demo, however, the applied promotions are fetched from the APIs, but the application of promotions (or verification of VCs), as well as the emission of the proof of purchase, are simulated. The components were indeed built and developed, but we didn't manage to achieve full integration with testing due to time limitations.
Technical architecture details and flowchart: https://github.com/shopconnectorg/
Presentation Slides linked here: https://www.canva.com/design/DAFxrK9bQxU/Qdv7QyP7a_RwDAR9vZZqDQ/edit?utm_content=DAFxrK9bQxU&utm_campaign=designshare&utm_medium=link2&utm_source=sharebutton