Hello from (some of) the Melon team!

As of August 15th, 2017 it has been 6 months exactly since Melonport started its first contribution period. We’re very pleased to say that a great deal of progress in our mission to build the Melon protocol and its supporting technologies has been made since then! The objective of this post is to review the progress made and give a complete update for those interested in the current state of Melon’s development and it’s growing ecosystem.

Development

Let us begin with the most important part. Since the release of the alpha versions of the Melon protocol and Portal back in February, a great many improvements have been made. We’re pleased to announce that we are in many ways ahead of the original 2 year schedule we provided in the Melon specification documents.

Protocol

Since the start of the contribution period, there have been two major releases of the core Melon protocol (v0.1.0 and v0.2.0 — v0.3.0 coming soon!). These releases have seen large leaps forward in terms of Melon’s stability, efficiency and capability. They also include module templates for the following classes:

Data Feeds

Since February we have already integrated two external ecosystem players renowned in the field of data feeds when it comes to crypto. These are Oraclize and CryptoCompare. We are working on further exciting integrations here to be announced in coming months!

Universe

We have now integrated a total of eighteen ERC20 tokens in the Melon universe of assets.

Risk Management (function signatures)

As per our v0.2 release, the risk management module only allows “take orders” prohibiting “make orders”. This functionality was built in to ensure that managers were only able to trade at the “reference price” brought to you by Cryptocompare by default.

We are currently working on our v0.3 release which will include a more sophisticated version of risk management. As a teaser we will be looking to take asset pair liquidity, market impact and best execution into consideration whilst enabling “make orders”.

Exchanges

We built our very own liquidity provider — The Daemon, upon which we kept iterating over and over. We refined spread occurrence and width, and modified the way Daemon handles the process of replacing existing orders with new ones, in an effort to have better consistency of orders frequency.

We made the necessary changes for Daemon to provide liquidity for the new assets available and redesigned some processes to make it more straight-forward in the future to add new assets.

As we think of moving from the test-net, to the main-net, our first integration is planned with decentralized exchange OasisDex. Following that, we plan to integrate with decentralised exchanges such as 0x and even link up to centralized exchanges too! For more information on that, read Reto Trinkler’s upcoming blog on Melon and exchanges!

Rewards (Management and Performance rewards)

Since rewards is pretty standard as a contract, we have decided it probably doesn’t warrant a module class in itself. Instead we have decided to create a template design where managers can just plug in the management and performance fees they desire at the fund set up process.

Participation (function signatures)

Initially, we started off by designing participation as a “slice”. The thinking behind that was that we could have a participation mechanism which is independent of price. We still like this mechanism and it will probably continue to be an option. We found that it might be a little impractical for some types of users and slightly on the user unfriendly side. As we iterated other solutions, we came up with another solution!

The latest solution involves using MLN as a native usage token in the protocol (wow!) and modified some subscribe/redeem functionality. In order for subscribe to happen simply and securely, it is necessary to participate by using MLN. For more information, please read our most recent Participation blog by Travis Jacobs.

In addition to this, we have added a minimal whitelisting implementation for fund managers who want control over who is able to invest in their fund.

Testing

We have added a range of tests to the protocol, along with a coverage tracker enabling better visibility on our codebase coverage.

We also added a Logging contract, in an effort to gather all relevant vault events in the same contract. This will enhance performance on the front-end by making it more convenient to listen for any vault related events.

Performance

We are currently working on a suite of customised solidity contracts that make parsing the blockchain more efficient.

Audits

We started our audit journey with Martin Swende of the Ethereum Foundation earlier this year. However, given how fast we were iterating the protocol we decided to postpone further audits until the code was at or closer to a mainnet release version. We now feel that we are almost there.

In light of that, we are lining up a follow-up series of comprehensive audits starting at the end of the month. More information on these to follow soon!

Security

In preparation for a code audit, we have focused on some security elements and how best to mitigate the impact of dishonest behaviour termed Proof of Embezzlement more to follow soon.

On top of the above, new additions to the Melon protocol infrastructure include a first take on governance and on-chain versioning which means we already started work on the governance six months ahead of schedule!

It was the latest version of the Melon protocol (v0.2.0) which was used successfully in our First Melon Manager Competition. More on that below.

