CoW Swap Wallet Proposal

Author:

Ivan Bandaryk (ivan at protofire dot io)

About You:

Protofire has been collaborating with the CoW Protocol team for some time already, as well as we have been a partner of several Gnosis-related projects, since before the DAO was launched. We are proposing to the CoW Swap team and ecosystem the idea of developing a wallet that contains specific features that align with the project’s and users’ specific needs. Examples of projects that we have worked together on the previous years are:

  • CoW Swap DEX: Our team worked alongside the CoW Protocol team on the rebranding, development, and testing of a web trading interface built on top of the CoW Protocol. Protofire has assisted in the development of the SDK, the Explorer, the Batch Viewer integration, UI & UX improvements, and The Graph integration.

  • We have also developed wallets for other projects, such as the Ocean Marketplace wallet - which has been finalized, yet not published by their team. We are currently working on the DAA wallet, which is an app that allows investment advisors to manage the account of their investors by making multisig transactions through Gnosis Safe.

Whitelabel solution: We have developed a whitelabel wallet - ProtoWallet, which will be used in order to reduce the costs of the development of the CoW Swap wallet (‎Protofire Wallet on the App Store).

We will add CoW Swap functionalities to it and customize the UI. In the link below there is a video of the mobile prototype, in which it was recorded a swap made on the Goerli network, totally through CoW Swap functionality. So we are pretty confident in the estimations and feasibility for developing a fully-functional wallet for CoW Swap.

Team of specialists: We have a team of blockchain specialists that have been working only on wallet projects for a few years already, which also reduces the time that could be required on R&D, since we already have the necessary experience to make the development happen.

Grant Category:

Other/misc

Grant Description:

In a nutshell, this is a proposal to develop a mobile wallet for CoW Swap DEX. We aim to provide value for CoW Swap DEX by promoting greater accessibility for users, who will be able to easily use the decentralized exchange in their phones easily, anywhere and at any time. That may promote a greater usage of the CoW Swap DEX, which is expected to translate into a growth in the transaction volume within the DEX.

This proposal should be the first of several phases to develop a high-quality mobile wallet made up of all the features that the CoW Swap application may need.

The first phase is to focus on the Swap feature. Later we will add the profile and the affiliate program, then solvers and transactions information, and then we will implement new improvements based on the website version and maintenance.

We intend on adding new features based on the mobile possibilities such as:

  • User recognition.
  • Notifications connected with the website activities.
  • Website synchronization.

Grant Goals and impact:

Our motivation for the development of the CoW Swap wallet comes from knowing the needs of the CoW Swap DEX and believing that mobile wallet can provide value for the protocol by allowing users to access the DEX unique functionalities from their phones. We know the protocol needs since we have been working with the team for a long time on the development of several aspects of the CoW Swap DEX. We have been working with Gnosis Safe for several years - from development to deployment, upgrades and maintenance, as well as we have developed wallets such as the Ocean Protocol wallet, DAA wallet, etc.

The wallet can promote:

  • Convenience, since users will be able to access their funds and make transactions on the DEX from their wallets.
  • Accessibility, since users will be able to access their funds and information in just one place that they trust.
  • Security, since data is encrypted and the wallet will be developed in accordance with CoW Swap’s own features. Private keys will be stored on the user’s phone in the secure enclave.
  • Upgradability, since functionalities will be able to be extended, given CoW Swap’s users needs, and provided by us given our expertise on wallets.

The code will be open source and will be hosted on Cowswap GitHub.

Milestones:

  • Prototyping (Protofire investments) - already done.
  • Officially published iOS and Android applications in the Apple store and Play market, after the cycle of testing and bug fixing.

Grant Timeline:

