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.
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
- 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 Contacts is a custom contract publicly shared with the Flow community with support for administration. This way, NFTs can be redeemed by the platform’s administration and exchanged for rewards.
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:
- 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:
- RDS PostgreSQL database
- Lambda functions
- Elemental MediaConvert
- S3 buckets
- Amazon Cloudfront
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.
- 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
- 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.