FIO Marketplace

Author: @Isaiah Williams (isaiahwill610@gmail.com)

Contributors: EOS BlockSmith (eosblocksmith.io) @Thomas Le

Uploaded: 1/22/21

Status: Accepted

Overview

What we are planning to create is a marketplace where users can buy and sell FIO Domains.  Users will interact with the frontend website to view and place domains up for sale.  The frontend will interact with the FIO Escrow Smart Contract to facilitate transactions between users who buy and sell domains. 

Who is the customer of your product?

            Users of FIO Domains.

What problem of your customer are you trying to solve?

            There does not currently exist a platform for buying, selling, and trading FIO Domains.

Why is it important you solve this problem?

            As the popularity of FIO grows, the likelihood of a desired domain being available decreases.  It is also common for individuals to purchase names of popular name brands in order to later sell the domain to the company that owns the brand (name squatting).  Without a marketplace for domains to be sold, these transactions become difficult.  By providing ease of use solutions to name and address transactions, a marketplace also increases the revenue flow of block producers by increasing the number of fees generated by each transaction.

How will this product/initiative solve this problem?

            The marketplace will solve this problem by providing users with an easy-to-use interface to buy, sell, and trade their goods.

What KPIs will you track to determine if you are solving this problem?

            User traffic

            Number of transactions

Functionality

The diagram below displays how the user, the website, the smart contract and the account that owns the smart contract all work together.

 

This diagram reads left to right and top to bottom. There are three different scenarios outlined and they are distinguished by the color of the arrows. The first scenario, in red, starts will the user using the website to place a domain up for sale for a specified price. This user is denoted as "seller." To initiate this scenario, the seller will pay a listing fee to list their domain for sale on the marketplace. The website then communicates that the smart contract needs to use the "listdomain" action, which will transfer ownership of the domain to an “escrow_account” and place that domain for sale on the website. The escrow account is the account that owns the escrow smart contract and, acts as an intermediary that will hold the domain while listed.

The second scenario, in blue, starts will the seller canceling their listing on the website. The website then communicates with the smart contract in order to transfer ownership of the domain from the escrow account back to the seller.

The last scenario, in green, starts with a different user buying a listing on the website. This second user is denoted as "buyer." The website then communicates with the smart contract in order to transfer ownership of the address to the buyer and transfer the funds used to buy the domain to the seller. The marketplace will take a commission for facilitating this transaction.

MVP

  • Focus on functionality for domains only

  • FIO Escrow Smart Contract

    • New Actions: List (for sale), transfer domain ownership (both to the escrow account and buyer), cancel listing, buy listing, set marketplace configuration,

      update marketplace configuration,

    • Modified Actions: Transfer (fio), burn expired domains (unlist as well)

      • Escrow contract added to authorization list of BP reward update, BP pool update, and foundation reward update

    • All prerequisites need to be checked and met on both sides (buyer & seller) before transactions are executed (Atomic transactions)

  • Website

    • Users need to be able to have access to buy, sell and cancel listing actions in the smart contract

    • Pages

      • Dashboard

      • My Account

      • My Domains

      • My Listings

        • Active Listings

        • Sold Listings

        • Cancelled Listings

Future Ideas

  • For the front end to facilitate the registering of usernames to domains

  • Seller being able to edit/adjust the price

  • Being able to send an offer to the seller

  • “Willing to sell” designation

  • Messaging system

  • Notification system – for expiring domains

  • Being able to renew a domain upon purchase

  • Expiring domain page to see all domains that are about to expire

  • Being able to send and receive FIO

  • Include functionality for addresses

More Documentation