Portal

The Portal has come on leaps and bounds since the contribution period. We’ve had two large releases since then, with v0.2.0 being the latest. Though it still an early release, it is quite feature complete and provides us with everything we need to begin the Melon Manager Competition series as previously mentioned.

The current release allows the following:

1. Create a fund (in ERC20 format) and invest upon it’s creation. For this version, you can only invest in your fund once.

2. Trade using the first Melon Universe Module which is now live with eighteen ERC20assets (ETH, BTC, MLN, EUR, REP, GNO, GNT, ICN, ANT, BAT, BNT, SNT, ETC, LTC, DOGE, AVT, XRP and SNGLS). Trades history is visible on kovan.etherscan.io.

3. Monitor prices of these assets using the first data feed module brought to you by Cryptocompare and Oraclize using native proofs.

4. Calculate fund/share prices as well as NAV in real time (assuming for this version zero management and performance fees).

5. Redeem and annihilate shares in your fund at any time (using redeem).

6. Trade on our exchange against our liquidity provider, which tracks real prices and provides continuous bids and asks (liquidity) at current market prices.

7. Generate a real, stored track record on Kovan secured by the integrity of Kovan’s authorities.

Melon.js

Melon.js is a JavaScript API being built for the Melon protocol. It’s a convenient interface to our smart contracts that will help developers of white-labeled portals or trading bots to get their instance of Melon up and running in minutes. This is still a very new internal project and we hope to release a detailed technical blogpost on it soon.

Satellite

Satellite is a module registry for Melon modules. The project will ultimately be a user interface with the ability to register and browse third-party modules, along with auxiliary functions to interact with entries in the registry. Concretely, the community effect of Satellite would be to ease interactions between module creators and module users.

It can be accessed through a web interface, and you could think of it like the Google Play Store, but for portfolio components. Just put the pieces you want in your proverbial shopping basket and walk out with that new, tailored fund.

Developers can imagine Satellite as analogous to PyPi or NPM, where modules can be published and consumed, while descriptions, statistics and other goodies are presented alongside each entry in the registry.

It’s still at a very early stage of its development, but you can keep track of its progress over on the Satellite Github page. We hope to have the first release of Satellite available in the next couple of months.

Oyente

The Oyente project started as an academic paper released by National University of Singapore Ph.D. student Loi Luu and a group of his peers. After an initial open source release of Oyente covering ~80% of EVM opcodes, funding unfortunately depleted, and the maintenance of the Oyente project was put on hold. Following Melonport’s contribution period in February 2017, the Melonport team identified the potential of Oyente to greatly augment the Ethereum developer community’s ability to create safe and secure decentralized applications.

Oyente is a symbolic execution based analyser for Ethereum smart contracts. It is a tool to analyze Ethereum smart contracts directly at the EVM bytecode level and look for potential security issues.

Specifically, the Melon protocol module ecosystem’s security and standardization can be greatly improved by usage of the tool. The first Beta release was Kent Ridge v0.1.0. After an additional 7 months of hard work by the Oyente and Melonport developer teams, Oyente’s v0.2.0 — OneNorth was released — now covering 100% of EVM opcodes and had a plethora of other useful tools in the works such as ERC20 support. v0.2.6 — Buona Vista was released today with more bug fixes and efficiency gains. It’s currently on it’s second release since coming under the Melon umbrella and now has much better documentation, easy install and an optimized reentrancy detection function.

The Melon Token and its functionality

There have been a couple of changes to the Melon functionality recently:

To update, the token as it stands today has below mentioned main functionalities:

Political functionality which enables token holders to elect council members. Elected council members will take future decisions on adding, modifying or removing anything in the protocol. More information on the governance around this will be released in Phase III of Melon project. With regard to participation, we have tried to make an easier alternative available to our users. Previously, participation required invest / redeem to happen as a “slice” of the portfolio. Whilst we found this solution both secure and elegant, we decided that it might not be the most user friendly approach. As an alternative, we have decided that participating (subscribing) to Melon funds using a single token can simplify things whilst keeping things secure and elegant. Our latest work, uses MLN as the default token when subscribing to new funds. This helps to bootstrap the usage of the token and provides a consistent and more user-friendly onboarding experience. The protocol is free to use. Council members may one day elect to introduce fees but we believe this won’t be necessary. With regards to inflation — we have significantly down-scaled our expectations on inflation for the Melon token due to the overall increase in value within the cryptocurrency world. We now expect to have a maximum inflation of 10% per year going towards module developers. The inflation rate may also be as low as zero. Again, this falls under governance and will be finalized in Phase III of the Melon project.

