Grant Proposal: CoWs (Coincidences of Wants) Analytics Dashboard

CowDAO Grant Application: CoWs Analytics Dashboard


Grant Title:
CoWs (Coincidences of Wants) Detection and Analytics Dashboard


Author:
Aziz Aiden (gh: 0xaiden / tw: aiden0x4)
Lokp Ray (gh: raymond2338 / tw: lokpray)


About You:
Aiden (aiden0x4):

  • Ventures Engineer at IEX Exchange and Member at HydraVentures
  • Prev: Technical BD at Near; Data Engineer @ The Block; Technical contributor at IndexCoop

Lokp (lokpray):

  • Research developer @ NEAR + Ref Finance
  • Prev: Research @ Nethermind
  • Course Staff for DeFi course at UC Berkeley

Additional Links:
Github
Twitter


Grant Category:
Analytics
Research


Grant Description:
We would like to develop an advanced CoW (Coincidence of Wants) dashboard to provide a more accurate measure of CoWs. The dashboard will serve as a tool for protocol users to visualize the CoWs that are happening on-chain in real-time. It will provide users with an overview of the latest batch auctions, the assets involved, and the prices at which they were traded. Additionally, the dashboard will display the Coincidence of Wants that occurred in each batch. Some of the metrics that we could display to analyze CoWs include (but are not limited to): CoW Occurrence Rate, CoW Volume Share, Popular Token Pairs in CoWs, …)


Grant Goals and impact:
The end goal is to increase CoWs in batch auctions and improve our understanding of them. This will be achieved by developing a tool that can accurately detect CoWs, provide detailed analysis of their impact, and generate insights that can be used to capitalize on them. The tool will be useful for both novice and experienced cowswap users and investors, and will support us and the community in developing and researching new ideas to capitalize on CoWs, which could potentially lead to increased liquidity and reduced costs for traders.


Milestones:

  1. Research and develop algorithms to detect and extracts CoWs in Batch Auctions (1 - 2 weeks).
  2. Test the algorithms on historical data and fine-tune them for accuracy (0 - 1 week)
  3. Develop the CoW Analytics dashboard and add the visualizations (1 week)
  4. Testing, bug fixing, and deployment (1 week)

Grant Timeline:
We expect the grant to be completed within one month


Funding Request:
We ask for $15,000 to fund this grant proposal.


Budget Breakdown:
The funds will go towards labor cost. (We ask for 50% upfront payment, 50% on delivery)


Gnosis Chain Address (to receive the grant):
0xd819efc646e5f31EC83ea0E6234102165c1b6c21


Referral:
@bh2smith


Terms and conditions:
By applying for this grant, I agree to be bound by the CowDAO Participation Agreement and the COWDAO Grant Terms and Conditions.

4 Likes

I support this proposal. Providing users the ability to visualize the CoWs on-chain in real-time is a great idea.

Hi @aiden,
Firstly, sorry that it’s taken a while for the Grants team to get back to you. Sometimes life gets busy - if you want to hurry things along, you’re very welcome to ping us directly in the Discord to let us know that something is afoot!

