Rise In Logo

Build on BNB Chain - Course 2 | Solidity for BNB Chain Development

Task: Decentralized Marketplace Smart Contract System

Your task is to create a decentralized marketplace using Solidity. The system should enable users to list, buy, and sell items in a secure and transparent manner.


1. Item Management:

   - Creating a Contract: Utilize Solidity to create a contract that manages the listing of items.

   - Types and Variables: Define various types such as Boolean, Address, Integers, String, and Bytes to represent item attributes.

   - Structs: Use structs to define an item with attributes like name, description, price, and quantity.

   - Mappings: Implement mappings to manage the relationship between sellers and their listed items.

2. User Interaction:

   - Functions: Create functions to allow users to list, edit, and delete items.

   - Modifiers: Implement modifiers to ensure that only the owner of an item can edit or delete it.

   - Events: Utilize events to notify users of significant actions like a successful purchase or listing of an item.

   - Errors: Implement error handling to manage invalid inputs, such as purchasing an out-of-stock item.

3. Transaction Management:

   - Constructor: Utilize a constructor to initialize key contract parameters.

   - Control Structures: Implement control structures to manage the logic of buying and selling.

   - (Optional) Interfaces and Interacting Contracts: Allow interaction with other contracts, such as a payment gateway.

   - (Optional) Call and Interacting Contracts: Enable calling functions from other contracts.

4. Inheritance and Data Locations:

   - Inheritance: Utilize inheritance to create a hierarchy of contracts, if needed.

   - Data Locations: Understand and apply the concepts of storage, memory, and stack within the contract.

5. Reporting:

   - (Optional) Libraries: Utilize libraries to generate reports showing the marketplace's sales, purchase history, and inventory.

6. Security:

   - Implement basic security measures, such as authentication, to prevent unauthorized access to sensitive functions.

7. (Optional) User Interface:

   - Design a clear and intuitive text-based user interface for easy navigation and task performance.


You should submit your project in a GitHub repository, including detailed documentation on how to deploy and interact with the contract, as well as a README file with instructions for building and running the system. Please include a comprehensive suite of test cases to demonstrate the correctness of your code.

Good luck, and enjoy building your Decentralized Marketplace Smart Contract System with Solidity!


Rise In Logo

Rise together in web3