NFT marketplace

Designing custom NFT marketplace within
the Web3 industry


NFT marketplace development
Custom web development
Database optimization
Data protection
Payment handling

Project overview

In 2021, our company was contacted by a US startup specializing in digital collectibles, and serving NFT creators. The client was interested in creating a unique NFT marketplace for viewing, renting and securely purchasing digital assets, which can then be exchanged for physical items.

The team, provided by Abto Software, successfully covered the POC and delivered a custom NFT marketplace. The product’s core functionality includes selling/purchasing, advanced search, search filters, voucher minting, and more, all wrapped in an intuitive, user-friendly UI/UX design.


Main goals

The project’s main goal was designing and delivering a manageable NFT marketplace:

  • To provide both creators and collectors with the necessary functionality to sell and buy digital assets, and seamlessly mint – create on the blockchain – NFTs 
  • To provide cost efficiency, improved security, and independence 

How the solution works

Key components:


User interface

  • REST APIs: Express JS, typescript language
  • Front-end part: Next JS, Tailwind CSS as a low-level framework
  • Blockchain part: Flow network, cadence language

Video & image uploads
AWS MediaConvert to compress and convert video content:


Lambda function to crop and upload image content to Pinata IPFS:

Smart Contracts
Smart Contacts is a self-executing contract in form of an buyer-seller agreement contained within the code. This way, NFT vouchers are redeemed by the platform’s administration and exchanged for rewards.


Flow Contracts
The first Flow Contract implemented using Flow NonFungibleToken contains the following features:

  • Admin-level permission creator events
  • Create/update events
  • Deployer-level functionality
    Mint Non-Fungible tokens
    Batch Mint tokens
  • Metadata updates (information updates for specific NFT tokens, for example, image/video links)
  • Asset storage

Along with additional getters and helpers.


The second Flow Contract implemented using Flow NonFungibleToken contains the following features:

  • Several events (Withdraw, Deposit, Redeem, Consume)
    Redeem – this function allows to take ownership over an NFT voucher from within a vault
    Consume – this function allows to consume an NFT voucher (destroy it)
  • Collection resources
  • Deployer-level functionality:
    Mint Non-Fungible tokens
    Batch Mint tokens
  • Asset storage

Along with additional getters and helpers.


Ethereum Contracts
The created contract is based on:

  • ERC721A contract (ERC721A standard supports minting multiple tokens for almost the price of one)
  • Ownable module (a module that provides an access control mechanism, which means owner accounts can get exclusive access to certain platform features)
  • MerkleProof feature (a feature that deals with verification of datasets without re-computing the data)
  • ReentrancyGuard module (a modifier that helps prevent reentrant calls to a function)

The implemented contract contains:

  • Several methods of minting
    Whitelist minting
    Batch minting
    Minting by an address
  • Fund withdrawal
  • Validation modifiers for minting
  • Metadata getters and setters


Code infrastructure
For the 100% safe and smooth creation, modification and setup of infrastructure, our team picked Terraform. The solution now has two environments, for staging and production.
A diagram of the created infrastructure:


A diagram explaining the core functionality of the NFT marketplace:


Our contribution

We covered:

  • The design of a single-page application by using Next JS
  • The implementation of the REST API for the smooth interaction with the flow blockchain
  • The setup of the AWS environment

At this project stage, we configured the following AWS services:

  • ECS
  • RDS PostgreSQL database
  • Lambda functions
  • Elemental MediaConvert
  • S3 buckets
  • Amazon Cloudfront

Main challenges

During the project’s scope, our team faced challenges related to:


1.    The creation of a reliable system for configuration and minting of vouchers 

The client was using shell scripts to generate NFT tokens, but aimed to do it by using the administration panel.


We created: 

  • A stepper for the system’s administrator to generate and customize NFT tokens and vouchers 
  • Background services for minting and distribution

2.    The integration of several payment methods: MoonPay, MetaMask, and Flow 

One of the problems was handling several different payment methods with completely different APIs and flows. To integrate the different payment methods, we created a gateway for the different APIs and unified the whole payment process by using the Queue, WebHook and Background services.


3.    The synchronization of data from blockchain with database 

It might be difficult to trace the bought NFT tokens as they can be easily purchased on some external sources. To provide simplified monitoring, we implemented Graffle WebHooks together with Cron Jobs.

Tools and technologies

Tech stack:

  • JavaScript
  • TypeScript
  • Cadence
  • Solidity
  • Node.JS
  • Express.JS
  • Postgres
  • Vue.JS
  • Next.JS
  • TailwindCSS


  • Terraform
  • AWS
  • Kubernetes
  • Lambdas


  • Flow
  • Blocto
  • MetaMask
  • MoonPay
  • Graffle


  • June 2021 - July 2022


  • 1 Project Manager
  • 1 DevOps Engineer
  • 2 Back-end Developers
  • 1 Front-end Developer
  • 1 Blockchain Developer
  • 1 UI/UX Designer

Value delivered to business

The custom NFT marketplace is designed to ease the interaction with content and other community members. Today, content isn’t just about consumption – it’s about cultural heritage, having influence, and opportunities for investment.


The delivered NFT marketplace:

  • Reduces costs
    By using traditional marketplaces, the client would have to put up with some additional transactional charges. But with the tailor-made NFT marketplace, the startup can enjoy the benefits of decentralization and omit conducting transactions through intermediaries.
  • Increases security
    Traditional marketplaces are often the subject of fraudulence and dangerous for both the seller and customer. By leveraging blockchain technology, we provided for security and transparency of every single transaction.  
  • More independence
    Since the NFT marketplace is decentralized, it is not subject to the same regulations as a traditional platform. This provides more freedom and flexibility for both the seller and buyer.


Contact Us

To find out more about Abto Software expertise, request a quote or get a demo of your custom solution.

  • Clicking this button, I agree to the processing of my personal data.

Contact us

Tell your idea, request a quote or ask us a question