Proovacy leverages zkTLS (Zero-Knowledge Transport Layer Security) to privately prove ownership of social media usernames, such as Twitter and Telegram, directly on-chain while ensuring user privacy. By integrating the Starknet Wallet SDK, Proovacy creates a unique wallet based on parameters derived from these platforms. Initially, the system supports verified humans onboarding through Twitter and Telegram, followed by a 2:1 referral model, where each user can invite two verified participants. This decentralized Proof-of-Personhood system not only enables secure verification but also supports generating session keys for privacy-preserving authentication across platforms.
Watch the demo of our project in action:
stateDiagram-v2
[*] --> ConnectSocialAccounts
ConnectSocialAccounts --> VerifyIdentity: User connects Twitter/Telegram
VerifyIdentity --> GenerateProof: Reclaim Protocol
GenerateProof --> CreateWallet: ZK Proof Generated
CreateWallet --> [*]: Starknet Wallet Created
state VerifyIdentity {
[*] --> ValidateTwitter
[*] --> ValidateTelegram
ValidateTwitter --> ProofGeneration
ValidateTelegram --> ProofGeneration
ProofGeneration --> [*]
}
graph TB
subgraph Frontend
UI[User Interface]
SDK[Starknet SDK]
end
subgraph Core
RP[Reclaim Protocol]
ZK[ZK Proof Generator]
WM[Wallet Manager]
end
subgraph External
TW[Twitter API]
TG[Telegram API]
SC[Starknet Contract]
end
UI --> RP
UI --> SDK
RP --> ZK
ZK --> WM
WM --> SC
RP --> TW
RP --> TG
SDK --> SC
classDiagram
class Frontend {
-walletManager: WalletManager
-reclaimProtocol: ReclaimProtocol
+initializeConnection()
+handleVerification()
+manageWallet()
+displayUserInterface()
}
class ReclaimProtocol {
-zktlsVerifier: ZKTLSVerifier
-socialConnector: SocialConnector
+verifySocialAccount()
+generateProof()
}
class SocialConnector {
-twitterAPI: TwitterAPI
-telegramAPI: TelegramAPI
+connectTwitter()
+connectTelegram()
}
class WalletManager {
-starknetSDK: StarknetSDK
+createWallet()
+generateSessionKey()
}
class ZKTLSVerifier {
+verifyProof()
+generateZKProof()
}
Frontend --> ReclaimProtocol
Frontend --> WalletManager
ReclaimProtocol --> SocialConnector
ReclaimProtocol --> ZKTLSVerifier
ReclaimProtocol --> WalletManager
sequenceDiagram
participant U as User
participant FE as Frontend
participant RP as Reclaim Protocol
participant ZK as ZK Proof Generator
participant W as Wallet Manager
U->>FE: Connect Social Accounts
FE->>RP: Request Verification
RP->>RP: Validate Credentials
RP->>ZK: Generate ZK Proof
ZK-->>RP: Return Proof
RP->>W: Create Wallet
W-->>FE: Return Wallet Details
FE-->>U: Complete Onboarding
The Proovacy project is built using the following technologies and protocols:
-
Frontend
Developed with Next.js, a React framework for building web applications. -
Blockchain
Integrated with Starknet, a layer-2 scalability solution for Ethereum. Cairo, the programming language specifically designed for Starknet smart contracts, is used to implement on-chain logic and interactions. -
SDK Argent Wallet
Proovacy utilizes the Argent Wallet SDK, a smart wallet designed for Starknet. -
Reclaim Protocol
Proovacy integrates Reclaim Protocol, a decentralized protocol that allows users to prove ownership of accounts, data, or assets from third-party platforms without sharing sensitive credentials.
This protocol enables:- Secure identity verification using cryptographic proofs.
- Privacy-preserving claims leveraging ZKPs to ensure user data remains confidential.
- Integration with multiple platforms to streamline the process of proving account ownership.
-
Scaffold-Stark Template
Built upon Scaffold-Stark, a template designed to assist developers in creating decentralized applications (dApps) on Starknet efficiently.
Scaffold-Stark provides:- Pre-built Starknet smart contract examples written in Cairo.
- An extensible frontend connected to Starknet wallets.
- Development tools for testing and deploying smart contracts.
-
SDK Argent Wallet
Proovacy utilizes the Argent Wallet SDK, a smart wallet designed for Starknet. It offers:- Seamless Starknet integration for fast, low-cost transactions.
- Wallet connection capabilities, allowing users to easily connect their Argent wallet to the Proovacy platform to perform the verification test.
-
Reclaim Protocol Documentation
Learn more about how Reclaim Protocol enables secure and private identity verification. -
Scaffold Stark Repository
Explore the template repository to build Starknet-based dApps with ease. -
Cairo Programming Language Documentation
Learn more about Cairo, the language for writing smart contracts on Starknet.