dcSpark Catalyst Proposal Updates

Iwopietak
dcSpark
18 min readFeb 3, 2023

--

We’ve recently been putting out some feelers to learn more about community sentiment around dcSpark, in particular, how we’re perceived by the Cardano community and what the community would like to see more of (if you’re interested in these conversations, you can listen to this Twitter Space, our first with the community on this topic).

One of the things mentioned by some community members was related to the number of Project Catalyst proposals dcSpark have had funded, and where they can find progress on them. For those unfamiliar with Project Catalyst — shortened to just Catalyst by many- it is a decentralized funding mechanism launched in 2020 by IOG, the founders and core contributors to the Cardano blockchain. In Project Catalyst, community members propose solutions to various and wide-ranging challenges selected by the community in each funding round. Community members then upvote and downvote these proposals, with their ADA holdings equaling their voting power, to decide on which proposed solutions should be funded. Funds are drawn from the Project Catalyst treasury and the total funds are capped in each funding round. Head to the new Project Catalyst website to learn more!

To answer these questions in the best way possible for all, we’ve produced this blog post to highlight our progress on all of dcSpark’s funded Catalyst proposals. We’ve split this into two sections, completed proposals and those that we are still working on, in-progress.

If you want to see the official Catalyst reporting status for all the proposals ever funded, you can go to this spreadsheet — where, not only can you see the progress of work done on every proposal, you can see the evidence of the hard work and diligence completed by the Project Catalyst Coordinators and Managers. If you want to stay up-to-date with the progress on just dcSpark’s proposals you can head to the grants page on our website where we regularly update the progress we’re making.

In-Progress Proposals

These proposals are the ones we are actively pursuing. We’ve included the most recent update as of this writing, in relation to our January Monthly Reporting.

CIP Editor Time: Sebastian for 1 Year

Fund 8 — Open Standards & Interoperability — Proposal

TLDR: One of dcSpark’s cofounders, Sebastian Guillemot, has been an unpaid CIP (Cardano Improvement Proposal) editor for over two years, helping to define and improve technical standards for Cardano and continuing to move the blockchain forward. This proposal is funding that work for 1 year so he can dedicate time in his schedule to continuing to contribute to this process. The timeline for this proposal is from April 2022 to April 2023.

Sebastian was one of the initial CIP editors and helped to set up and structure the CIP process for proposing improvements to the Cardano ecosystem and processes. He has been a long-term, 2+ years, CIP editor and an unpaid contributor to the CIP process — reviewing proposals, attending biweekly meetings, and authoring and co-authoring multiple CIP proposals. This proposal ensures that Sebastian can set time aside to continue dedicating himself to the CIP process and the continued improvement of Cardano. Sebastion’s work can be seen throughout the Cardano Foundation CIP Repository where CIPs are proposed, discussed, and edited.

Cotalker Integration

Fund 8 — Business Solutions (B2B & B2C) — Proposal

TLDR: Here we proposed to create a solution for Cotalker -a company that provides solutions for digitizing and automating operational processes- to be able to write data to the Cardano blockchain. This increases Cardano’s exposure to the enterprise world and provides a tool that businesses can use to integrate with Cardano. This proposal is almost complete with 1 of 2 trials underway with Cotalker’s clients.

Cotalker is a logistics company based in Latin America, operating as a part of the global supply chain. Cotalker have created a tool to track the products they ship on Milkomeda, which also records an estimate of the carbon emissions from their journey. This tool tokenizes carbon credits, allowing the companies whose goods are shipped through Cotalker to not only track their goods and their related carbon emissions but, if they wish, to offset those carbon emissions by burning the tokenized carbon credits they have bought. Once the carbon credits have been offset a certificate for “Carbon Neutral Delivery” will be available to the end consumer when they scan the QR code located on the product.

