CustodianCode NFT Marketplace

CustodianCode NFT Marketplace

Experience a secure and user-friendly marketplace for buying and selling NFTs with ease on Mantle Network

The problem CustodianCode NFT Marketplace solves

  • Walletless Onboarding
    Users can log in using their Google or Twitter account, and if they already have a wallet, they can simply connect it to their profile. If the user does not have a wallet, a new wallet will be created for them. This allows for a simple and easy onboarding process for users who may not be familiar with wallets or crypto.
  • Flexible Payment Options
    Sellers can list NFTs for sale with either crypto or fiat, and buyers can purchase NFTs using the same currency. This provides more payment options and makes it easier for buyers to participate in the marketplace.
  • NFT Auctions
    Marketplace allows the admin to auction off NFTs, creating a more dynamic and engaging buying experience for buyers. Only the admin can sell items in auctions, ensuring that the auction process is secure and properly managed.
  • Easy Listing Process:
    allows sellers to list their NFTs without needing any coding experience. This means that artists and other creators can easily sell their NFTs without needing to know how to code. This makes it more accessible for everyone to participate in the marketplace.
  • Transaction Data
    All transaction data is recorded on the Mantle blockchain, providing an immutable record of all transactions that occur on the marketplace including fiat payments. This ensures that all transactions are secure and transparent.

Challenges I ran into

  • Smart Contract Design
    Designing auction contract got hard, but after checking some patterns, I was able to figure it out.
  • Payment Gateway Integration
    I was stuck with an outdated payment gateway until I used Stripe's payment gateway.
  • UI / UX
  • Wagmi
    I attempted to use the Wagmi library at first, but it doesn't support Mantle testnet.
  • Blockies
    Using an out-of-date version of Blockies to generate a unique image for the wallet address, I was unable to obtain types for this library, but I eventually solved