💻Tech Stack
The lifecycle of an Attestation
Creating the Attesation
onchain social -> offchain AI -> onchain attestation
Social Liveness and Distribution Channels (Web3 and Web2)
Farcaster
@proofof bot: https://github.com/enso-collective/proofof (private for now)
Uses Neynar API - https://neynar.com/
Lens Protocol
@proofof bot: https://github.com/enso-collective/proofof (private for now)
Phaver Account Linkage Partnership
Telegram/Whatsapp/LinkedIn messaging can be easily added next
Example user post:
image content: <group picture in Linea merch at SheFi Summit> text: "@proofof vibes at SheFi Summit with LineaBuild #LineaFriends"
⬇️ Output to LLM: User image, user text (with brand quest tag), user metadata
LLM Analysis and Automation
Uses OpenAI GPT4-Vision API
The goal is to deduce whether the combination of user image + user description + brand quest is a valid quest completion
Uses https://github.com/openai/openai-node with the gpt-4-vision-preview model
Based on the social post's brand tag, we route the query to the specific brand prompt
The AI returns "VALID" or "NOT VALID"
We comment back on the user's post with the result, and if VALID, proceed to EAS minting step.
Note: current limit is 2000 Image requests per day, 75 per minute
Can be 5x and 20x quickly as we increase usage
Future AI stack
Open-source image inference is catching up to GPT4-V
LLaVa 1.6 was released on Jan 31st. Can try it here: https://llava-vl.github.io/ (high downtime)
Decentralized LLM Image Inference is not viable in the short/medium term, especially when compared to future "offchain" AI advancements.
https://github.com/ritual-net is a contender for text LLM inference and we're talking with them
⬇️ Output to our EAS Server: AI response, user social data, user image and IPFS storage hash, quest type, other metadata
Onchain Attestation
Ethereum Attestation Service
After OpenAI validation, the data is sent to our EAS server where the Attestation data is put into an onchain transaction on Linea and/or Base.
Node.js SDK - https://github.com/ethereum-attestation-service/eas-sdk
Deployed Contracts - https://github.com/ethereum-attestation-service/eas-contracts
Indexer - https://github.com/ethereum-attestation-service/eas-indexing-service
While EAS has there own API, it is rate-limited so we must deploy our own indexers for both Linea and Base chains.
Dune - Used for both data query layer and as a backup UI dashboard
https://dune.com/queries/3410454 – Query for the Farcaster proofof-frame
After the Attestation is Created
User Dashboard
Our frontend dashboard (https://github.com/enso-collective/web) contains:
A Privy wallet auth step allowing Browser Wallets, WalletConnect, Twitter, Farcaster, Capsule, and Phaver connections
Users can connect other socials, including Twitter, Apple, Google
After auth, the Home Screen will have 3 states based on before, during, or after the SheFi Summit:
Before: Users will be encouraged to connect their wallets and socials prior to the event.
During:
Sponsor Cards with Quest Descriptions -> takes you to the Brand Screen
Leaderboard of users completing the most Quests
Link to User Screen
After (becomes the long-term standard screen for Proof Of):
Priority is to show User information, and encourage streaks and working towards building long-term Reputation with Brands they want to support and build Attestations with
Partner Brand cards will be displayed
List of all brands
Business Dashboard
For EthDenver, all data is onchain and public, so the business dashboard inherits from the User dashboard described above.
We will create custom views for businesses so they can see at a glance how many Users are getting their Attestations, and dive deeper into user profiles. https://github.com/enso-collective/web
We will partner with WalletConnect (Web3Inbox), Guild, and Bello for insights into your active users.
Before the Attestation is Created
Each type of quest we do has 2 manual steps:
Modifying our GPT4V system prompt for high accuracy in analyzing typical images submitted with the quest. Measured in false negatives and false positives.
Adding the quest to the frontend dashboard
Last updated