Currently, Cotalker has a contract with one company for transporting 200 containers of fruit from Chile to the US, Portugal, England, the Netherlands, China, and other countries. The technology designed as a part of this proposal is being utilized to track these products on the blockchain, and their journey’s carbon emissions. It then provides a certificate, that the end consumer can easily access via a QR code, once the company has burnt the carbon credit tokens to offset the products emissions.

Cotalker is currently following up on leads to close a second trial and complete the work outlined in this proposal. Once this is completed we are going to issue a blog post detailing this solution and the outcome of Coltalkers implementation.

Milkomeda Mobile

Fund 8 — DApps & Integrations — Proposal

TLDR: We’re developing a way for users to be able to interact with smart contracts on Milkomeda C1 through their mobile devices. This increases the accessibility of the Milkomeda network, and the Cardano DApps deployed on it, making interacting with Cardano much more user friendly. We have released EVM support for Flint and are working on the final parts of being able to interact with Milkomeda smart contracts!

This proposal is almost complete. This month the incredible team behind Flint wallet has been finalizing EVM integration into the desktop and mobile versions of Flint. Last month we sent evidence to Catalyst as a part of our report, which showed that we could display balances from the EVM-based Milkomeda C1 sidechain in the Flint wallet. This month we also included two videos where we successfully conducted a mADA transaction and a token transaction on the Milkomeda C1 mainnet!

We’re also very proud and very excited to have recently announced the released Flint 2.0, which introduces the ability for Flint users to interact with Milkomeda directly from Flint on both desktop and mobile! This means that, once you’ve updated to Flint 2.0, you’ll be able to use Flint to send mADA from one wallet to another! Our next step, on which work has already started, is to build in support for connecting to Milkomeda DApps which, once implemented will enable you to use Flint’s fully-open mobile DApp browser to interact with DApps on Milkomeda C1!

Cardano Wallet OneBox

Fund 9 — Developer Ecosystem — Proposal

TLDR: Currently developers must deploy and combine multiple tools to build a working Cardano wallet. To increase Cardano adoption we need to make Cardano wallet deployment easier and this proposal will create a single image, that developers can use to deploy their own wallet and all the supporting components. Notably, it will be based on our stack for Flint which uses: Carp, Blockfrost, Ogmios, Token info service, Price feed service and cardano-node.

We have recently encountered challenges in progressing with this proposal, specifically due to the observance of regional and cultural holidays by our globally distributed team over the recent holiday period. Additionally, there has been limited developer availability on the part of our partner, Txpipe. As a result, we have primarily focused on conducting repository maintenance for this proposal in the past month.

We are pleased to report that these obstacles have been overcome, and Txpipe has confirmed that they are nearing the completion of the demo of the relevant tool. This tool is a critical prerequisite for this project, and we are looking forward to progressing on this exciting initiative.

Catalyst SDK dRep Support

Fund 9 — dRep Improvement and Onboarding — Proposal

TLDR: Project Catalyst is introducing dReps to the voting process -allowing users to delegate their voting power to a representative- and created a Challenge in Fund 9 to improve the dRep concept. The work done for this proposal will create an SDK that Cardano wallet developers can use to implement dRep support, removing a barrier of entry that might have prevented users from being able to utilize this new functionality. We are currently working on updating the existing SDK that will form the base of the final product for this proposal.

This proposal was initially blocked by some needed refactoring work for CML, however, our team found this blocker and resolved it last month; here’s the pull request. We also found a bug in the CIP36 specification, and IOG submitted a fix to the bug we found.

We are continuing discussions with IOG regarding the changes to the Catalyst registration process and dRep functionality. In these discussions, there have been talks of dcSpark making the necessary updates to CIP30 that are required for dRep support, which may also end up falling under the scope of this proposal.

The work that we are currently doing on this proposal involves updating our Catalyst registration SDK to use the new rust codegen solution that will result from this proposal (progress discussed below), updating our Catalyst registration SDK to support dRep functionality, adding dRep indexing to Carp using said updated SDK, and integrating the SDK and the Carp endpoint into Flint wallet.