Having said this, I too signal my inclination to supporting this grant - conditional on the below:

  1. Can you please elaborate on the budget requirements, and how these are to be distributed (nominally in terms of man-weeks / man-days so that we get a better idea with respect to hourly rates etc.
  2. Can you please elaborate on how these dashboards are to be built (platform / SDK to be used), and how these will be presented to the consumers of said data.

The accurate visualisation / understanding of CoWs are critical in conveying CoW’s core value proposition!

1 Like

Thank you for your support, @mfw78 and @netrunner.eth! We appreciate your interest in our proposal. Here are our responses to your questions:

  1. The budget allocated is to cover the costs of two developers working part-time (25 hours weekly) for the duration of the project, which comes out to around $75 per hour.

  2. The dashboard will be built using modern technologies, and we plan to either use Streamlit or a React frontend with data visualization libraries like D3.js. On the backend side, we plan to extract the raw data for the batch orders through the Cow subgraph and applying the logic to extract the CoWs values from each batch. We expect this to be faster than getting the data from Dune or Flipside or similar providers, as their latency is usually higher (>3 mins).

The dashboard will display the data in an easy-to-understand format, with tables and graphs that show the latest batch auctions, assets involved, and the prices at which they were traded. Users will also be able to filter the data based on different metrics to analyse the CoWs, such as the Occurrence Rate and Volume Share.

We also plan to make the dashboard open source, and document the algorithm used for extracting the CoWs value, so that other developers can easily build upon it.

Thanks for elaborating on these points @aiden and clarifying a few things. Just to be clear - all code for the system will be open source, yes?

Yes, all the code for the dashboard will be open source and available on GitHub. Community members will be able to suggest changes, and contribute to it, or host their own versions of the dashboard if they want to.

In order for clarity, as I see the dashboard as a “front-end” component (there’s other components that include the subgraph queries you mention) - is this “back-end” component as well to be made open-source?

tl;dr - Can any developer replicate 100% the system you’re creating using the code that you open source?

2 Likes

That’s correct, @mfw78. All parts of the dashboard (frontend to visualise the data, and the backend to process it) along with the necessary subgraph queries are going to be published and open-sourced.
Any developer should be able to replicate the entire dashboard and build upon our work, and host their own versions of the dashboard if they wish.

Cool, while we have the scope aligned, next comes remuneration. In order to ensure incentive alignment, it is generally viewed more favorably by the Grants Committee if a portion of the grant is funded with $COW.

Would you be open to taking partial payment in $COW on a vesting basis?

We’re looking to build a long-term relationship with the Cowswap community. We’re definitely open to receive part of the grant in $COW. Going through past grants on the forum, I’d suggest 30% of the grant to be disbursed in $COW with a 3 month vesting schedule. Let me know what you think @mfw78

I do not believe a vesting schedule is required for the amount requested. I look forward to seeing what the other committee members think.

I agree, adding a vesting here seems a bit much when we’re just talking about $4.5k in $COW (if the 30% proposed remains) and as the grantees have expressed their desire to build a long term relationship with Cow Protocol.

1 Like

Hi @aiden, after reviewing the committee’s feedback, how about:

  1. 5K xDAI up-front.
  2. 5K xDAI + 62.5K $COW, paid on completion.

There’s a little extra in there to allow for some minor price fluctuations, and to keep numbers nice and round. Can I please get a temperature check from the committee on this?

Those numbers sound good to me. Happy to move forward if the rest of the committee is on board.

2 Likes

I support this proposal. Happy to take this to a vote.

2 Likes

Proposal is up for the committee to vote on!
https://snapshot.org/#/cowgrants.eth/proposal/0x2da46498c21d32064370c1e3d4c80800f2fc9dd130daa0a95a406a9fe2bbf3c5

1 Like

The grant was approved :tada:

The grant committee will process the upfront payment in the next payment cycle (beginning of May)

We would like to ask for frequent updates on the progress and design decision so the committee and community will have the opportunity to provide input.

Also wanted to mention this RFP (Request for proposal - link) which should give some background info on potential ways to detect CoWs. It would be great if you can add to the grant scope to expose those API endpoints for detecting CoWs which could be very useful for several use cases

Thank you the update @middleway.eth. We’re excited to get started on this and will make sure to keep the community informed through regular updates in this thread.

Regarding the API endpoints, we plan for the frontend to be polling the backend to get the latest batch auctions and CoWs. We can add the API endpoints to our docs with instructions for accessing and utilizing them but we might need to rate limit them to avoid overloading the servers. People who need it for more frequent checks can also run their own instance.

I couldn’t access the RFP link, it redirects to a restricted Notion page, would it be possible to update the access permissions? Thanks!

Community update

Update on the progress of the CoW Dashboard: The backend repository has been published at https://github.com/function03-labs/CowSwap-CoWiness, It includes an API for visualizing the Coincidence of Wants (CoW) of settled batch auctions, and an ETL pipeline for ingesting batch auctions data from the Cow Subgraph and storing it in a database. These components will be powering the frontend.

Regarding the algorithm to search for CoWs, the backend code takes a batch auction transaction as input and analyzes the interaction and transfer emitted events to extract incoming and outgoing volume. It then computes the volume of tokens traded, and calculates the “Cow Index” using the total USD volume of tokens traded in and out of the transaction.

For those interested in the technical details, the backend is written in Python 3.7 and uses various libraries such as Web3.py, Pymongo, and Flask/Flask restx to power the API. The code is documented and users can deploy the components following the outlined steps.

In terms of timeline, we’re on track to release the frontend and dashboard within the next two weeks.

4 Likes

Exciting news!!

We are thrilled to introduce CowTools.info! An intuitive and friendly dashboard designed to visualize Coincidence of Wants (CoWs) in batch auctions as they happen on-chain, in real-time! Our team has worked diligently to provide the Cow-mmunity with a comprehensive and insightful tool to understand Batch auctions better and the impact of CoWs on their orders. :rocket:

Some of the features of CowTools include:

  1. Live overview of the latest batch auctions, their corresponding assets, trades, and CoWiness % :bar_chart:.
  2. Weekly and Daily CoW Volume charts :chart_with_upwards_trend:.
  3. A search functionality to input a batch tx hash and view its CoWs :mag:.
  4. Unique, shareable auction pages (e.g., Batch 0x5f04759c072322403da01cd88605a469716154526a9074c295db43c7665b78ef | CowTools - CowTools) :link:.
  5. A daily leaderboard showcasing auctions with the highest CoWs in traded volume :trophy:.
  6. A fully integrated API for one-call CoWs queries (https://api.cowtools.info) :satellite:.
  7. A more advanced API endpoint to extract externalized/internalized volume data from batch auctions.

We want to emphasize that the development of the dashboard is an ongoing effort, and we have open-sourced and documented our work. You can find the backend (API and Batch Txs ingestion script) at GitHub - function03-labs/CowSwap-CoWiness: CowSwap CoWiness API and ETL, and the Frontend is available at GitHub - function03-labs/CowTools.info: CowTools Frontend.

Don’t hesitate to share your feedback, comments, and suggestions below. We’d love to hear your thoughts and ideas for future features!

4 Likes