Tasks Inital Estimate Current Estimate (with whitelabel solution)
[Project] Set up project (32 hrs): 32 done
- Create project (2x2 hrs) 4
- Set up packages (4x2 hrs) 8
- Resolve dependencies (4x2 hrs) 8
- Set up code signing (app id/certificates/provision) (4x2 hrs) 8
- Run & check correct launch on devices/simulators (2x2 hrs) 4
[Development] Base development (36 hrs): 36 done
- Add storage controller (2x2 hrs) 4
- Add wallet controller (key management) (2x2 hrs) 4
- Add biometrics (4x2 hrs) 8
- Add network (2x2 hrs) 4
- Add blockchain controller (4x2 hrs) 8
- Add multiple networks support (4x2 hrs) 8
[Development] UI/Storyboard (180 hrs): 180 48
- Set up UI structure, navigation (TabBar, switch from initial scene, etc) (16x2 hrs) 32
- Add initial scene (2x2 hrs) 4
- Add “Create account” scene (4x2 hrs) 8 8
- Add “Import account” scene (2x2 hrs) 4 4
- Add “Main wallet” scene (assets, transactions, QR, scan) (16x2 hrs) 32
- Add “Multiple wallets” option (24x2 hrs) 48
- Add “Send assets” + “Review fee” scene (4x2 hrs) 8 8
- Add “Transaction” scene (4x2 hrs) 8
- Add “Backup” scene (2x2 hrs) 4 4
- Add “Networks” scene (4x2 hrs) 8
- Dark mode support/fixes (8x2 hrs) 16 16
- Add “No internet connection” scene and trigger across the app (4x2 hrs) 8
- Add “Wallets management” scene (list of wallets like in ProtoWallet) (8 hrs) 8 8
[Development] Network controller (32 hrs): 32 16
- Implement CowSwap API calls (16x2 hrs) 32 16
[Development] Remote config + controller (48 hrs): 48 16
- Create remote config for CowSwap (8x2 hrs) 16 16
- Create remote config controller for CowSwap (16x2 hrs) 32
[Development] CowSwap functionality + UI (192 hrs): 192 96
- Add “Swap” scene + controller (32x2 hrs) 64 32
- Add “Orders” scene + controller (32x2 hrs) 64 32
- Add “Order details” + controller scene (32x2 hrs) 64 32
[Development] Firebase SDK integration (8 hrs): 8 done
- Add Firebase/Analytics (2x2 hrs) 4
- Add Crashlytics (2x2 hrs) 4
[Publishing] (~32 hrs): 32 32
- Documentation preparation. 8 8
- Legal research. 8 8
- Apple store & Googe play applications. 8 8
[QA Testing] (40 hrs): 40 40
[Marketing] (~16 hrs): 16 16
- Marketing material preparation for Cowswap and Protofire blogs. 8 8
- News distribution and announces. 8 8
Total hours 616 264
Total development hours 528 176
Total dev days (8 hrs/day/dev) 39 17
Dev weeks (5 working days / week) 10-12 4-5

Funding Request:

We are requesting a total of around U$30,760 (23,760 for development hours + 7000 reserve, which can be consumed in case of any significant issues or further updates) for the project.

Budget Breakdown:

The hourly rate of our team members is U$90.00.
So, since we require around 264 hours to complete the milestones - that have been thoroughly described above -, we request a total of around U$23,760 and an extra U$7,000.00 as reserve to cover all the expenses and potential risks.

Gnosis Chain Address (to receive the grant):

0x76A25Aa82eDC11E7A54232D74Cd140c05d0a6BDf

Referral:

Protofire works on Cowswap JS SDK, so we know the team pretty well.

Contact Details:

Ivan Bandaryk, Field CTO (ivan@protofire.io, TG: @ivand3v)

A mobile wallet that utilizes the CoW Swap decentralized exchange is a fantastic idea, as it is expected to boost the protocol’s usage. I support this proposal.

1 Like

Looks nice!!! Just from what I have seen so far, do you expect to spend the same time for Android than for IOS? What would happen if the app gets dennied by apple?

1 Like

Very interesting!

Do we have an idea or stats about which portion of current CowSwap users and new users would be interested/can be reached with a dedicated app?

I’m very curious to find out more… because in my own user experience, I would totally prefer to stick to the current mobile wallets (Metamask and Ledger in my case) which I trust, rather than downloading a dedicated app for a given dapp on my phone and having to use my private key in these dedicated apps… it’s not something I personally feel comfortable doing for example compared to using Metamask mobile and the integrated browser, who in my case works just fine with CowSwap mobile UI… Maybe what is missing in my very own use… is that CowSwap is not currently integrated in the list of dapps in Ledger Live. Maybe if your app is able to allow the use of a Ledger connected by USB or bluetooth that could be very interesting indeed…

That being said my question is strictly based on my own personal use (which might not be very representative of the average user), so yeah that’s why I’d be interested to see if you have an idea of the portion of users who could be interested/reached by this app, just to have a sense of if it is worth the cost of developing and maintaining it over time.

2 Likes

Hi, thanks for your question!
If this happens, don’t worry, we will help to handle this situation.
First, we’ll review the feedback from Apple and understand the reason for the denial. Based on this, we’ll work to address any issues or make any necessary changes to the app to ensure it meets Apple’s guidelines.
Next, we’ll resubmit the app for review and continue to work closely with Apple to ensure a successful approval. This may involve providing additional documentation or making further changes to the app.
Overall, our goal is to ensure that the CoW Swap app is published on the App Store and meets all the necessary requirements. We understand that the app approval process can be challenging, but we already have Protowallet published on App Store. We will take the functionality that was already approved by Apple/Play Stores, and cut off some of it, so the publishing process should be easier.

