Q1 2022 Summary Report — Manifold Finance
Manifold Finance - Connect to DeFi Opportunities

Q1 2022 Summary Report

April 2022 update


9 min readChangelog

Q1 Summary

Q1 Summary Report is published before our Q2 Guidance report in which we will outline key objectives and milestones that ought to be realized within that fiscal quarter.

In the first quarter of 2022 two major actions were taken that impacted us the most, these actions where:

  • Rewriting the entire Internal Virtual Mempool, Trade Engine and Executor from 0

  • Restructuring of organizational structure and operations

I originally proposed this as a way of us being able to compare our existing implementation against a less 'bespoke' solution. Our original implementation utilized kdb+, a highly-performant in-memory database engine with a APL language called 'q' that is used for querying, transforming, executing, etc against the database. The issue really with kdb+ was its lack of open source developer community (we had rationalized this away by having support from First Derivatives, the company behind kdb+ and q), and (at the time) its lack of external language support (NOTE: kdb+ and q now support Python without performance loss, this only came out in March 2022). Furthermore, we of course had to develop our own toolin for EVM specifics, below are three libraries written in C and q specifically for making the EVM play nice with kdb+

  • https://github.com/manifoldfinance/qQuarticRoots

  • https://github.com/manifoldfinance/qBigInt

  • https://github.com/manifoldfinance/qAbiEncode

By framing the 'rewrite' as a way to benchmark our existing solution it wouldn't be seen as a time sink, rather an important piece of kit that we could use in negotiations vis a vie the licenses for kdb+.

6 weeks later, the changes are unambiguous. The original reason we had chosen to go with kdb+ is because we had seen it more as a liquidation engine than an arbitrage engine. We are also grateful for our new engineering peers, Antony and Jörg for without them, it would not have been made to look so easy.

In December, I decided to step-down as CEO because of two reasons:

1: The role of CEO at the scaling phase is much different from at the founding/incubation phase. It is much more bizdev oriented. 2: With a high-profile CEO we could have an easier time finding talent, integrations, investors, etc. A social media presence is a must ontop of having industry 'clout'.

The first reason is really informed by the fact that Ethereum Proof of Stake would be coming in late 2022 early 2023, and if we were to position ourselves such that we can leverage the impending 'triple halvening' and other PoS effects, having a dedicated technical point person would be necessary. These types of roles are also hard to fill as the payoff very far in the future, which may or may not be realized in the end.

The second reason really speaks volumes of the state of head-hunting and our industry as a whole. Talented engineers are not strictly motivated by monetary compensation. Interesting problems, conducive work environments can go a long way, but in the end I have seen that associations with popular people really do matter. Yes, what I really am saying is it is, in fact, more important to be liked than to be right. Also, working with well known people give a certain prestige and more importantly, provides a much greater surface area for networking.

However, the only way to attract these types of high-value and high-impact people are only at the senior most roles. Also, it can not be seen that they are not in control: the reigns have to be given to them, wholeheartedly. So, stepping down as the CEO as founder is a non-trivial ask, but at the end of the day the success of the organization must come before any perceived ego. I know this was the right decision because within a week of making it we had found the 'missing link'.

There is no more CEO role, and its important to be recognizing that. We are in a particular moment in time, witnessing a new area of computer science blossom before our eyes in real time. We can't expect that the well-established parts of operational management and theory will be the key ingredients (again) in making a firm successful.

Future generations of computer scientists, engineers, traders, etc, will be jealous of the opportunity we have to get in on the first floor of this new area—analogous to getting into the Internet and the Web in the early 1990s. It only makes sense that we take this opportunity and go with it.

While we had been rewriting the OpenMEV business logic (the virtual mempool and arbitrage engine), we actually have been able to expand the usage of the aggregation layer for flashbots-enabled mining pools. This has lead to identifying the non-OpenMEV part of the infrastructure as SecureRPC.

above: Grafana dashboard showing the 'arbitrage' pane

