---
# System prepended metadata

title: Decentralised Marketplace

---

# Decentralised Marketplace

Here we propose a decentralised marketplace design starting with limited scope of selling physical goods that can be verified at the point of delivery.

## Problem statement

**How to facilitate trade of goods between untrusted parties.**

When two untrusted parties want to engage in a trade they need to make sure that the other party is not trying to default on the deal. To understand possible ways of defaulting or committing fraud let's assume there are two parties A and B. 

- A wants to buy 4 inch bamboos and after doing some online search found that party B is selling bamboos
- A and B get in contact and agree to trade X sets of 4 inch bamboos for Y INR
- A starts by paying half the amount to B and expects B to deliver X set of 4 inch bamboos
- B sends X sets 2 inch bamboos instead of 4 inch bamboos and upon delivery A now does not have a choice as A has already paid amount higher than cost of X sets of 2 inch bamboos

There are others ways in which A or B can default on the deal. We will explore all these ways in detail when we propose a solution to this problem.

## Existing solutions

A and B can ask a third party C to facilitate the deal. This third party more often than not behaves like an escrow service which -

- C takes full amount of Y INR from A
- C conveys to B that it has received Y INR. This step assures B that A is capable of paying the agreed upon amount and A can not default after delivering agreed upon goods
- B then sends X sets of 4 inch bamboos to A as agreed upon
- B collect a proof of delivery and acceptance from A upon handing over the bamboos
- A tells C to release payment to B after receiving the bamboos

Here C also facilitates dispute resolution if any and for that C needs to create a legal contract and collect proof of actions of any party. 

### Escrow service

One such third party service is escrow service provided by banks. It behaves like described above but it has it own problems because it's decentralised and profit driven.

- Banks need to charge high fee to facilitate such a trade because of cost of legal contracts. Therefore they tend to provide escrow service only for high value trades
- Because bank is a profit driven business entity it can be corrupted either party participating in trade for high gain

## Why do we need a decentralised solution?

We need a decentralised solution because it will -

- Reduce fee because there will be no need of creating a legal contract and collecting proof of actions
- It will be incorruptible because there is no central entity to make profit out of this service

But this decentralised system itself comes with a flaw that there is no way to resolve disputes in a decentralised manner. Therefore we are limit scope of our solution to the trades which can be verified at the time of delivery.

## Design

This solution has a public blockchain smart contract as a decentralised escrow service at it's core. To facilitate through smart contracts we need following components -

- Smart contract
- Way to convert INR to a crypto currency token
- Way to convert cyrpto currency token to INR
- This token should be a stable currency and pegged to INR
- Simple user interface that hides all this complexity of blockchain in the background
- A market place which allows users to list goods they are selling using this escrow
- Or may be just a just a plugin that allows any website owner to use decentralised escrow from their own site

## Questions