Aesthetic Design

Beyond the standard excellent work going into our collaterals, website and branding design, we’ve also recently released a blogpost on Blocks: A UI Pattern Library for Melon. At Melonport, we believe that a good product is a one that follows a formulated pattern that a user can easily get used to. With open source software development, the pattern itself can be shared as a library that contains elements, visual design queues as well as rules made to ensure consistent design throughout applications and collaterals. This line of thinking is what led us to the creation of Blocks.

Blocks is built out of the Sketch app, Git and React. As a design system it will allow us to reduce misconceptions and differing interpretations among team members. Future development speed will be increased thanks to the availability of ready-to-use elements within the design library.

Hiring

Time to give some limelight to the incredible people who’ve joined us on our journey since February! Before the contribution period, Mona El Isa and Reto Trinkler (Melonport Founders) spent their time focusing on putting together the Melon Green Paper, working hard to build out the early proof of concept of the Melon Protocol itself and the Smart Contract Contribution System that would allow Melonport to fund Melon’s continued development. Following the successful contribution period, it was of course time to start growing the team with the very best talent we could find.

George Hallam was first to join us just before the start of the contribution period to augment Mona’s efforts around business development, community building and evangelism. Ahmad Afandi joined very shortly after after having deeply impressed us with his exceptional work ethic and high quality design skills as a contractor.

Jenna Zenk and Simon Emanuel Schmid were next to join the Melon team as part of the front end developer team, focusing on building out the Portal. We met Jenna at Edcon in Paris (February 2017) and following a long chat about her past experience at several well known hedge funds and a demonstration of excellent her programming skills, we knew immediately that she would be a wonderful addition to the team. Simon was introduced to us by renowned Rockstar Recruiting AG. It was immediately clear from his resume that his level of skill, competence and wisdom in front end development would make him the perfect person head up the Melon Portal’s development moving forward.

Shortly afterwards we found Travis Jacobs in the frozen wastes of Canada (so he’ll be well suited to winter in Zug!) after he’d reached out to learn more about what we were aiming to build and how he could be involved in making it happen. After some intense wrangling with Swiss international work visas (a process that we’re happy to say should get easier in the future but thanks to the open minded and forward-thinking Swiss government officials we were able to bring him across the pond to our HQ in Zug where he now works closely with Reto on the smart contracts that make up the Melon protocol, Satellite and surrounding infrastructure.

The team continues to grow slowly, but surely.

Events

We’ve been working hard to attend, present at and create as many social opportunities as possible to help carry our message to all corners of the world.

Meetups

Since the contribution period we’ve been running monthly meetups in both London and Switzerland. We now have over 400 registered members, and we’re happy to say the events have proven to be wonderfully useful and we look forward to growing them further and setting up more international meetups around the world. Reto presented at several Ethereum Meetups on his brief Asia/US tour (Singapore with Digix Global, Silicon Valley with Dr. Christian Peel etc), and George and Mona have been presenting in person/skyping in at several others such as the Ethereum Cape Town meetup and the Ethereum London Meetup.

M-0

In July we were proud to announce M-0: The first Swiss blockchain conference for asset management. M-0 will run on the 17th & 18th of October 2017, and our intention for the event is to create an opportunity for attendees to meet with pioneering groups and individuals who are working on game-changing technologies that will change the asset management world we know today. We’ll also be making some rather major announcements on Melon’s continued progress and adoption, so if you aren’t able to make it in person be sure to keep an eye out for the news!

Future

We only just started. We are conscious that a lot has changed from our original Green Paper (be sure to keep an eye out for our upcoming Cyan Paper!). Our thinking has evolved daily, we have tried all the things we set out to do. Some worked, some didn’t -> where it didn’t work we kept iterating and iterating. We are constantly striving to bring you the best functional and secure product as always wrapped in a beautiful user interface.

In the coming weeks, we hope to release the following;