SecureRPC offers transaction routing to selected mining pools, all flashbots enabled mining pools, or simply just to all of our downstream endpoints. This is useful for trading firms who are trying to execute trades on certain trading pairs that are filtered out of the gateway (read: they are rejected), wanting to reduce uncle/orphan rate of their transactions, or implement some other MEV-protected use case.


Over the last 2 weeks we have solidified and fixed numerous issues with Sushi's frontend. These issues were preventing Sushi from actually running SushiGuard on the application by default. That is no longer the case anymore. SushiGuard is now on-by-default. Alot of these issues fell into two categories:

  • Poor gas pricing on the user-side leading to too low of priced transactions. This is fixed, with a more substantive solution being finalized within the next week.

  • Poor error reporting and the inability to provide meaningful error messages back to end users.

For the error reporting issues, part of this was infrastructure and part was frontend. We are now able to populate error messages from wherever the transaction is having an issue, meaning directly from the mining pool gateway that is rejecting the submitted transactions.

see https://github.com/manifoldfinance/libsushi/blob/master/src/core/isTransactionState.ts

Our Transaction State status messages are derived from the flashbots status API specification.

  • UNCHECKED -> Tx status has not been checked and there's no information about it.

  • PROCESSING -> Tx checks are in place until a resolution happens: OK, INDETERMINATE, ERROR.

  • OK -> Relay received the Tx && all downstream miners accepted without complains && tx mined successfully

  • INDETERMINATE -> Relay received correctly the Tx && at least one miner accepted the TX && TX potentially mineable

  • ERROR -> Relay haven't received the TX || none of the miners accepted the Tx || Tx was not mined successfully

We are also redesigning our initial SDK and libraries. For a example, a reference library, libsushi exists. The preliminary code can be found via https://github.com/manifoldfinance/libsushi

On the strategy side, we are developing in tandem with StakingV2 (we need a better name) BentoVault strategies. These revenue sharing strategies will be porting existing Yearn strategies to BentoVault that utilize $SUSHI. The reason for this specific focus first is so that when protocols like Yearn go to harvest, they typically are dumping this tokens over only a few blocks.

For more context on 'BentoVault' see Sushiswap is Omakase; for the OpenMEV Router, see SushiGuard Router Contract Proposal

Sushiswap is Omakase see this INFORMATIVE forum post on sushi's forums

SushiGuard Router Contract see this PROPOSED forum post on sushi's forums

This summary is not intended to be comprehensive

Although the material contained in this website was prepared based on information from public and private sources that CommodityStream LLC
and/or Manifold Finance, Inc believes to be reliable, no representation, warranty or undertaking, stated or implied, is given as to the accuracy of the information contained herein, CommodityStream LLC and/or Manifold Finance, Inc expressly disclaims any liability for the accuracy and completeness of information contained in this website and/or social media posting.

This website is distributed for general informational and educational purposes only and is not intended to constitute legal, tax, accounting or investment advice. The information, opinions and views contained herein have not been tailored to the investment objectives of any one individual, are current only as of the date hereof and may be subject to change at any time without prior notice. CommodityStream LLC and/or Manifold Finance, Inc and/or Manifold Finance, Inc does not have any obligation to provide revised opinions in the event of changed circumstances. All investment strategies and investments i nvolve risk of loss. Nothing contained in this website should be construed as investment advice. Any reference to an investment’s past or potential performance is not, and should not be construed as, a recommendation or as a guarantee of any specific outcome or profit.

Any ideas or strategies discussed herein should not be undertaken by any individual without prior consultation with a financial professional for the purpose of assessing whether the ideas or strategies that are discussed are suitable to you based on your own personal financial objectives, needs and risk tolerance. CommodityStream LLC and/or Manifold Finance, Inc expressly disclaims any liability or loss incurred by any person who acts on the information, ideas or strategies discussed herein.

The information contained herein is not, and shall not constitute an offer to sell, a solicitation of an offer to buy or an offer to purchase any securities, nor should it be deemed to be an offer, or a solicitation of an offer, to purchase or sell any investment product or service.

Share this post on Twitter.