home

Maindrop

Maindrop - is platform that simplifies the process of creating and sending NFT gifts to anyone, whether they have a crypto wallet or not. Traditionally, sending NFTs to someone without a wallet is challenging. Maindrop addresses this by allowing users to send existing or newly created NFTs to a recipient’s email or phone number. The recipient can then claim the NFT by verifying their identity as the owner of that email or phone number.

How we built it

  • Front-end
    • Developed using a NextJS app with server-side rendering.
    • Built NFT image generation tools for easy customization.
    • Used GraphQL Apollo for API communication
    • Implemented role-based UI rendering to tailor the user experience.
    • Authentication is handled via WalletConnect and web3 signatures, ensuring secure access.
  • Back-end
    • EventService - A Node.js service responsible for blockchain event handling, communicating with the API through internal channels. It utilizes a Redis-based queue system for resilience against server restarts.
    • TransactionService - A Node.js service designed to monitor and report the status of blockchain transactions.
    • NFTSyncService - This Node.js service imports and synchronizes NFTs from a wallet. Upon receiving a wallet address from the API, it scans the blockchain, prepares the data, and sends it in batches back to the API.
    • The API encapsulates core business logic and authentication processes, with further details available here.

New learnings

  • Developed an ERC1155 smart contract.
  • Leveraged OpenZeppelin contracts and Defender for secure contract management.
  • Integrated with Alchemy API for enhanced blockchain interactions.
  • Incorporated Simplehash API for NFT data handling.
  • Built robust Redis-based queues resilient to server restarts.
  • Established direct internal service communication within a Kubernetes environment.
Maindrop