GoodDollar Integration to Cubid Passport
{"title": "GoodDollar Integration to Cubid Passport", "logoImg": "bafkreiegyt3vhirpxlukw3jv6s2htumqtbzievhoo7xavj62iudnuxkx2e", "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", "logoImgData": {}, "bannerImgData": {}, "projectGithub": "Cubid-Me", "projectTwitter": "CubidProtocol"}