Agora - The unstoppable, decentralized and disruptive Marketplace. | Ethereum Smart Contract
Based upon Ethereum for the logic and IPFS for the content, Agora is the first market thought in the interest of all parties. Register on it using your current Ethereum Wallet and then you can buy or sell over the marketplace*. An automatic system is holding the funds during the transaction. That way, if something goes wrong you can always get your money back.
What is IPFS ?
IPFS stands for InterPlanetary File System. It is a protocol designed to create a
peer-to-peer, addressable, distributed file-system.
This is the technology that will be used to store assets such as stores’ pictures,
products’ pictures, products’ description, in a distributed way.
An asset stored on this filesystem has an unique address that can be easily
stored in a smart contract.
Why Ethereum and IPFS ?
Blockchains have changed the way we can trust each other. First with Bitcoin, now with
Ethereum, we can trust the ledger we are sharing together instead of trusting each other directly.
Today, Ethereum is one of the most popular blockchain that supports smart-contracts. It aims to
replace server computing as we know it, by creating a “world computer”.
IPFS is the technology for asset storing and file sharing on the internet in a purely decentralized
way. It aims to replace HTTP by creating a better solution to share files across the internet.
What is a smart-contract ?
A smart-contract is code deployed on the blockchain. It is used to define and enforce
the relationship between actors on the blockchain. And since the blockchain is
immutable the code of the smart contract cannot be altered.
On a blockchain, a smart-contract is like any other actor. It has an address, a
balance and can do actions (sending money etc…) but it also has a brain: it can
perform actions and store information.
How will we use these technologies ?
Our engineering team has leveraged the possibilities of Ethereum to build smart-contracts over
the Ethereum blockchain that defines the relation between "sellers", "buyers" and “shareholders”.
Furthermore, we will use IPFS to store assets to provide a user-friendly store without centralizing
all the data at one point.
Smart-contracts will enforce the relation that exists between the 3 parties stated before. First, we
will present their roles, then the different relations and interactions between them.
The seller is an actor that wants to sell goods or services.
The buyer is a consumer. It browses the market, checks out different sellers, and buys from them.
owns a part of the market (represented by tokens). It represents a part of the
To create a fair market, we need to enforce a set of rules between sellers, buyers and
shareholders. Here is the exhaustive list of these rules.
• A seller cannot receive the money of an order before the buyer confirms he received the
transaction, or after a defined period after which the buyer cannot make a claim anymore.
• An order cannot be processed if the buyer doesn't provide the required amount of money.
• When there is a dispute between a buyer and a seller that can be solved amicably, the
shareholders may decide on the action to be taken to resolve the conflict. To do so, the
shareholders can ask for proof and choose between three outcomes :
• Seller is in their right, buyer is not. All the money is given to the seller.
• Buyer is in their right, seller is not. All the money is given to the buyer.
• Shareholders cannot decide by majority, they can decide to split the money between the two
• When a transaction is made over the market, a fee equal to 2% of the transaction amount is
held by the market.
• At the end of each month, token shareholders can take their part of the 2% collected during the
period based on the amount of tokens they hold at the closing date of the month.
After a purchase is made over the marketplace, the buyer can leave comments for the seller and
another about the product itself. They can also rate both. After enough feedback, we can rate a
The content of the marketplace is regulated. We don’t want to see illegal goods or services
spawning across the market. When a seller wants to register, it’s status is set to “under
registration”. A seller which is "under registration” is not yet shown to buyers. A certain amount of
shareholders must approve the seller before the status goes from “under registration” to
activated. Furthermore, a seller can be reported and removed.
All smart contracts are concerned with the following : market logic, tokens logic and claims logic.
User experience across the marketplace
We have summarised the interaction between users, actors and contracts. Interacting with a
smart-contract through raw transactions is not acceptable for most users. That’s why we believe
we must make this market as user-friendly as possible.
Our vision is the following : the user goes to https://market.agora.io, provides its wallet file or
plugs its hardware wallet (like a Ledger Nano S) and can start using the app. No matter if he is a
buyer, a seller or a shareholder, it must be simple and easy to use. So the first thing to remove is
the need to install a full Ethereum node or a full IPFS node.
To permit such a system to exist, we need to use public nodes and use web applications that can
be executed only on client-side. MyEtherWallet is doing this. They use the wallet locally to
transmit the signed transaction to a public node that relays it over the network. For IPFS, we can
use a public node too.
This way a user can use the marketplace without needing to run a node, and can use it without
uploading its wallet somewhere. Everything is happening locally and is broadcasted to the
network when needed.
Furthermore, work is in progress on both the Ethereum and IPFS projects to enable bootstrapping
a node directly from the browser. When this technology becomes available, we will be able to use
it and connect directly from the browser without the need of a third-party public node.
Another aspect that we want to simplify is billing which can get complicated. To make it easier,
the market will generate bills automatically after a transaction is made. Since the market stores all
the transactions on the blockchain, we can directly use the blockchain data as the support to
create a PDF document on the client side.
We have created some basic wireframes of the views of the market so you can imagine more
clearly what it will look like.
When a buyer open the market, after logging in, they can browse the different sellers
When a consumer wants to buy an item from the “Cookie Market” store.
Dashboard of a seller
The first step of the project is the Initial Coin Offering. The ICO is used to achieve two purposes :
• Raise funds to make the project a reality.
• Distribute all the tokens among the community.
We offer an unlimited supply of token, but the token creation is limited over time : around 2 month
(315106 blocks). Here is the exhaustive list of rules enforced by the smart-contract :
• The contract is deployed by an address called “contract owner" which represents the
• The token is expressed with 18 decimals.
• For 1 token created for a shareholder, 1/6 more token are created and given to the contract
• Tokens owned by the contract owner are indefinitely frozen (not transferable).
• The ICO opens at block 4116800.
• The ICO ends at block 4431906.
• For a payment of 1 Ether you get 500 Agora Tokens during the ICO.
• A premium period exists between the block 4116800 and the block 4195576 (~2 weeks) where
the price is 1 Ether = 550 Agora token (10% offer).
• The minimum Ether amount required to achieve the ICO is 500.
• If the amount of Ether raised is higher or equal than the minimum amount after the ICO end
block is reached, the ICO is considered a success.
• If the amount of Ether raised is less than the minimum amount after the ICO end block is
reached, the ICO is considered a failure.
• If the ICO is a success, the development team can withdraw the amount raised and start the
development of Agora.
• If the ICO is a failure, every shareholder can destroy its token and get Ethers back. The
development team cannot withdraw.
The token (noted AGO) is a tradable token that represents a part of the marketplace. It is an
ERC20 compliant token, so it is tradable easily over the Ethereum network.
You can find details directly on https://theagora.io.
More technical details are also available on our GitHub : https://github.com/AgoraMarket
By nature, a smart-contract cannot be altered. Hence, we need to proceed very carefully with the
smart contract development and deployment. And it is with a high-quality code requirement that
we have designed the Roadmap. We can’t and won't rush. We want to provide the best
experience available. We want to minimise the risk taken by the shareholders by investing into our
solution. This takes time.
(August 2017 ~ September 2017)
This phase is described in the “Profitable market” section. After the ICO we will do some hiring,
we will create the company itself.
Smart-contract and web application development
(September 2017 ~ January 2018)
We want to take care of the software we are developing. Ss already stated, smart-contract
development is a hard task since once a smart-contract is deployed it cannot be modified. We
need to be really careful and do a lot of testing.
Mobile applications development
(February 2018 ~ August 2018)
We want our marketplace to be available from a mobile-phone as well. And to achieve that, we
will create mobile applications.
Decentralized search engine
(October 2018 ~ March 2019)
A search engine across the market is hard to achieve since reading over the blockchain can be
hard, and indexing field is almost impossible. We want to create a hybrid solution created across
IPFS and Ethereum to achieve some of the searching task.
Postal services integration
(March 2019 ~ ?)
Disputes will happen often, and we need a way to track deliveries. The blockchain is made for this
use case, and if we work closely with the delivery services, we can offer an efficient tracking
system for our sellers and our buyers.