project screenshot 1
project screenshot 2
project screenshot 3
project screenshot 4
project screenshot 5
project screenshot 6

Spermify

Revolutionary social dApp designed to facilitate and regulate sperm donation, inspired by the user-friendly interface of dating apps like Tinder. The platform aims to connect potential sperm donors with recipients while ensuring ethical practices using blockchain as trust layer.

Spermify

Created At

ETHOnline 2024

Project Description

Spermify: Revolutionizing Sperm Donation with Blockchain Technology

Spermify is a cutting-edge decentralized application (dApp) designed to revolutionize the process of sperm donation by providing a secure, user-friendly platform that fosters trust, privacy, and ethical transparency. Inspired by the streamlined interface of popular dating apps like Tinder, Spermify aims to simplify the connection between potential sperm donors and recipients while leveraging the power of blockchain to ensure ethical standards and data security.

Key Features: Trust Layer via Kinto: Spermify integrates Kinto as its trust layer for seamless KYC (Know Your Customer) authentication. This ensures that all users—both donors and recipients—are verified, promoting accountability and preventing misuse of the platform.

Anonymous Communication with XMTP: To maintain privacy and security, Spermify utilizes XMTP, a globally shared network for anonymous, decentralized messaging. Users can communicate securely within the app without exposing personal details, allowing for open yet confidential conversations between donors and recipients.

Efficient Blockchain Transactions via Envio: Spermify leverages Envio to build and maintain a subgraph of the blockchain, which enables rapid and efficient checks for Kinto wallet creation. By doing so, the platform avoids the need to create a new transaction every time a check is performed, as the Kinto wallet cannot sign a message (only the owner wallet can). This approach significantly reduces latency and transaction costs while ensuring the system remains secure and verifiable.

How Spermify Works: For Donors: Users interested in becoming sperm donors can create a profile, undergo KYC verification via Kinto, and begin anonymously matching with potential recipients. The platform allows donors to control their level of involvement, from simply offering sperm to maintaining varying degrees of interaction with recipients post-donation.

For Recipients: Intended recipients can browse donor profiles, securely communicate via XMTP, and choose a donor that meets their needs. The use of blockchain ensures transparency and traceability while safeguarding privacy at every step of the process.

Why Spermify? Sperm donation is often complicated by legal, ethical, and logistical barriers. Spermify aims to overcome these hurdles by using blockchain technology as a trust layer. This ensures all interactions are transparent, secure, and ethically sound. The app’s intuitive interface, anonymous messaging, and secure verification process offer a frictionless experience for both donors and recipients, making it easier to connect and build trust.

Spermify is more than just a donation platform—it’s a community built on trust, privacy, and innovation, reshaping how we approach fertility and reproductive health in the modern age.

How it's Made

How Spermify Was Built: The Nitty-Gritty Details

Building Spermify required a combination of cutting-edge technologies and a strong emphasis on privacy, security, and usability. Our goal was to create a decentralized app (dApp) that efficiently connects sperm donors and recipients, leveraging blockchain for trust and transparency while providing a smooth and user-friendly experience. Here's a breakdown of the technologies we used and how they all came together to bring this project to life:

Frontend: React with Next.js The Spermify frontend is powered by React with Next.js, which provides a robust, server-rendered framework perfect for building dynamic user interfaces with optimal performance. Next.js allowed us to create a fast, scalable platform that is easy for users to navigate, ensuring that the matching process between donors and recipients feels seamless and intuitive.

Why Next.js? Server-side rendering for improved performance and SEO. Built-in routing for managing multiple views easily (e.g., donor profiles, communication panels). Supports static site generation (SSG) for pages that don’t need frequent updates, reducing load times. Backend: Node.js and Express For the backend, we used Node.js with Express, which provided the flexibility and scalability needed to manage Spermify’s complex business logic and handle requests between the frontend and blockchain infrastructure.

Express powers the core API layer, managing user authentication, donor-recipient matching algorithms, messaging endpoints, and interactions with the blockchain. Node.js ensures high performance and scalability for handling multiple users, secure transactions, and real-time messaging simultaneously. Blockchain Layer: Kinto, XMTP, and Envio One of the unique aspects of Spermify is its integration with blockchain technologies to establish trust and ensure secure, anonymous interactions between users.

Kinto serves as our trust layer for KYC authentication. All users must pass through Kinto's verification process, ensuring that both donors and recipients are legitimate. This is crucial for maintaining ethical standards within the platform.

XMTP (Extensible Message Transport Protocol) is integrated for anonymous, decentralized messaging between donors and recipients. By using XMTP, we ensure that users can communicate securely without revealing personal information, all while maintaining the privacy and anonymity necessary for sensitive topics like sperm donation.

Envio Subgraph: To efficiently handle blockchain transactions, we utilized Envio for building a subgraph. This is hosted on BigDevEnergy, where we can rapidly and efficiently check for the creation of Kinto wallets without requiring a new transaction every time. Since the Kinto wallet cannot sign a message (only the owner wallet can), the subgraph allows us to verify wallet creation and ownership without overloading the system with redundant transactions.

Hacky Solution: One notable hack we implemented was avoiding constant transaction creation by using the Envio subgraph. We built a system that can query blockchain data instead of initiating new transactions for every action, which not only saves time but reduces costs on gas fees and keeps the platform efficient. The Integration: Piecing It All Together The project’s architecture is designed to be modular and highly scalable. Here's how the pieces work together:

User Interface (Next.js): Users (donors and recipients) interact with a highly responsive UI, with pages dynamically rendered based on user activity (e.g., onboarding, KYC authentication, donor matching, messaging).

Backend (Node.js/Express): The backend handles all the core functionality: from managing user sessions and routing requests to interacting with blockchain data through the Envio subgraph and Kinto’s KYC authentication API.

Blockchain Layer:

The Kinto trust layer authenticates users. XMTP handles the secure and anonymous communication between verified users. Envio manages blockchain interactions, ensuring wallet creation and checks happen efficiently without bogging down the system with unnecessary transactions. Partner Technologies and Their Benefits: Kinto ensures a high level of trust through its verified KYC process, which is essential for ensuring ethical standards are met in the sperm donation process. XMTP provides a highly secure and private messaging layer, making it possible for users to communicate anonymously, which is critical for sensitive topics like sperm donation. Envio's subgraph allows us to handle blockchain queries efficiently, reducing transaction costs and avoiding unnecessary blockchain congestion. Challenges and Hacks: One of the most hacky and interesting challenges we solved was optimizing the way we interact with the blockchain for wallet verification. Since Kinto wallets can't sign messages, we had to find a workaround to verify wallet creation without triggering a new blockchain transaction every time. By integrating Envio's subgraph, we managed to build a system that queries data and reduces transaction frequency, significantly boosting efficiency.

In summary, Spermify was built with a combination of cutting-edge frontend, backend, and blockchain technologies, pieced together in a way that maximizes efficiency, security, and user privacy. The integration of partner technologies like Kinto, XMTP, and Envio subgraphs was critical in bringing this decentralized, trust-driven platform to life.

background image mobile

Join the mailing list

Get the latest news and updates