31 Dec 2022
rotki is the opensource portfolio tracker and accounting tool that protects your privacy. It started in 2017 as a small CLI tool to cater for my own portfolio tracking and tax reporting needs as a technical crypto user in Germany. Since then it has grown a lot and into its own project with thousands of users, 100 code contributors and a dedicated and passionate userbase.
Year in review
This post is a look back in the year that passed, recounting what we did at rotki since the start of 2022. We are gonna look at both what happened in the app and the code, but also how did the team itself grow and evolve. I (Lefteris), am writing here using the first person as this is my personal outlook on how rotki grew this year.
We released two rotki patch releases. 1.23.1 and 1.23.2
Also Luki Centuri, the frontend developer who had just joined us at the end of the previous year completed his first month. Our team was finally more than just 3 people!
In February we released another patch release, 1.23.3
And our team kept working dilligently toward making 1.24.0.
In March we released yet another patch release, 1.23.4, making 1.23.xx release series the longest patch release series of 2022.
Also we had our first non-tech hire! Celina joined our team.
Celina has handled all non-developer related tasks such as HR, accounting, all organizational matters and even a bit of communications!
April was a really interesting month as we had two new hires who were onboarded to the backend team.
The first was Isaac.
Isaac is a developer from Nigeria who joined the backend team and has so far helped us with various issues on the backend.
The second was Alexey.
Alexey was our youngest hire, an enthusiastic 18yo developer from Russia who has since helped us with various rotki backend matters.
And the team kept on grinding towards the long awaited 1.24.0 release while at the same time trying to onboard the new hires.
At the end of May we finally managed to release v1.24.0.
That was the biggest release we have ever made (and I hope to not do it again) and contained among others:
- The start of the ethereum transactions decoding
- Kraken staking
- Support for ftx.us
- ens reverse resolution
- ability to manipulate balance snapshots
- uniswap price oracle
In June we released a quick patch release to fix bugs found in 1.24.0
And we also kept grinding and coding towards 1.25.0 and trying to learn how to work as a bigger backend team now that we have had Isaac and Alexey.
July was quite a busy month!
It started with a trip to Barcelona for EthBarcelona where we presented about rotki and the benefits of opensource software.
It was a very moving moment for me as it was the first time I met with Yabir in real life.
We have been working with Yabir since 2021 and getting to see him in the flesh after one and a half year was amazing.
What’s more we got to meet Viktor (left)!
Viktor used to work with rotki for a few months from the end of 2020 until Q2 2021! He is a native of Barcelona and after rotki, he stayed in the crypto field so it was really cool to meet him too in real life!
After Barcelona we released v1.25.0.
It was a French-themed release as we were also heading to Paris for EthCC.
Among others it contained support for:
- Bitcoin cash
- LiFo accounting
- Management of multiple ethereum nodes
- Mac M1 support
- Ethereum address book
- Filtering of ethereum transactions
- Zoom in charts
In July we also travelled to Paris for EthCC where we presented about rotki’s progress and how opensource is a core of what we do.
EthCC is a very important conference for us as it is in EthCC 2019 that I first presented about rotki to an audience.
Both Yabir and Kelsos travelled to Paris for EthCC so this was the first time those two managed to meet in person.
Another really cool meeting in EthCC was meeting with the first user in the wild, jimjim.eth, who used the rotki dappnode package at his home and connected and used it from his mobile phone! rotki mobile was already a reality!
We closed this very busy month with a patch release, 1.25.1, that fixed bugs our users saw with 1.25.0.
Fun fact is that this release was implemented while we were trying to figure out our hotels and flights. That trip to Paris was cursed. Both flights to/from Paris were delayed/canceled and our hotels/airbnbs all presented problems :D
In August, recovering from the busy month of July, we released 1.25.2 that fixed yet more issues and added improvements on top of 1.25.1.
What’s more the team kept working dilligently towards our next big milestone, 1.26.0.
September was also a busy month! Most of the team travelled to Berlin, for the Berlin blokchain week.
We presented at dappcon about rotki and what its strengths are but also what the challenges with making an opensource application are, especially related to funding.
Dappcon was an amazing experience for us as it was the very first time the biggest part of the team was in the same place. We met Alexey in real life for the first time after working together for almost 5 months!
From left to right: Kelsos, Yabir, Lefteris, Celina, Alexey.
We also participated in ETHBerlin 3!
We hacked on various rotki related things and had some workshops.
Also took this chance to enjoy team lunches together, including with Celina :)
Finally we bonded together through the entire event and even met external rotki contributors, like Pablo pictured here on the left.
In September we also released rotki v1.25.3, a bugfix release that was building on top of 1.25.2 adding lots of improvements but also fixing bugs our users found.
October was also a very busy month. Including a major release and the trip to Bogota, for Devcon.
Bogota - EthBogota
Kelsos, Alexey and I flew to Bogota, Colombia to participate in a few events there. First was the EthBogota hackathon
There we met many like-minded hackers, hacked on rotki related issues and tried to get more people involved with rotki. Hackathons are a great place to find new contributors and to shill an opensource project.
Bogota - Schelling point
After that there was an one day event called schelling point, where I participated in a panel
There we discussed about how opensource is a public good, what the challenges are but also what are the benefits. As usual the problem of sustainably funding opensource came up.
Bogota - Devcon
And finally we had our first ethereum devcon in 3 years. It was a very long time since Japan when the last devcon happened.
There I (Lefteris) presented about the modular opensource transaction decoding system we have in rotki and how this can be generalized and used by other applications.
Kelsos also presented about rotki in general, its architecture, our progress and about how opensource is core to what we do.
All in all it was an amazing experience. We met many like-minded people, many rotki users and external contributors and got re-affirmation that what we are building is useful. What’s more we got lots of feedback on things that could improve and have adjusted our future planning accordingly.
Bogota - Team building
Since we were on the other side of the world and we are a remote team, we took this chance to do some team building events. Mostly hikes and sightseeing so we can experience a different location together and create team bonds that will hopefully last for long. In the pictures below first is Lake Guatavita where the legend of El Dorado comes from and second is La Chorrera, the tallest watterfal in Colombia.
Right after coming back from Colombia, we released our latest major release for which we have been working since August, 1.26.0.
This included among others:
- Bitcoin taproot support
- Note taking
- Convex finance support
- Multi-chain assets
- Custom assets and custom prices
- LP balances in the dashboard
November was a hands down and working month. The team was working on 3 things.
- Website Infrastructure
- Bug fixes
- Next major release
And we also released 1.26.1, a release that fixed bugs seen since 1.26.0.
And finally we come to the last month of the year that has not even ended yet.
The team had a lot of deserved time off for the holidays but also worked hard on putting out minor improvements and bug fixes while also working on the upcoming v1.27.0 release.
In December we released two patch releases.
1.26.2 which among many other things replaced the default open ethereum nodes with modern ones which are faster and as such provided a big performance improvement for our ethereum users.
1.26.3 which fixed a lot of bugs our users saw and also provided minor improvements in the user experience.
In general the team is laser focused, as we go in the new year to release 1.27.0 which will, among other things, bring full Optimism support
Looking back at 2022 we did a lot more than I expected we would. Achieved so much but also spent time growing. I think, it’s the year rotki “grew up”. Growing from 3 devs to 6 devs and 1 non-technical person is not a small feat! Neither was it easy. I hope we can continue to build rotki into the tool that you guys want and have a lot of happy users and contributors. Here is to a more productive, more succesful and happier new year 2023!
If you want more info on Rotki:
01 Oct 2020
Updated for 2021 - We are still looking
Rotki is a true startup in the full sense of the word. A side-project trying to grow and get out into the world. At the moment we are a really small team and the issues and feature requests are piling up. Since rotki is opensource we have some help from amazing community volunteers but it’s time to grow the core team beyond 2-3 people. To do that we are looking for a backend developer to work with us and help us create opensource financial tools.
We are looking for a backend developer to help us improve Rotki. You will work mostly with the founder (Lefteris) who is the main developer working in the backend. The task is to help in the development of new features, supporting more exchanges, more blockchains, more DeFi protocols and solving all issues/bugs that are coming our way.
This role is for an experienced developer who can take initiative, does not need constant monitoring and can take on a lot of responsibility. We need someone who can take ownership of a big part of rotki’s backend and help us get it to the next level.
Since this is a startup you will probably wear a lot of hats and may need to also help with the backend/infrastructure of our website and API.
- Excellent command of python.
- Experience in at least another programming language (Go, C/C++, Rust etc.).
- Write tests for features you code and bugs you fix. Not strict TDD, but also not complete absence of tests.
- Very Good technical understanding of Ethereum blockchain, interacting with it, querying it and knowing technical details of how it operates.
- [Optional] Similar knowledge of another blockchain protocol (e.g. Bitcoin).
- [Semi-Optional] Experience in django (should be easy to learn for a python dev).
- [Optional] Understanding of frontend tech used in rotki: Typescript + vue.js + electron.
- [Optional] Good understanding of docker and generally infrastructure related tech pertaining to web servers.
- Don’t be an asshole.
- Be a team player.
- Be an independent thinker and have a proactive can-do attitude. In the start You will be guided for most tasks and there is always going to be mentoring when required but the more you manage to fend off by yourself the smoother the whole team will work. Eventually this job is a for an individual who is both willing and capable to take on a lot of responsibility and take ownership of a big part of the codebase. No hand-holding.
- Be user-minded. The user is king. Everything we implement in Rotki, we do so that our end users are happy and have their problems solved.
- Have excellent English speaking skills.
- [Optional] Be located in Berlin or somewhere close. 2 other full time members of Rotki are here and meeting face to face is valuable.
What we can offer
This position can be for either a half-time (50%) or a full-time (100%) role.
- WFH/Working remotely. We don’t care (as long as we meet up from time to time!) where you live, if you travel all the time, if you are in your underwear when coding etc.
- Flexible working hours. Nobody will count your hours. As long as the output is there and the result is good, we don’t care.
- Opportunity to work with some OGs in the Ethereum and general crypto space.
- Opportunity to work in opensource, have your code visible and running at the systems of the ever-increasing Rotki userbase.
- Potential for equity options in the company.
- Working on a lean and mean team without micromanagement.
How to apply / More Info
Send an email to email@example.com with your CV, a link to your Github profile and a small text about yourself and why you are interested to work with us on Rotki. Please include a link to a project you worked on and are the most proud about. Tell us why that is. If it’s opensource also include a link.
If you want more info on Rotki:
13 Aug 2020
This post explores what is the concept of Decentralized Finance (DeFi), what new possibilities does it unlock and why it’s so cool and hot right now. On the other side of the coin it touches on the dark side of DeFi with the YOLO farming and unaudited contracts most recently highlighted by the YAM fiasco. Finally it takes a look on the road ahead, the lessons that the community needs to learn in order to create sustainable and responsible DeFi for decades to come. Finacial instruments and tools that will not only be used by a few Twitter bros but permisionlessly by everyone around the world.
What is DeFi
In one sentence, decentralized finance is the permissionless decentralized version of various traditional financial instruments such as exchanges, lending, borrowing, synthetic assets e.t.c. There has been a lot of innovation in the sector in the past 2 years.
We have various decentralized exchanges such as:
They all operate in a decentralized way and are non-custodial in stark contrast with centralized exchanges such as Binance, Kraken to which you have to first deposit and give custody of your funds.
There are protocols such as Compound and Aave that allow users to lend their assets to earn interest or to borrow assets after staking some collateral. MakerDAO also offers a form of borrowing via vaults that can mint the DAI stable token after depositing various forms of collateral.
Synthetic asset protocols such as Synthetix or Token Sets combine a mix of different assets into a single asset. This way you can get exposure to multiple different assets by just holding a single synthetic asset.
What new possibilities does DeFi unlock?
What DeFi does is nothing new. All of this already exist in one form or another in the world of “traditional finance”. What is so amazing and revolutionary about DeFi is that it’s completely decentralized and permissionless. And that it is accessible to everyone regardless of location or background. It’s unlocking a ton of possibilities for people around the world, building a new permisionless financial system in the process.
The dark side of DeFi
Just like with everything involving money this sector also attracts short-termed myopic people and projects who are driven by greed.
There is the concept of a yield farmer, someone who provides liquidity or stakes in a protocol in return for interest, fees or some governance token. Yield farming is not bad per se. Everyone who provides liquidity in all the DeFi protocols is essentially yield farming. There is nothing wrong with that.
The bad side of farming is the “DeFi chad” or “Defi Degen”. The kind of meme-driven farmer who jumps from protocol to protocol without any thought on contract safety, chasing the biggest yield, dumping their tokens to the new guys and then moving on. A practice that is obviously unsustainable.
A very good example of the irresponsible approach to DeFi is YAM. An experiment that did not even manage to last 2 days. It launched in 19:00 UTC, August 11th, 2020 and died 36 hours later.
YAM advertised itself as an experiment from the start. It was a mashup of code from various other DeFi projects, completely unaudited and without any safety hatches or deposit limits. For all intents and purposes a completely reckless enterprise. Despite that at its peak it had over $500m locked in it!
For a technical explanation of the bug read their post. In short the bug made it impossible for the YAM holders to reach quorum on anything so essentially the governance part of the protocol was broken and without it the entire protocol could no longer function.
Once people realized that, the market cap of YAM went within minutes from $60m to 0. Everyone left holding YAM they bought took a loss as they can’t sell it, so did uniswap liquidity providers as they took a loss every time someone sold YAM through them.
Could this have been avoided?
There were multiple warnings from many prominet people in the crypto sector including myself that this is going to end in tears. The minimum precaution that could have been taken is:
- Write contract tests
- Have some sort of security audit of the code
- IF you claim it’s an experiment then treat it as such by:
- Putting deposit limits in the code to protect your users
- Put an escape hatch in the code to protect your users.
What’s worse is that from the tokenomics of YAM it was obvious that this was a ponzi game. Note the difference between ponzi game and ponzi scheme as explained in this article.
Every 12 hours the total supply of the token increased but the amount held by each user stayed the same through a process called rebasing. The first farmers were incentivized to pump and shill YAM via social media so they can find victims onto whom to dump their tokens after the rebase. The new holders had the exact same incentives to pump it even more so they can in turn dump their bags onto the poor sods after the second rebase. And so on and so forth.
It was a “fair” and transparent ponzi, but a ponzi nonetheless. And with the amount of due dilligence people do in Crypto I am 100% certain that most of the people who got shilled into it did not realize that and lost money as a result.
What I personally found absolutely disgusting was the incessant amount of shilling of YAM in Twitter by many people in the ethereum community whom I actually respect who were also farming it.
It’s inexcusable, reckless and irresponsible. They were shilling a protocol that had not seen any production use yet, had unaudited code, no tests, no deposit limits or anything. They were doing so only to get more people into the Ponzi game to sustain their profits and dump their bags onto them.
I sincerely hope lessons are now learned. If you are shilling an unaudited insecure ponzi you are part of the problem of why this sector is not taken seriously. We can’t have such irresponsible behavior if we are ever going to reach mass adoption.
What did it cost us?
Some people lost a lot of money
- Marketcap dropped from $60m to $0.
- People who bought YAM are left holding a hot potato, got burned and lost everything they invested.
- Uniswap liquidity providers lost money due to providing liquidity for sellers of a dying token.
- Lots of money in gas fees (300+ gwei) for nothing
The rest of the non yam farming ethereum users were left with 300 gwei gas prices and could not really use the ethereum blockchain.
And finally and most importantly, outsiders roll their eyes and we lose credibility. Every nocoiner I know that I tried to explain this to just get their view that crypto is only for scams and ponzi schemes reinforced. Can you blame them?
Responsible Decentralized Finance
If you are to keep anything from this post as a take-home message let it be this section. DeFi is good and is here to stay. We just all need to be more responsible about it.
Responsible DeFi user
As a user don’t rush into every new thing that pops up and promises amazing 100%+ returns. Do you due dilligence, demand audit reports, ask people in the community about the history and portfolio of the founders of the protocol and if possible read the code and understand the tokenomics. DYOR. If something sounds too good to be true that’s because it’s probably a scam or a ponzi.
Responsible DeFi founder
As a founder/developer for the love of god DO NOT TEST IN PRODUCTION. Be responsible. Users do not heed warnings, or disclaimers. If it’s an experiment and you want to experiment in the mainnet that’s fine. Then put deposit limits and centralized escape hatches for the first X months. The safety of your users is your responsibility. Avoiding that responsbility through the veil of “just an experiment” won’t be accepted.
Towards a sustainable DeFi ecosystem
It is only through responsible development and professionalism that this sector can mature. We won’t get any new users with the YOLO yield farming memes. For DeFi to fullfill its goals of a new permisionless financial system it needs to go mainstream. And it will not achieve that through ponzi games and chad memes in Twitter. This will only be achieved when the ecosystem is perceived by normies to be mature enough so that they can also come in and participante in it. Let’s all then do our part to advance the ecosystem through responsible building and sustainable development and build a new financial system for the many and not for the few.
Closing / About the author
My name is Lefteris Karapetsas. I am the founder of Rotki. It is a project that deals with DeFi, among other things, and believes in the dream of a sustainable permissionless new financial system. We are a portfolio tracker and accounting tool that respect our users’ privacy and we are in this game for the long run and not to scam our users for short term gain.
Here is how you can help us:
- Try out Rotki’s latest release and use it daily.
- Buy a premium subscription to unlock awesome premium features and also support our development.
- Provide us with feedback in the form of bug reports and feature requests.
- Star our Github repo and follow us on Twitter.
- Chat with us and other users of Rotki in Discord or in Telegram.
- Spread the word so that more people get to try and use Rotki and learn how to both manage their finances but also how to protect the privacy of their financial data.