DcSpark (The Company Itself)

Fund 9 — DApps, Products, & Integrations — Proposal

TLDR: At dcSpark we have built, and continue to maintain, multiple tools that are widely used in Cardano, e.g. Flint, Carp, Fracada, Rust SDKs, and many others found on our GitHub. The majority of these are open sourced and, therefore, don’t make money. This proposal funded a loan from Project Catalyst to dcSpark that we will begin paying back, 1 year after the full payment was received, with an interest rate of 6%.

This proposal was designed as a loan to help support the dcSpark team as we continue to build for the Cardano ecosystem. We want to give our deepest thanks to the voters of Project Catalyst for recognizing the work that we do and choosing to fund this proposal. This proposal covers our work on building and maintaining the multiple tools we’ve created for Cardano, including Carp, Rust SDKs, Milkomeda, Flint, Fracada, and many more protocols & tools you can find on our GitHub.

The loan was for 400,000 USD and is being paid in four installments over four months, the first being when Catalyst began distributing payments for Fund 9. The loan conditions were laid out in the proposal. These were that there would be a one-year grace period from the first payment to the time of the first repayment and that we would pay the loan back month-by-month with an interest rate of 6%.

When requesting this loan, the Catalyst Treasury had no way of receiving payments, but Sebastian created a pull request to build this functionality into the treasury. This proposal could also be used as an initial test run to examine the possibility of Project Catalyst distributing loans as a way to sustain the treasury in the future.

Fracada Addressing Audit

Fund 9 — DApps, Products, and Integrations — Proposal

TLDR: After auditing our open sourced Fracada smart contract for fractionalizing NFTs, the Fracada Addressing Audit proposal requested funds to address the concerns raised by the audit and release both the audited code and the audit. This would allow users to deploy the contract, safe in the knowledge that basic, known, and common attack vectors can’t be used to attack a deployed version of the contract. We are currently addressing the concerns from the report.

GitHub Repository

This code was first audited in June 2022, after which a set of findings were informally reported to our team. Before continuing with the audit we chose to address these findings in order to maximize the time spent auditing the scripts.

Once these initial findings were addressed, the audit was resumed in December 2022. Due to the significant changes in the code that were made after the initial, informal findings were reported to the team, it was not feasible to properly audit the new contract’s design and implementation. This resulted in a mixed approach, which formalized the initial findings and briefly checked the new implementation to acknowledge that these initial findings had been addressed by the work done. The audit on the Fracada v2 code has been completed and was delivered by the MLabs Audit Team on January 12th, 2023.

WalletConnect for Cardano

Fund 9 — DApps, Products, & Integrations — Proposal

TLDR: WalletConnect is a highly user-friendly connection standard for connecting mobile wallets to desktop DApps that is widely used and has been integrated by some of the world’s most popular DApps and apps — however, it doesn’t yet support Cardano. For this proposal we are building Cardano support for WalletConnect and have almost finished! Here’s a video of us connecting Flint wallet to a test DApp using WalletConnect!

We are very close to finishing this proposal and should release WalletConnect support for Cardano son! For this proposal, we’ve created a library that allows Cardano wallets to integrate with WalletConnect and an SDK that enables DApps to easily integrate themselves with WalletConnect and have successfully tested this with Flint and a demo DApp, using regular injection methods and by presenting a WalletConnect QRCode modal to the user. With the WalletConnect team’s guidance, we have created a pull request on the WalletConnect UniversalProvider package to add support for a CardanoProvider that facilitates the connection between Cardano DApps, WalletConnect’s relay servers, and Cardano wallets.

This integration has been designed to complement CIP30 and also to allow users to easily switch between connection methods, i.e., the mobile and desktop versions of their wallet. When we release this, we will also publish a blog post and documentation detailing what we’ve accomplished and how wallet and DApp developers can integrate WalletConnect for Cardano into their products.

