Smart Contract
Dapp

Decentralized NFT Trading System

My Role
Smart Contract Developer
Blockchain Architect
Front-end Developer for DApps
Timeline
Mar-Jun 2022

Decentralized NFT Trading System ⛓️

Overview

After witnessing numerous hacks where NFTs were compromised due to off-chain order signatures, we conceptualized a robust, on-chain NFT trading system. Our vision is to empower users to trade NFTs securely and ensure rightful royalty distribution without depending on third-party marketplaces.

Marketplace issues VS ERC721 Buyable
Marketplace issues VS ERC721 Buyable solution

Link
Github repository.

Key Features

  1. Total Independence: Trade NFTs anytime without depending on any marketplace.
  2. Royalty Enforcement: We introduced an improvement proposal (EIP) that ensures on-chain calculation & payment of royalties for every NFT transaction.
  3. No Third-Party: The NFTs are financially tradeable in ETH directly through their respective smart contracts, negating the need for additional marketplaces.
  4. Protection against Non-Compliant Marketplaces: Integrate with Operator Filter Registry or similar solutions to blacklist non-compliant platforms.
  5. Demo: A decentralized NFT marketplace demonstrating our solution: Decentralized NFT Marketplace.

Technical Highlights:

  • Built using React, our demo application showcases how this ERC standard can seamlessly integrate into any marketplace, offering a decentralized trading interface.
  • Owners can list/unlist their NFTs and set/update the royalty rate.

Rationale

  1. On-Chain Security: By facilitating on-chain transactions, we eliminate risks associated with off-chain vulnerabilities, ensuring a secure peer-to-peer trade.
  2. Decentralized Royalties: Artists can enforce royalty payments directly through the blockchain, ensuring they're compensated fairly without depending on third-party platforms.
  3. Flexibility and Control: The system allows royalty rate adjustments (only to decrease) post-deployment for added flexibility.

Design Choices

  • We opted against integrating a paymentSplitter, ensuring the standard remains lightweight and efficient.
  • Simplified sale status tracking using a single mapping system.

Feel free to have a look at the project under its GitHub repository.