[DRAFT][GF: Phase 1 Proposal] rotki

Project name: rotki

Author name and contact info (please provide a reliable point of contact for the project): lefteris@rotki.com, @lefterisjp in Twitter and TG

I understand that I will be required to provide additional KYC information to the Optimism Foundation to receive this grant: Yes

I understand that I will be expected to following the public grant reporting requirements outlined here: Yes

L2 recipient address: 0x9531C059098e3d194fF87FebB587aB07B30B1306

Which Voting Cycle are you applying for?: Cycle 10

Which sub-committee should review your proposal? (Builders Grants, Growth Experiment Grants): Builders Grants

Project description (please explain how your project works): rotki is an opensource portfolio tracking and accounting tool that thanks to in large part an optimism grant supports Optimism chain completely. Among other things it detects all optimims token balances for all user addresses, pulls all transactions and decodes them into human readable format and then can create an accounting report with PnL for all addresses in a given time period. What’s more all this is done in a local application without storing your data in external server where they can be hacked/leaked or sold to the highest bidder.

Website: https://rotki.com/

Twitter: https://twitter.com/rotkiapp

Discord/Discourse/Community: Rotki

Other relevant links (including any demos): GitHub - rotki/rotki: A portfolio tracking, analytics, accounting and tax reporting application that protects your privacy

Additional team member info (please link): Contributors to rotki/rotki · GitHub

Please link to any previous projects the team has meaningfully contributed to: rotk is a long-running project since 2017 and the team has contributed to it for a long time. Other thant that, the founder (me - Lefteris) has also contributed in multiple ethereum projects since 2014.

Among them are: the C++ Ethereum client, solidity compiler, the DAO, raiden network etc.

Relevant usage metrics (TVL, transactions, volume, unique addresses, etc. Optimism metrics preferred; please link to public sources such as Dune Analytics, etc.): This is not a dapp, so there is no on-chain metrics

Competitors, peers, or similar projects (please link): There is no other opensource and local solution that does what rotki does. There is a ton of SaaS/webapps that do some parts of what we do. Zerion/zapper/debank etc. for portfolio tracking, cointracking, koinly etc. for the accounting part.

Is/will this project be open sourced?: Yes

Optimism native?: No

Date of deployment/expected deployment on Optimism: (Not really deployment but including in production): 2/3/2023

What is the problem statement this proposal hopes to solve for the Optimism ecosystem?: This proposal is for having opensource EVM transaction decoders for various Optimism protocols. Just like with ethereum, there is no opensource library/app/code that can take a bunch of transactions and decode them nicely into human readable format.

With such code available (and rotki is a good example for it) can feed it transactions and have them decoded into a common event format, suitable for human consumption.

So others too can see transactions as nicely as etherscan shows them, or even better depending on the decoded protocol.

How does your proposal offer a value proposition solving the above problem?: We propose to work on those decoders for various protocols (the biggest ones used in Optimism) and have them available in rotki for end-user consumption and also in our codebase in a modular way (that’s already there) so other devs can just use our code in their apps.

Why will this solution be a source of growth for the Optimism ecosystem?: We believe that having opensource code that solves the problem of decoding optimism transactions would help grow the Optimism ecosystem as developer would not need to reinvent the wheel.

Say you want to create a python app/webapp that processes Velodrome, or 1inch optimism transactions. You would need to create code to do that. But not if we implement the decoders.

If we do they can just go to rotki’s codebase and use them. Btw … important to note that we already have some decoders for optimism: rotki/rotkehlchen/chain/optimism/modules at develop · rotki/rotki · GitHub and a lot more for ethereum: rotki/rotkehlchen/chain/ethereum/modules at develop · rotki/rotki · GitHub

Has your project previously applied for an OP grant?: Yes. And it’s been completed: [READY] [GF: Phase 1] rotki - #57 by lefterisjp

In fact this application is building on top of that old grant.

Number of OP tokens requested: 40,000

Did the project apply for or receive OP tokens through the Foundation Partner Fund?: No

If OP tokens were requested from the Foundation Partner Fund, what was the amount?: N/A

How much will your project match in co-incentives? (not required but recommended, when applicable): N/A – we do not have a token

How will the OP tokens be distributed? (please include % allocated to different initiatives such as user rewards/marketing/liquidity mining. Please also include a justification as to why each of these initiatives align with the problem statement this proposal is solving.): 100% allocated to development