As a part of our milestone agreement with Project Catalyst for this proposal, the remaining funds are being used to create a grant program to incentivize established Cardano DApps and wallets to integrate WalletConnect Support. As detailed in our milestones for this proposal, Flint wallet is being used as a proof-of-concept and will be the first in Cardano to integrate WalletConnect support! Watch our social media for more details coming soon!

Completed Proposals

Below are all the proposals whose work has been completed by dcSpark, across all Project Catalyst funding rounds. We have linked to the Project Close Out Reports and Project Close Out Videos where available. If you’re interested in more information on the products of these proposals, e.g. if you want to implement one in your product, please feel free to contact us using your preferred method.

Cardano Connector [MetaMask-like]

Fund 5 — DApps & Integrations — Proposal

We built and released a MetaMask-style DApp connector for Cardano wallets, standardizing the way Cardano wallets connect to Cardano DApps, making these interactions much more user friendly. This was outlined in CIP30 and has been implemented into our own wallet, Flint, and some of Cardano’s other most popular wallets. We also created, and still maintain, a website where users can check which registered wallets support which elements of CIP30.

Cardano Rust SDK Update for Alonzo

Fund 5 — Developer Ecosystem — Proposal

GitHub Repository

We successfully delivered CSL 8.0.0 in time for the Alonzo hardfork in September 2021. This is depended upon by dozens of companies and their users, including exchanges like Coinbase and wallets like Yoroi, and would have failed to continue working after the hardfork had we not completed this proposal.

Developer Evangelist Japan

Fund 5 — Proposer Outreach — Proposal

Medium Post

Cardano is popular amongst the Japanese community, and Japan is also where an initial distribution of ADA took place. This proposal funded the hiring of an individual who translated much of our material into Japanese and helped to increase Cardano and dcSpark’s, and our tooling, exposure to a Japanese audience. We also used these funds to attend the 2021 Blockchain Expo Tokyo as a Cardano booth operator, presenting these materials and more about the latest Cardano developments to the exhibition’s attendees.

The AI Expo and IT Expo were also being held at nearby venues at the same time that year, and members of the dcSpark team promoted Cardano to interested professionals and developers from these industries at the same time.

Basic Plutus Voting dApp

Fund 7 — DAOs ❤️ Cardano — Proposal

Project Close Out ReportProject Close Out Video

GitHub Repository

We created and open-sourced (MIT license) a smart contract written in Plutus for DAO treasury voting. This allows DAOs built on Cardano to hold a decentralized vote for whether or not to pay out, from their treasury to a single address — if the vote receives enough votes from participants in relation to the chosen quorum. This was the first such voting contract written in Plutus and allows Cardano DAOs to operate like true DAOs, without the need to use trusted 3rd parties to distribute funds.

This smart contract takes advantage of the UTxO model and allows users to vote with their own UTxOs, independent of others, maximizing the throughput of this voting protocol. For this proposal we wrote the smart contract code, complete with on-chain validation checks, created off-chain endpoints for interacting with the smart contract, and implemented tests to show off and ensure the functionality of the contract.

Cardano Omnibus — UTXO Management

Fund 7 — Open Source Developer Ecosystem — Proposal

Project Close Out ReportProject Close Out Video

We created a new algorithm for managing UTxO outputs from a transaction, resulting in the reorganization of UTxO -specifically the grouping of dust- and, most importantly, reducing the fees for the user. We’ve named this algorithm Thermostat, and it is currently being utilized by the Milkomeda bridge to optimize UTxOs and fees for users. This work has been open sourced on GitHub under the MIT license.

When creating this algorithm, we also developed some tools around it, namely a UTxO selection library, fee estimation mechanics, and UTxO selection algorithm benchmarking library. Using these libraries users can create their own UTxO selection algorithm and can measure how well a particular algorithm performs compared to the other algorithms.

