{"signature": "0xb4d851e4c3435f711583ac012cc2cbd2fae26902e4a9cb87d2209d84e56334e155b89967321dacfd628a1c0120ad2f27e12ea945a73fa0c22c88f2235ba60f771b", "application": {"round": "0x3aA3C6cc0004b7366A12b8E4262015AF525531a9", "answers": [{"type": "short-answer", "answer": "We’re proposing to add GoodDollar’s Face Verification as a “stamp” inside Cubid, enabling a stronger trust signal within our identity framework while also expanding GoodDollar’s presence in the decentralized identity space. Cubid is a decentralized reputation protocol built to make human identity and trust legible across the internet — without compromising privacy or sovereignty. Within the Cubid Passport app users collect stamps—verifiable credentials tied to their wallet—that represent achievements, affiliations, or validations from trusted entities. Each stamp contributes to a user’s “humanity score”, a composite measure of reputation and trustworthiness online.", "hidden": true, "question": "Project Description: Briefly describe your project and how it enhances G$ utility or adoption", "questionId": 0}, {"type": "paragraph", "answer": "Already built functionalities\nStandard login with email\nCubid already supports WalletConnect and RainbowKit, and these methods will be used for connecting a GoodDollar-linked wallet.\nPersistent sessions. Cubid remembers which wallets a user has connected with. These two features combined mean that users don’t need to connect each time.\nStamps: Validating and storing user credentials using Oauth, NFTs, OpenID, etc.\nAssigning weights to each Stamp\nPrivacy-preserving, user-controlled credentials-sharing through open APIs.\n\nPhase 1: Add a Verified With GoodDollar Credential\nAs part of acquiring the Verified With GoodDollar stamp we will start by asking if the user already has a stamp. If they don’t then we guide them to the GoodDollar site and then come back to Cubid.\nIf they are verified, we’ll then ask the user to connect their external GoodDollar wallet.\nThen we will call the GoodDollar smart contract to check if a connected wallet has been face-verified.\nOnce validated, the Verified With GoodDollar stamp will be displayed on the user’s dashboard, and will be available for any third party dApp to request as part of the humanity score\n\nPhase 2: Embed the Face Verification Flow: \nIf the user responds that they are not yet verified with GoodDollar, then in this phase we will enable the face verification natively within Cubid, without having to leave the site.\nFirst we’ll ask the user to connect their external wallet. \nThen we’ll embed the newly released GoodDollar FaceVerification SDK directly into Cubid’s frontend.\nOnce verified, the Verified With GoodDollar stamp will be displayed on the user’s dashboard.", "hidden": true, "question": "Technical Implementation: Describe your approach and how it integrates with GoodDollar. For new builders, outline your implementation plan. ", "questionId": 1}, {"type": "paragraph", "answer": "Harry: Previously built \"Sign in with GoodDollar\" and other bounties for GoodDollar. Full stack engineer who also built the existing Cubid SDK.\nNoak: Previous Developer Evangelist with GoodDollar.", "hidden": true, "question": "Team Capability: Highlight your team's relevant experience and past delivery of similar projects, particularly in the Web3 space or with GoodDollar. Please add relevant links to members GitHub, Twitter, LinkedIn, etc as needed. ", "questionId": 2}, {"type": "paragraph", "answer": "Phase 1: Allow Cubid users to connect an external wallet and check if they’ve been face-verified via GoodDollar. If verified, they will be issued a “Verified with GoodDollar” stamp.\nPhase 2: Enable users to complete GoodDollar face verification directly within Cubid, leveraging the new FaceVerification SDK published by GoodDollar.\nOptional Phase 3: Allow Cubid-users to claim their daily GoodDollar from within the Cubid Passport interface.", "hidden": true, "question": "Roadmap & Milestones: Outline 3-5 key milestones with timeframes demonstrating how you'll deliver value to the GoodDollar ecosystem.", "questionId": 3}, {"type": "paragraph", "answer": "The “Verified with GoodDollar” stamp will be integrated into Cubid Passport, a decentralized reputation protocol where users build on-chain identity by collecting verifiable “stamps” tied to their activity, achievements, and affiliations. Our strategy to drive adoption and G$ utility includes the following:\n\n1. Incentivized Identity Building\nWe’ll promote the GoodDollar stamp as a key credential within Cubid’s identity graph—used to:\n\nIncrease a user’s humanity score\n\nUnlock access to DAO governance, gated communities, and impact-based apps\n\nEnhance Sybil resistance for users participating in web3 platforms\n\nThe more stamps a user has, the more valuable their Cubid Passport becomes—creating a natural incentive to complete GoodDollar face verification and earn the stamp.\n\n2. Embedded in Onboarding Flows\nFor new users creating a Cubid Passport, the G$ verification stamp will be featured as a recommended action in the onboarding checklist. This drives consistent visibility and encourages organic adoption early in the user journey.\n\n3. Cross-Ecosystem Integration\nWe’re actively integrating Cubid with other dApps and communities that can leverage the G$ stamp as a credential—for example:\n\nGated access to DeFi or governance tools\n\nReputation scoring for task or bounty platforms\n\nSybil protection in community voting\n\nThis encourages users from other apps to verify via GoodDollar in order to participate more fully.\n\n4. Composability with Future Use Cases\nAs Cubid expands, the G$ verification stamp can be used in new ways—such as:\n\nProof of uniqueness for identity-based rewards\n\nEligibility criteria for microgrants and public goods programs\n\nWeighting in governance based on verified identity\n\n5. Social Proof & Visibility\nPublic profiles in Cubid display user stamps by default. The GoodDollar verification stamp will be visually distinct and featured as a signal of real, verified identity—encouraging social proof and driving peer adoption.", "hidden": true, "question": "User Adoption Strategy: How will you attract users to your project and drive G$ adoption? Include specific strategies or metrics. You can find more details on the engagement rewards to support this at: https://engagement-rewards.vercel.app/ ", "questionId": 4}, {"type": "paragraph", "answer": "We have already completed Phase 1 and are currently testing it. Funding received up to an amount of $3k will be applied retroactively for this feature.\n\nPhase 2. Integration of FaceVerification SDK for in-app onboarding. Any excess funding will be applied towards this phase.", "hidden": true, "question": "Funding Allocation: How will you allocate the funding to maximize impact? Provide a simple breakdown of resource allocation. ", "questionId": 5}, {"type": "paragraph", "answer": "Benefits for GoodDollar\n- Positions GoodDollar as a recognized verification oracle in the decentralized identity space\n- Encourages more users to complete face verification, increasing usage of GoodDollar’s biometric tooling\n- Enables wallet connection and onboarding via Cubid’s existing integrations (WalletConnect, RainbowKit)\n- Provides exposure to new audiences, including developers and DAOs looking for trusted identity signals\n- Opens the door to leverage Cubid’s humanity score as an additional layer of proof-of-personhood validation.\n\nStrategic Synergy\n\nThis collaboration supports greater interoperability between trust systems. Cubid provides the infrastructure to represent and compose decentralized identity, while GoodDollar contributes a powerful biometric verification layer. Together, they help establish a more Sybil-resistant, human-first web3.\n\nThe most interesting use case for this integration lies in the opportunities it opens up for new and groundbreaking uses. For example:\n- Targeted UBI for users in a particular area by leveraging Cubid’s geogating capabilities based on device geolocation, phone number, passport, drivers license info, Discord/Telegram/Farcaster group memberships and more. GoodDollar could for example enable a targeted UBI campaign for a war-torn country or disaster-struck area.\n- Provision “bonus GoodDollars” to people who opt in to a stronger identity verification with Cubid\n- Use quadratic- or conviction-based voting power in the GoodDAO.\n- Enable the Daily Claim Button on any web2 website by leveraging Cubid’s non-custodial embedded wallet functionality (see separate grant application for more details).\n\nWhile specific user growth projections are not available at this stage, we expect significant interest from users looking to strengthen their Cubid profiles with verified identity signals. All stamps—including the Verified with GoodDollar stamp—contribute to Cubid’s broader humanity scoring system, which supports use cases like Sybil resistance, DAO participation, and access control across decentralized applications.", "hidden": true, "question": "Ecosystem Contribution: How does your project complement existing initiatives in the GoodDollar ecosystem rather than competing with them?", "questionId": 6}, {"type": "dropdown", "answer": "Yes", "hidden": true, "question": "Ethical Compliance: Confirm you have read and will comply with the ethical standards outlined in the eligibility criteria.", "questionId": 7}, {"type": "paragraph", "answer": "This is a part of three Cubid-related proposals. The other two include an SDK to implement GoodDollar on any website, and a revival of GoodMicroGrants.\n\nThanks for reading!", "hidden": true, "question": "Additional Info: Is there anything else critical for evaluating your project that wasn't covered in the questions above?", "questionId": 8}], "project": {"id": "0x0f6adc02deee2db99be93d3090c84390ef622d39835f4abd1cd9bdba30a64b98", "title": "GoodDollar Integration to Cubid Passport", "logoImg": "bafkreiegyt3vhirpxlukw3jv6s2htumqtbzievhoo7xavj62iudnuxkx2e", "metaPtr": {"pointer": "bafkreifjqggo5kfkugtpulnjmnxbsozvga4pdpjao5wpa7rb4gizhtqr3q", "protocol": "undefined"}, "website": "https://passport.cubid.me", "bannerImg": "bafkreia2ki5kewfo3fj3672g6wzqw7iahxrj53dp27tjpsdybs5pvhamoy", "createdAt": 1743454355997, "userGithub": "KazanderDad", "credentials": {"github": {"type": ["VerifiableCredential"], "proof": {"type": "EthereumEip712Signature2021", "created": "2025-03-31T21:28:32.357Z", "@context": "https://w3id.org/security/suites/eip712sig-2021/v1", "proofValue": "0x32634f33891b3c538f607ca6185ec9ebb88cd702592e442675481040d6f96425112d0ed65b7f0a3c9f653e83d9063a7ce7f15a7ac68eeaabd594a498c3b1fb341b", "eip712Domain": {"types": {"Proof": [{"name": "@context", "type": "string"}, {"name": "created", "type": "string"}, {"name": "proofPurpose", "type": "string"}, {"name": "type", "type": "string"}, {"name": "verificationMethod", "type": "string"}], "@context": [{"name": "nullifiers", "type": "NullifiersContext"}, {"name": "provider", "type": "string"}], "Document": [{"name": "@context", "type": "string[]"}, {"name": "credentialSubject", "type": "CredentialSubject"}, {"name": "expirationDate", "type": "string"}, {"name": "issuanceDate", "type": "string"}, {"name": "issuer", "type": "string"}, {"name": "proof", "type": "Proof"}, {"name": "type", "type": "string[]"}], "EIP712Domain": [{"name": "name", "type": "string"}], "CredentialSubject": [{"name": "@context", "type": "@context"}, {"name": "nullifiers", "type": "string[]"}, {"name": "id", "type": "string"}, {"name": "provider", "type": "string"}], "NullifiersContext": [{"name": "@container", "type": "string"}, {"name": "@type", "type": "string"}]}, "domain": {"name": "VerifiableCredential"}, "primaryType": "Document"}, "proofPurpose": "assertionMethod", "verificationMethod": "did:ethr:0xd6f8d6ca86aa01e551a311d670a0d1bd8577e5fb#controller"}, "issuer": "did:ethr:0xd6f8d6ca86aa01e551a311d670a0d1bd8577e5fb", "@context": ["https://www.w3.org/2018/credentials/v1", "https://w3id.org/vc/status-list/2021/v1"], "issuanceDate": "2025-03-31T21:28:32.357Z", "expirationDate": "2025-06-29T21:28:32.357Z", "credentialSubject": {"id": "did:pkh:eip155:1:0xE757B9475e8BDabfeF5bF6b7850dFd90971bf77F", "@context": {"provider": "https://schema.org/Text", "nullifiers": {"@type": "https://schema.org/Text", "@container": "@list"}}, "provider": "ClearTextGithubOrg#Cubid-Me#98373366", "nullifiers": ["v0.0.0:mpACiXZT3p7mEm88YAhD2fg5/ppfqlgN60K7tiMcYBU="]}}, "twitter": {"type": ["VerifiableCredential"], "proof": {"type": "EthereumEip712Signature2021", "created": "2025-03-31T20:30:11.232Z", "@context": "https://w3id.org/security/suites/eip712sig-2021/v1", "proofValue": "0x251d5c462d5f882e3fef81cca6d22e16a9a26281a820e73c3b6e93c7b0cfbafd355a68775142b0448460c1c653b23aaf927bfe66f1d91eec3d5ebe615256b84d1c", "eip712Domain": {"types": {"Proof": [{"name": "@context", "type": "string"}, {"name": "created", "type": "string"}, {"name": "proofPurpose", "type": "string"}, {"name": "type", "type": "string"}, {"name": "verificationMethod", "type": "string"}], "@context": [{"name": "nullifiers", "type": "NullifiersContext"}, {"name": "provider", "type": "string"}], "Document": [{"name": "@context", "type": "string[]"}, {"name": "credentialSubject", "type": "CredentialSubject"}, {"name": "expirationDate", "type": "string"}, {"name": "issuanceDate", "type": "string"}, {"name": "issuer", "type": "string"}, {"name": "proof", "type": "Proof"}, {"name": "type", "type": "string[]"}], "EIP712Domain": [{"name": "name", "type": "string"}], "CredentialSubject": [{"name": "@context", "type": "@context"}, {"name": "nullifiers", "type": "string[]"}, {"name": "id", "type": "string"}, {"name": "provider", "type": "string"}], "NullifiersContext": [{"name": "@container", "type": "string"}, {"name": "@type", "type": "string"}]}, "domain": {"name": "VerifiableCredential"}, "primaryType": "Document"}, "proofPurpose": "assertionMethod", "verificationMethod": "did:ethr:0xd6f8d6ca86aa01e551a311d670a0d1bd8577e5fb#controller"}, "issuer": "did:ethr:0xd6f8d6ca86aa01e551a311d670a0d1bd8577e5fb", "@context": ["https://www.w3.org/2018/credentials/v1", "https://w3id.org/vc/status-list/2021/v1"], "issuanceDate": "2025-03-31T20:30:11.232Z", "expirationDate": "2025-06-29T20:30:11.232Z", "credentialSubject": {"id": "did:pkh:eip155:1:0xE757B9475e8BDabfeF5bF6b7850dFd90971bf77F", "@context": {"provider": "https://schema.org/Text", "nullifiers": {"@type": "https://schema.org/Text", "@container": "@list"}}, "provider": "ClearTextTwitter#CubidProtocol", "nullifiers": ["v0.0.0:U10/hM58NK+yF/bwRmLfWpAPvUgBmW7jtwaCQu9QdqE="]}}}, "description": "\n# GoodDollar Verification “Stamp” Integration with Cubid\n\n## Introduction: What is Cubid?\n\n[**Cubid**](https://www.cubid.me/) is a decentralized reputation protocol built to make **human identity and trust legible across the internet** — without compromising privacy or sovereignty. Within the [**Cubid Passport app**](https://passport.cubid.me/) users collect **stamps**—verifiable credentials tied to their wallet—that represent achievements, affiliations, or validations from trusted entities. Each stamp contributes to a user’s **“humanity score”**, a composite measure of reputation and trustworthiness online.\n\nCubid is designed as a modular, composable layer that allows any app or protocol to query, display, or leverage identity signals for Sybil resistance, access control, governance, and more. Stamps can be social, professional, biometric, or tied to specific on-chain or off-chain actions.\n\nBy connecting different dimensions of identity in a user-owned graph, Cubid is building the **decentralized identity stack for both web2 and web3.**\n\n---\n\n## Proposal Overview\n\nWe’re proposing to add **GoodDollar’s Face Verification** as a **“stamp” inside Cubid**, enabling a stronger trust signal within our identity framework while also expanding GoodDollar’s presence in the decentralized identity space.\n\nThis project will be implemented in two phases:\n\n- **Phase 1**: Allow Cubid users to connect an external wallet and check if they’ve been face-verified via GoodDollar. If verified, they will be issued a **“Verified with GoodDollar”** stamp.  \n- **Phase 2**: Enable users to **complete GoodDollar face verification directly within Cubid**, leveraging the new FaceVerification SDK published by GoodDollar.\n\n---\n\n## Shared Value and Ecosystem Impact\n\nThis integration creates meaningful **mutual benefits for both Cubid and GoodDollar**, establishing deeper alignment between decentralized identity and universal basic income ecosystems.\n\n### Benefits for Cubid\n\n- Adds biometric-backed identity validation to user profiles  \n- Strengthens the **trust and legitimacy** of Cubid stamps across the web3 ecosystem  \n- Expands the types of verifications available in the Cubid protocol  \n- Enhances composability with other apps and identity frameworks  \n- Offers a new trust signal that can be used to unlock gated features or serve as a governance credential\n\n### Benefits for GoodDollar\n\n- Positions GoodDollar as a recognized verification oracle in the decentralized identity space  \n- Encourages **more users** to complete face verification, increasing usage of GoodDollar’s biometric tooling  \n- Enables wallet connection and onboarding via Cubid’s existing integrations (WalletConnect, RainbowKit)  \n- Provides **exposure to new audiences**, including developers and DAOs looking for trusted identity signals  \n- Opens the door to leverage Cubid’s humanity score as an **additional layer of proof-of-personhood validation**.\n\n### Strategic Synergy\n\nThis collaboration supports greater **interoperability between trust systems**. Cubid provides the infrastructure to represent and compose decentralized identity, while GoodDollar contributes a powerful biometric verification layer. Together, they help establish a **more Sybil-resistant, human-first web3.**\n\nThe most interesting use case for this integration lies in the opportunities it opens up for new and groundbreaking uses. For example:\n\n- **Targeted UBI** for users in a particular area by leveraging Cubid’s geogating capabilities based on device geolocation, phone number, passport, drivers license info, Discord/Telegram/Farcaster group memberships and more. GoodDollar could for example enable a targeted UBI campaign for a war-torn country or disaster-struck area.  \n- Provision “**bonus GoodDollars**” to people who opt in to a stronger identity verification with Cubid  \n- Use **quadratic- or conviction-based voting power** in the GoodDAO.  \n- Enable the Daily Claim Button **on any web2 website** by leveraging Cubid’s non-custodial embedded wallet functionality (see separate grant application for more details).\n\nWhile specific user growth projections are not available at this stage, we **expect significant interest** from users looking to strengthen their Cubid profiles with verified identity signals. All stamps—including the Verified with GoodDollar stamp—contribute to Cubid’s broader humanity scoring system, which supports use cases like Sybil resistance, DAO participation, and access control across decentralized applications.\n\n---\n\n## Technical Implementation\n\n**Already existing functionalities**\n\n- Standard login with email  \n- Cubid already supports **WalletConnect** and **RainbowKit**, and these methods will be used for connecting a GoodDollar-linked wallet.  \n- Persistent sessions. Cubid remembers which wallets a user has connected with. These two features combined mean that users **don’t need to connect each time**.  \n- Stamps: Validating and storing user credentials using Oauth, NFTs, OpenID, etc.  \n- Assigning **weights** to each Stamp  \n- Privacy-preserving, **user-controlled credentials-sharing** through open APIs.\n\nPhase 1: **Add a Verified With GoodDollar Credential**\n\n- As part of acquiring the Verified With GoodDollar stamp we will start by asking if the user already has a stamp. If they don’t then we guide them to the GoodDollar site and then come back to Cubid.  \n- If they are verified, we’ll then ask the user to connect their external GoodDollar wallet.  \n- Then we will call the **GoodDollar smart contract** to check if a connected wallet has been face-verified.  \n- Once validated, the **Verified With GoodDollar** stamp will be displayed on the user’s dashboard, and will be available for any third party dApp to request as part of the humanity score\n\nPhase 2: **Embed the Face Verification Flow**: \n\n- If the user responds that they are not yet verified with GoodDollar, then in this phase we will enable the face verification natively within Cubid, without having to leave the site.  \n- First we’ll ask the user to connect their external wallet.   \n- Then we’ll embed the newly released **GoodDollar FaceVerification SDK** directly into Cubid’s frontend.  \n- Once verified, the **Verified With GoodDollar** stamp will be displayed on the user’s dashboard.\n\nWe’ve already been in direct contact with the GoodDollar team about this SDK, and we’re happy to collaborate as the potentially **first live integrator**, including providing implementation feedback and potential improvements.\n\n---\n\n## Timeline\n\n| Phase | Description | Time Estimate |\n| :---- | :---- | :---- |\n| Phase 1 | Wallet connection \\+ smart contract face verification check | ✅ **Already done\\!\\!** |\n| Phase 2 | Integration of FaceVerification SDK for **in-app onboarding** | 4-6 weeks |\n\nAll development will be handled in-house by the **core Cubid team** — no external contractors or third-party devs are required for this build.\n\n---\n\n## 💸 Funding Note\n\nThis is a **retroactive grant proposal** submitted through **Gitcoin**, and we are **not requesting a specific funding amount** or milestone-based payout. Our goal is to transparently document our work and its ecosystem impact so that it can be considered for **retroactive public goods funding**.\n\n---\n\n## 🤝 Let’s Build It Together\n\nWe believe this is just the beginning of what’s possible between Cubid and GoodDollar. By aligning on values like **inclusion**, **sovereignty**, and **trust**, we’re creating new primitives for identity in web3 that are both human-first and system-resilient.\n\nWe’re excited to collaborate with the GoodDollar team and push the boundaries of verifiable reputation. Let’s make the web more trustworthy — one stamp at a time.\n", "lastUpdated": 0, "projectGithub": "Cubid-Me", "projectTwitter": "CubidProtocol"}, "recipient": "0xB4bf0F23c702EFB8a9da87A94095e28dE3D21Cc3"}}