project screenshot 1
project screenshot 2
project screenshot 3
project screenshot 4
project screenshot 5

Smart Coupons

Wallet Relationship Management within - Smart Contract-powered Marketing Campaigns

Smart Coupons

Created At

ETHSanFrancisco 2022

Winner of


🥇 Unlock — Best Use


✨ Push Protocol — Runner Up


✨ Worldcoin — Honorable Mention

Project Description

This project is a frontend + plugin into the Salesforce (SFDC) ecosystem to manage Web3-based marketing campaigns to enable an on-ramp for web2 companies to engage their communities within their existing marketing toolset. Our frontend is a sample implementation of how a client (in this case Adidas) would implement the solution. Within their existing web2 channels, the client would offer gamified incentives for users to connect their wallet details. After connecting their wallet, the users would be able to complete additional data enrichment challenges to earn Web3-based rewards. These rewards would be generated from SFDC directly based on specified campaign goals. Once the wallet data is within Salesforce, we enrich the database with on-chain information, tied to the individual lead profile created for the user. This enables a more robust view of the customer, with the ability to create insights and make more informed decisions about campaign targeting.

How it's Made

This project leverages React+Python for the frontend and backend of the demo page, and SFDC-specific code (Apex) and Lambda (Node.js) for the onchain engagement. We use etherjs for handling the user wallet connection, while leveraging WorldCoin for proof of personhood. After the user has connected their wallet, they can opt-in to our Push messaging channel which is deployed on Polygon. All of these details are transmitted to SFDC for processing through a Python backend. Then within Salesforce, we leverage several types of automation to enrich user data for our dashboards. We use Covalent for synchronous enrichment, i.e. we fetch additional user information as soon as a new user is added to our database. Dune is used for asynchronous enrichment, e.g. we join our user table with a top token holder table of our genesis metaverse NFT collection. Then there is a separate flow that calls lambda to evaluate if a lead has completed a given goal and submits the transaction for the rewards based on those matches. Lambda is leveraging web3js, Unlock protocol, and our own erc20 contract factory to generate and issue reward NFTs/Tokens.

background image mobile

Join the mailing list

Get the latest news and updates