Fractionalized NFTs v2 (Fracada)

Fund 7 — DApps & Integrations — Proposal

GitHub Repository

Explainer Blog Post

Blog Post for Developer

We built and open sourced (MIT license) a Plutus smart contract for fractionalizing NFTs on Cardano into a user-selected number of tokens; allowing Cardano NFT DAOs to relinquish their reliance on third parties to store assets and become true NFT DAOs. This is the second version of this NFT fractionalizing contract and the functionalities added in this version include being able to fractionalize multiple NFTs in one contract, and the ability to add more NFTs to the contract after the initial NFT deposit and token mint. These additions all significantly increase the utility of this contract for anyone, e.g., NFT investment DAOs, that chooses to use it.

We are currently working on addressing the findings of an audit completed on the Fracada v2 code and will soon be updating the repository with these updates.

Smart Contract Upgradability

Fund 7 — DAOs ❤️ Cardano — Proposal

Project Close Out ReportProject Close Out Video

GitHub Repository

We created and open sourced (MIT License) the code for a Plutus smart contract that can be used to upgrade a DApp’s smart contract; this allows the likes of DAO treasuries and multisignature contracts to be upgraded over time, in a decentralized manner, to become more complex as Cardano evolves.

This code can be used to move the UTxO of a DApp, using multisigs, from an old validator script to a new validator script. You can also upgrade the Datum and the data being held within that Datum. We produced an example for upgrading a treasury UTxO to a new smart contract if enough signatures are used to validate the upgrade.

Cardano Rust SDK Babbage

Fund 8 — Open Source Development Ecosystem — Proposal

Project Close Out ReportProject Close Out Video

This proposal upgraded the /cardano-multiplatform-lib repository to be ready to support the new features, such as those in Plutus v2, that were introduced by the Vasil (a.k.a. Babbage) hardfork — Without this update, the many projects on Cardano that rely on this library would cease to function.

We updated this SDK according to the specifications and released the updated version 1 month before the Vasil hardfork, allowing the many community projects that depend on CML to update their projects before the hardfork event. The update was released on GitHub, crates.io, and npm.

Chamber of Digital Commerce

Fund 8 — Lobbying for Favorable Legislation — Proposal

Members List on the CODC Website

We Joined in June 2022

The Chamber of Digital Commerce (CODC) is an American advocacy group and world-leading trade association that promotes the emerging industry behind blockchain technology, Bitcoin, digital currency, and digital assets. As a result of this funding, we joined the “President’s Circle” of the Chamber of Digital Commerce. This has enabled us to participate and provide insight into the conversations and discussions related to digital assets and the blockchain industry happening with the US government and other regulatory entities.

We will continue to be involved in both virtual and digital events, discussions, and working groups, and will continue to participate in and help shape the discussion and regulation around blockchain technology and digital assets in a positive way.

Db-sync Replacement in Oura

Fund 8 — Open Source Development Ecosystem — Proposal

Project Close Out ReportProject Close Out Video

GitHub Repository

Carp Documentation

Article Explaining Carp

Carp is a flexible, modular, fast, type-safe, and well-documented alternative to Cardano’s db-sync, and allows developers to create databases that service their unique needs without collecting arbitrary information. This new indexer allows Cardano developers to deliver their users the data they want in the timely manner they expect in today’s modern world. Carp’s release also diversifies the Cardano indexing tools available to developers and reduces the ecosystem’s reliance on what could be a single point of failure. When we replaced db-sync with Carp for our Flint wallet we saw a 25x increase in the load speed of transactions!

Self-Hosted Pricefeed for Wallets

Fund 8 — DApps & Integrations — Proposal

Release Tweet Thread

Implementation in Carp GitHub Repository