Thank you for your feedback on our proposal.
As outlined in the proposal, the initial development phase will focus on introducing the Swap feature. For added security, the private keys associated with your wallet will be stored in the secure enclave on your mobile device, ensuring that only you have access to them. This makes mobile wallets a safer option compared to browser-based ones.
Overall, we have 2 main reasons to suggest mobile app development:

  • First of all - it creates a lot of trust. There are hundreds of dapps, which were developed “yesterday” and have only metamask connectors. Obviously, there is a scam as well. Having a dedicated mobile application shows that it’s a serious company behind it. If this app is approved by Google and Apple, the risk is almost zero.
  • Second - for plenty of new users using MM with the mobile version of the website is still complex and not reliable enough. MM is an undisputable base wallet for crypto-native folks, but for those who just joined the crypto industry, the branded app makes more sense. It’s the same level of sensibility as banking apps, where you prefer to use the mobile app published by bank, rather than a mobile version of their web.

Regarding the suggested feature of connecting a Ledger via USB or Bluetooth, we appreciate your input and will consider it as a secondary development phase once we have established the core functionalities of the app.
We look forward to bringing you a safe and convenient mobile wallet experience.

For this project, what is the proposed technical stack?

Hi can you please provide the link to the video?

How do you propose to keep the app updated with every iteration of the core protocol?

Who will be responsible for troubleshooting and support when there is a bug?

Is there a way we can assess the white-label app technically?

Can you point us to a Github repository or something we could look at? It would really help to understand if this is something it could grow and can be easily maintained.

The proposed stack is Swift for iOS & Kotlin for Android.

Hi!
Sure, here is the demo video: CowSwap Mobile App (Prototype).mp4 - Google Drive

About the updates:
We have a dedicated team that oversees the application and CowSwap updates. Instead of implementing them immediately, we prefer to accumulate a backlog, discuss it with the community, and request a new budget for the implementation. We plan to release these updates at least every 2 months.

Our team will be responsible for the support.
We will create a dedicated channel on Discord where both the field CTO (Ivan) and Protofire developers will be available. Urgent bugs and critical issues will be promptly addressed without requiring budget approval from the community, as the acceptance process can be time-consuming.
However, these issues will be included in the subsequent budget allocation. Minor bugs will be tracked on the dashboard and addressed in the next release.
We aim to handle all issues within 1-2 business days.

Protowallet is our white-label solution, available in AppStore. The application includes different swaps, bridges, and lending platforms: ‎Protofire Wallet on the App Store

Currently, the repository is not accessible as it includes multiple products. However, for the CowSwap project, we will remove any unrelated functionality and make the entire solution available under an open-source license without limitations in the CowSwap repository. In the meantime, we can provide the current code to the CowSwap technical team for review prior to budget approval.

Is this the Protowallet in question? https://play.google.com/store/apps/details?id=com.protofire.protowallet

The UI looks rather simplistic and Google Play ranks it as “about 5 downloads” which seems to be a very very small number of users. I’m not telling that to be harsh toward your work but I still fail to see what the market for such an app really is, and who will really trust such a small wallet app to enter their seed/passphrase… the low number of users for your very own wallet app appears like a confirmation of my thoughts so far.

1 Like

Hi.
Firstly, thanks very much for your detailed grant submission.

While I do think that providing additional channels through which CoW Swap can acquire order flow, I think that this project may represent too high a cost for customer / order flow acquisition.

So far, the grant’s details seems more like a funding for a white-label (or seemingly retro funding, given the low downloads of the white label wallets), and does not demonstrate any addressable market.

Given the structure of funding for the grant, there is no incentive for the team to keep patching / updating. Providing additional funding for “risk” seems to basically move all risk from protofire to Cow DAO, with seemingly little outlined return for said risk.

If these points above (particularly total addressable market, existing market research, incentive alignment, and funding structures) can be thoroughly addressed, there may be some opportunity to progress, but at this stage, I cannot support funding developing of a mobile app with determinable cost per customer / order acquired.

mfw78.

@mfw78 @Chim9

Thanks for your questions, I’ll address both of them here!

The link we shared in PlayStore/AppStore is a demo application, serving as a prototype. We have published it to gain insights into Apple’s requirements for publishers, which will help us in publishing future applications. Please note that we have not actively advertised or promoted it. Therefore, in this particular case, the number of users does not necessarily reflect the quality or trustworthiness of the application.

The primary purpose of this application was to establish a solid foundation, allowing us to utilize its code as a base for building other applications. As you can see in the breakdown of development hours, this approach has significantly accelerated our development process, cutting the time in almost half.

Any additional funding designated as “risk” can be allocated toward supporting and updating the application after the release. We will share a thorough public report on hours spent and issues resolved.

Hi,
Thanks for some clarifications. In my opinion, grants would be better targeted at integrating with other wallet providers who already have an ample following / utilization (therefore we can establish a tangible acquisition cost for order flow / user acquisition).

CoW Protocol benefits mostly from co-incidence of wants (CoWs), so user acquisition / order flow acquisition, and anything that may stimulate this, is highly beneficial. Unfortunately, I don’t think CoW funding it’s own mobile wallet is useful for this.

mfw78.

1 Like