Over what period of time will the tokens be distributed for each initiative? Shorter timelines are preferable to longer timelines. Shorter timelines (on the order of weeks) allow teams to quickly demonstrate achievement of milestones, better facilitating additional grants via subsequent proposals: As far as I understand since this is a builder grant there will be a lockup. Once lockup is done, we will use it to pay our developer salaries.

Please clearly define the milestones you expect to achieve in order to receive milestone based installments. Please consider how each milestone relates to incentivizing sustainable usage and liquidity on Optimism. Progress towards each milestone must be trackable: This is a continuous development grant. I would consider each milestone to be a full decoder module implemented, and code being in github.

We would ofcourse continue to support them, debug them, fix bugs and improve them as protocols change.

If I understand correctly since there is a lockup milestones do not really make sense here, but open to discussion with the commitee on what they think is best.

Why will incentivized users and liquidity on Optimism remain after incentives dry up?: there is no incentives. This is just to develop opensource code.

Please provide any additional information that will facilitate accountability (smart contracts addresses relevant to the proposal, relevant organizational wallet addresses, etc.): The only accountability I can imagine in such a grant is the link to our github to see the work being done: GitHub - rotki/rotki: A portfolio tracking, analytics, accounting and tax reporting application that protects your privacy

Confirm you have read and agree to the Eligibility Restrictions (here): I have read the Eligibility Restrictions and agree to abide by their conditions

EDIT: I have added some extra information regarding the proposal in the next post.

3 Likes

After reading the milestone assessment post and speaking with some reviewers I would like to offer some extra information to help with judging the merit of the proposal.

I am adding it as an extra post here since the original post is a copy of the google form used for the application and was not sure if I should edit it.

Milestones

As this proposal is to implement code and decoders for an unspecified number of optimism and integrate them into the rotki code and ship them in released versions of rotki it’s a bit hard to pre-set a set of milestones. It’s to support continuous development of rotki in optimism.

But what we can do is agree on supporting the biggest TVL projects in optimism, seen here which at the moment of writing would include Velodrome, Aave v3, Curve etc. and add more as time passes going from highest to lowest TVL.

Milestones Composition

Supporting means the following for each protocol:

  • Write the opensource decoders for it, decoding as many events as possible. For optimism protocols the code will be located here.
  • Write the frontend code that renders the results for each decoder in the transactions view. Example screenshot:
  • Include them in a release, so that it’s available to the general public and not only developers. Releases are here: Releases · rotki/rotki · GitHub

Quarterly updates

All of this is opensource and in github, even the binaries for all 3 major OSes, but in order to make it easier for the reviewers to judge progress we can do a quarterly report of which optimism protocols were integrated and in which releases they were included for each quarter.

Team Size

This grant is to support the rotki team in developing opensource decoders for various optimism protocols. The team is composed of 8 people right now.

But the funding will go towards supporting the development, so only to the developers. It’s very hard to judge costs since there is an 1 year lockup and as such price of OP can vary greatly.

The rotki team is currently

  • 1 OPs/HR/all non-coding work person.
  • 4 backend developers (including me). They write the opensource code in the backend that integrates the protocols. The backend is the core of the application and where most of the work is.
  • 2 frontend developers. They write the frontend code that displays the results of the decoded transactions, filters for searching etc.
  • 1 designer for the frontend (new addition - just started!)

The team members can be all found here: Contributors to rotki/rotki · GitHub. Along with how much work they do. It’s all open! The power of opensource and working in the open.

The ones included in the team from the link above and towards whom funding would go are: lefterisjp (B), kelsos(F), yabirgb(B), lukicenturi(F), nebolax(B), prettirrelevant(B). B stands for backend and F for frontend.

Attracting more developers to optimism

Naturally one of the main point of these grants is to also attract more developers to Optimism. As these protocols decoders are open other users can integrate them in their projects. The only requirement is that they use python.

There is projects that already do that and are based on rotki’s code. One prime example is buchfink: GitHub - coinyon/buchfink: Plaintext Crypto Portfolio

With having optimism well supported with a rich set of transaction decoders for its protocols this could attract more python developers to Optimism as opposed to other L2s or chains.

1 Like

Quarterly report for 15 June 2023

As per the grant requirements I am making the first of 4 quarterly reports. The work that has been done in Optimism for rotki so far since the grant was confirmed as awarded.

Better support for UI/UX for optimism users and bugfixes

Our users reported multiple bugs with the optimism integration and with how some things looked like for multiple EVM chains which have now been fixed and shipped: Issues · rotki/rotki · GitHub

Decoding of optimism governance events