We added support to the lightweight and modular Cardano indexer, Carp, for querying token prices from the on-chain data of three Cardano DEXes (WingRiders, SundaeSwap, and Minswap), enabling wallets can use this to display live token prices in their interface for their users. The completion of this proposal significantly reduces the ecosystem’s reliance on centralized APIs for this data point, as the information used to produce this data point in Carp is drawn entirely from on-chain data! Along with an endpoint for current prices, we have also added an endpoint to allow for the querying of historical token prices.

Carp Over-Budget + Maintenance

Fund 9 — Developer Ecosystem — Proposal

The work for this proposal was completed as we drafted this post and is now live and usable in the Carp GitHub Repository. Our team has begun work on completing the Project Close Out Report and Video to finalize the delivery of this proposal for Project Catalyst. This proposal funded necessary maintenance to Carp, a flexible Cardano indexer, that is growing in popularity in the Cardano ecosystem as an alternative to db-sync.

For this proposal we have worked on upgrading and maintaining multiple elements of Carp, including storing swaps and mean token prices from DEXes (finished) and adding support to allow Carp users to add other data sources (pull request 116, pull request 120). To use Carp head over to the Carp GitHub Repository, which contains all the code for deploying Carp along with links to the developer documentation.

CIP25 (NFT) Rust & WASM Library

Fund 9 — Developer Ecosystem — Proposal

We are proud to announce that we very recently completed this proposal and the library containing the work done can be found here. Our team has started writing the Project Close Out Report and the recording of the Project Close Out Video will begin shortly afterwards, allowing us to fulfill the reporting needs to officially close this proposal out with Project Catalyst.

This proposal made supporting the NFT metadata standards (CIP25) natively possible in many of the Cardano tools written in Rust, such as Oura, Carp, CSL and CML. This allows these tools to fully index NFT metadata and removes the possibilities of the subtle bugs that could emerge in the methods previously used to parse this data.

In the work done for this proposal we completed the initial code generation and mixed V1 and V2 in the CIP25 repo linked above. We also made some API and test improvements, added build scripts for the Rust and WASM libraries, and completed a cleanup of the code. We have published the npm packages for the first versions of CIP25 and we are planning on incorporating this into Flint wallet soon.

Rust SDK — Fix Critical CBOR Encoding

Fund 9 — Developer Ecosystem — Proposal

This proposal was recently completed and our team has started writing the Project Close Our Report, who’s submission, along with a Project Close Out Video, will officially close this proposal with the Project Catalyst team. This proposal allowed Cardano’s widely used Rust-based tooling to support multiple encoding possibilities, ensuring the reliability of this Rust-based tooling for the many DApps built on top of it. When working on this proposal we fixed the issues which were noted in the proposal, as evidenced by pull request 143, pull request 153, and pull request 164.

We also worked on the regeneration and improvements for the CML structures to enable support for multiple encodings, completed the refactoring of the repository structure, created WASM and Rust code for the crypto structures, and added a core-WASM crate as a part of the CBOR encoding fixes. The necessary work has been done in the cddl-codegen library, and the generated code now supports multiple CBOR encoding possibilities, fulfilling our promises in the proposal.

Follow Us To Stay Up-to-Date on Our Progress!

We hope that this, relatively long, blog post has provided you with the information and resources to understand what we’ve accomplished with the Catalyst funding we’ve received, and what we’ll soon be bringing to the ecosystem with our proposals that are still in-progress!

If you have any questions about these proposals, be they completed ones or the ones we’re working on, then please reach out to us either on Twitter, @dcspark_io, or on our Discord server — where you’ll also find many other community members who like to keep up with our development updates. If you have any questions about anything else dcSpark or Cardano please feel free to reach out to us; we’re always happy to chat! Finally, follow us on Twitter and our Medium blog to keep up with the latest things coming out of dcSpark.

Follow dcSpark:

Website: dcspark.io
Twitter:
@dcspark_io
Discord:
/dcSpark
Medium:
/dcSpark
GitHub:
/dcSpark

--

--