Bringing the power of decentralised verifiable attestations to your testimonials. Ensuring every review is genuine and credible
In a world where product and services quality depend heavily on testimonials and reviews, the authenticity of these reviews can often be questionable. False testimonials can mislead consumers and damage the reputations of good businesses. Fake reviews can also be used to manipulate the market and create unfair competition. Whereas, genuine testimonials can help businesses grow and build trust with their customers. Currently all the testimonials found for any web2 / web3 product have to be taken at face value. There is no way to verify if the testimonial was added by a real user or a bot and even if it was added by a real user, there is no way to verify if the user really gave the testimonial or if it was added by the product owners itself twisting the words of the user. This is where Proof Of Testimonials comes in.
Proof of Testimonials allows users to add products they want reviewed. Users can also create their profiles, enhancing their credibility by linking their social media accounts and other platforms. All products and profiles are attested off-chain using SignX, which can be verified anytime outside the scope of the platform.
Proof of Testimonials also ensures bot resistance and safety against profile spoofing.
Bot Resistance: Every user profile must have a Threshold Gitcoin Passport Score to add a testimonial. This ensures that the user is real and not a bot. ( Note: The Threshold Gitcoin Passport Score can be set by the product owner and is currently set to 1 for the MVP demo. )
Profile Spoofing Detection: Each user profile SignX attestation is linked to the previous profile attestation, thus forming a chain of attestations. This helps the platform detect any recent changes or spoofing in profiles.
Proof of Testimonials also ensures that users who add testimonials are rewarded for quality contributions and penalized for fake testimonials. This is managed through the following mechanisms:
One-time Reward on Whitelist: Users are minted 1000 POT tokens when they achieve a Threshold Gitcoin Passport Score and are added to the whitelist.
Testimonial Addition Fee: Users must pay a flat fee of 100 POT to add a testimonial, preventing spamming of the platform with excessive testimonials.
Testimonial Reward: The testimonial owner is rewarded with 10 POT when their testimonial is upvoted by a whitelisted user, and similarly penalized with 10 POT when downvoted by a whitelisted user. All rewards and penalties are tracked in a reward pool, which can be claimed by the user once it reaches a minimum value of 50 POT (set for the MVP demo).
Currently, Proof of Testimonials allows users to add off-chain attestations on Arweave using SignX as most attestations involve large data volumes that are not feasible to store on-chain. Additionally, since SignX has not yet launched on Neon-Devnet, these attestations are selected by the Proof of Testimonials backend ( which will be a set of validator nodes in the future ), verified, and indexed on-chain for reward and punishment mechanics. As the validator nodes manage on-chain transactions, Neon EVM is used for the MVP demo, which offers fast processing and very low network fees.
Vite with React and TypeScript: We chose Vite for its fast build times and React for its robust ecosystem and component-based architecture.
Apollo Client: This GraphQL client was integrated for efficient data management and to interact with our GraphQL server
Rainbow Kit: This wallet connection kit simplified the process of connecting user wallets and interacting with the EVM chains.
SignX SDK: We used the SignX SDK for creating and indexing off-chain attestations.
Foundry: We utilized Foundry for development testing and deployment of our smart contracts
Solmate: This was chosen for creating reward ERC20 token contract, which helped in creating more efficient and gas-optimized contracts.
Node.js and Express: These were used to build a robust backend server capable of handling API requests efficiently.
GraphQL with Apollo Server: We adopted GraphQL for its ability to fetch complex data structures in a single request, significantly improving the efficiency of data retrieval. Apollo Server was used to set up an express GraphQL server that handles queries and mutations.
Viem and Gitcoin Passport: Viem was used for interacting with smart contract, and Gitcoin Passport was integrated to validate user identities and reduce spam by confirming real user participation.
This project relies heavily on off-chain @SignX attestations to build profiles, add products, testimonials and upvotes/ downvotes which provides an easy way to manage decentralised provable storage for the project.
SignX Schemas
All the on-chain logic related related to voting, whitelisting, rewarding and punishing users is taken care by micro transactions using @Neon-Evm devnet. since its quite fast and has very cheap network fee.
Contracts ( Neon Devnet )
The whitelisting criteria is determined using Gitcoin Passport score which prevents bot spamming.