Special decoders were implemented to show governance votes in optimism in human readable format.

Hop events

Hope bridging events for optimism are better recognized

Automatic detection of optimism addies

If an address is tracked in mainnet and is not tracked for optimism but has activity there, rotki will now automatically detect it and add it to optimism for tracking.

Fngm2TOWQAIdoeO

Velodrome

Started work on the implementation of the velodrome integration.

2 Likes

Quarterly Report for 15 September 2023

As per the grant requirements I am making the second of 4 quarterly reports. The work that has been done in Optimism for rotki so far since the grant was confirmed as awarded.

Continuous optimism support

We continuously iterate on bugs and improvements on our optimism support as our users are using rotki in optimism and askign for tweaks, fixes or new features.

Proper decoding of gas fees in optimism

rotki was not taking into account the l1 part of the gas fees. This has now changed and the full calculation including l1 fees is made: https://github.com/rotki/rotki/pull/6359

Supporting of safe in optimism

Gnosis safe transactions for creating, updating, editing gnosis safes are decoded properly in Optimism. Also all safe multisig transactions are now properly shown.

Supporting of gitcoin grants allo protocol in optimism

Gitcoin grants allo protocol (also known as gitcoin v2) is running rounds in optimism. Optimism users both on the donating but also on the grantee side can now see all of their donation related or grant creation/application related transactions

Velodrome

Velodrome support is ongoing and first PR is already made: Adds velodrome data to globaldb cache by dimyG · Pull Request #6576 · rotki/rotki · GitHub

2 Likes

Quartery report for 15 December 2023

As per the grant requirements I am making the third of 4 quarterly reports. The work that has been done in Optimism for rotki so far since the grant was confirmed as awarded.

Full velodrome support

We are really proud to finally announce that full Velodrome support has been rolled out with release 1.31.0.

What this means is that for all Optimism addresses the user has in rotki:

  1. All velodrome events will be properly decoded as velodrome related events and be shown in a human readable format.
  2. rotki will be constantly querying all velodrome pools and gauges to find out for newly deployed pools/gauges
  3. Any balance locked in either a velodrome pool or a gauge will be auto-detected and shown in the dashboard as balance to the user
  4. All of the velodrome related activity we be properly taken into account during PnL accounting

Base Chain

rotki does not stop only on Optimism but also focuses on the superchain ecosystem. To that end we have added full supported for Base.

What this means is that:

  1. For all tracked addresses, if they have had any activity in Base they will be automatically added for tracking in Base.
  2. All balances of ETH and tokens in Base will be detected and shown to the user
  3. All Base transactions that touch the user’s addresses will be pulled, decoded in human readable format and shown to the user in the history section.
  4. All such events will also be taken into account during the PnL reporting and accounting.

Ethereum attestation service

The Ethereum attestation service in now supported for both Optimism and Base.

What this means is that any attestations any users may perform onchain are now properly decoded as such and shown to the user in a human readable format as shown in the screenshot in the history section. They contain a link to the easscan website where the user can find more information for each attestation.

Optimism bridge 2-step decoding support

The OP mainnet bridge had introduced a 2-step withdrawals process: Increasing Confidence in the OP Mainnet Bridge with Two-Step Withdrawals

This was not decoded properly in rotki and was confusing to the users. So we created proper decoders for this 2-step process: Decoder for optimism bridge 2-step withdrawal process by LefterisJP · Pull Request #6585 · rotki/rotki · GitHub

Bug fixing and improvements

We have fixed various bugs users reported related to optimism/superchain and also thanks to feedback of our users we have made many smaller improvements related to the integration.

3 Likes

Quarterly Report for 15 March 2023

The grant has been paid but we are still gonna write a small report of our work since the last post and our plan for continued development.

Aerodrome support

Much like velodrome is in Optimism, we have rolled out full support for Aerodrome in Base chain.

Aerodrome Pool balance should now be automatically detected, and any aerodrome transactions should be properly decoded in the EVM Events history view.

Paraswap support

Paraswap swaps are now properly understood and decoded in rotki’s history events view for Optimism and other EVM chains.

Metamask swaps support

Metamask swaps are now supported in Optimism

Bug fixes

We have fixed various bugs users reported related to optimism/superchain and also thanks to feedback of our users we have made many smaller improvements related to the integration.


Conclusion

This concludes the reports for this Optimism grant for rotki. We will continue buildign for Optimism, Base and the superchain and hope to find ways to get continued support from the Optimism community for our work.

3 Likes