# I. Marketplace

## Marketplace

The marketplace is for all users to search through property listings. The marketplace features three types of properties, described below. Each property type has its own unique smart contract because of the specific conveyance conditions associated with that asset. The foundation of this marketplace will be built off of new ways to purchase homes. Now, home buyers will be able to purchase fractional shares of a home, opening the door for further financial diversification and a better debt to equity ratio for investors.

### Property Types

Properties are categorized into residential, commercial, and investment opportunities. Residential properties focus on single family, multifamily, condo, etc. Commercial properties that are used exclusively for business-related purposes or to provide a workspace rather than as a living space. Examples of commercial properties include office space, industrial space, retail space. The third property type on the platform is an investment property. Investment properties are presented by real estate investment or development groups who are trying to pool capital to make a larger purchase. Investment opportunities can range from residential to commercial properties, but the group representing the deal does not own the property.&#x20;

![](/files/-MXYoJDVbVJ4gBbuFlJr)

### Property Listings

Each property listed on the platform will include details related to the individual property and to the investment. Some of the initial metrics include, the funding amount, some basic details on the projected returns of the property, and the share price of the property. Users will be able to see detailed pictures of the property before any investment is made. While pictures don't do justice compared to visiting a property, sellers will also have the ability to upload documents associated with the property. Whether that's evidence of maintenance and repairs or even an offering memorandum.&#x20;

![](/files/-MSuoLwRRAmJcM03vWBM)

Users will have the option to buy shares of a property, list shares that they currently have tied to their account, or submit an offer to purchase shares at a specific price. This method will allow user to see what shares are available and allow us in the future to perform valuations on trading and volatility.&#x20;

![](/files/-MXYovIFGw-MTcasgeaX)

### Chain History

Each asset represented in the application will be tied to the blockchain. The blockchain mainly serves as a behind the scenes service that provides additional functionality to the application. Because the blockchain holds an immutable ledger of the transaction history, we will be able to display a comprehensive chain history with everything associated with the asset. Like the stock market, we imagine a chain history including calls to buy and sell shares of real estate.&#x20;

![](/files/-MXYp2oAiPeiSFIWBlae)

### The Asset&#x20;

An investment property will *usually* be sold via crowd-sale. A crowd-sale is an ideal mechanism for exchanging tokens of property (or any digital asset) for ETH. A `TokenSale` is an independent smart contract that a seller attaches to the `TokenizedProperty` (giving `TokenSale` access to their tokens). The behavior is then the same as a normal crowd-sale (i.e. an ICO). A `TokenSale` is configurable by the seller (i.e. `startTime`, `endTime`, `goal`, etc…), but the end result is investors receive rights/ownership of property (tokens), and the seller receives ETH.<br>

### Constructors

```javascript
  constructor {
    uint256 _cap,
    uint256 _openingTime,
    uint256 _closingTime,
    bool  _goal,
    uint256 _rate,
    IERC20 _token,
    address payable _wallet
  }
```

**Method**

* Cap: minimum investment required&#x20;
* Goal
* Token
* Wallet:&#x20;

```javascript
  mapping(address => bool) public claimedRefund;
  uint256 public goal;
  mapping(address => bool) public reversed;
  uint256 public totalTokens;


  public
    Crowdsale(_rate, _wallet, _token)
    CappedCrowdsale(_cap)
    FinalizableCrowdsale()
    TimedCrowdsale(_openingTime, _closingTime)
    PostDeliveryCrowdsale()
  {
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.realium.io/platform/overview/marketplace.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
