Skip to Content
ArchitectureOverview

Architecture

Solidarity’s architecture is built on three core principles: local-first, privacy-first, and open standards.

Architecture Layers


Sections

Technology Stack

Full tech stack, SDK selection, data persistence strategy.

Highlights: iOS 17.0+, SwiftData, MultipeerConnectivity, PassKit

Zero-Knowledge Proofs

Passport ZKP pipeline (MRZ → NFC → mopro → VC) and verification flow.

Highlights: OpenPassport Noir circuit, mopro prover, SD-JWT fallback, WASM Web Verifier

P2P Networking

Face-to-face exchange technical implementation: MultipeerConnectivity, Social Graph Intersection, encrypted payload.

Highlights: MCNearbyServiceAdvertiser/Browser, hash-based common friends, signed exchange payload

Key Management & Privacy

DID key lifecycle, iCloud Keychain sync, Social Recovery (Shamir SSS).

Highlights: EC P-256 keys, pairwise per-RP keys, Shamir + ECIES guardian encryption

Apple Wallet (Pass Signing)

Apple Wallet .pkpass integration: local assembly + Cloudflare Worker signing.

Highlights: PassKit, PKCS#7 detached signature, stateless backend


In-Depth Analysis

Verification Model

What data is actually verified, at which trust level, and by which mechanism — signatures, CSCA chain, ZK proof, expiry, nonce.

Highlights: CSCA passive auth, VP token checks, P2P payload verification, what is NOT verified

Data Exchange Model

What Me/Share sends on each path, where OID4VP and OID4VCI fit, and the exact difference between Proximity and QR code contacts.

Highlights: ProximityPayload fields, VP token data, OIDC flow status, ContactEntity comparison

Wallet Architecture

Precise boundaries of Solidarity as a VC Wallet, VP Wallet, and Apple Wallet integration.

Highlights: what is complete vs stub, accurate product positioning

Advanced Capabilities

Group-based features enabled by Semaphore, and the architecture for Gov+NFC device-binding.

Highlights: Semaphore group use cases, pairwise DID binding, EAC-3 hardware binding limitations


Quick Reference

FeatureTechnologyCode Location
Proximity discoveryMultipeerConnectivityServices/Sharing/ProximityManager.swift
QR generationCoreImage + JWTServices/Card/QRCodeGenerationService.swift
Passport NFC readingNFCPassportReaderServices/Identity/NFCPassportReaderService.swift
ZK proof generationmopro + NoirServices/ZK/MoproProofService.swift
VC/VP wrappingOID4VPServices/Identity/OID4VPPresentationService.swift
Apple WalletPassKitServices/Sharing/PassKitManager.swift
Key managementiOS KeychainServices/Identity/
Local storageSwiftDataModels/
Last updated on