Please describe your proposed solution.
Blockchains contain a lot of information — often hundreds of gigabytes worth of data. Applications like dApps and wallets need to quickly filter through this data to provide the fast user experience that users expect. This is what indexers are meant to solve. There are many different kinds of indexers and the best one for the job tends to depend on what you’re trying to do. SQL databases are a popular kind of indexer because they provide a lot of flexibility to users to query what they want while maintaining decent performance.
Carp has the following core pillars:
- Flexible: allow wallets and dapps full freedom in how they handle data
- Modular: it should only index what you need
- Speed: queries should be fast
- Type safe: developers should know exactly what data to expect to avoid any critical issues in their products.
- Documented: it should be easy for any developer to get started with Carp
You can learn more about Carp in the links provided below this Catalyst proposal.
This project is now being used by multiple projects/companies such as dcSpark, Milkomeda, ErgoDEX, NFT Maker and interest from other projects such as Flint and Yoroi. As such, we plan to continue developing it (see some of things we have planned here https://github.com/dcSpark/carp/issues) and also implemented features requested by projects (new REST endpoints, new Carp tasks, etc)
We also plan to maintain this tool across hardforks such as Vasil, through large updates to underlying libraries (Pallas/Oura/CML)
We also will update this tool to include safety improvements (by proposals such as https://cardano.ideascale.com/c/idea/419158) and performance improvements (by proposals such as https://cardano.ideascale.com/c/idea/419154)
Please describe how your proposed solution will address the Challenge that you have submitted it in.
Carp allows any developer to easily write their own indexer for the specific data they need. This allows developers to have very fast and space-efficient indexers to give them more time to focus on writing the tool or products they want to deliver
What are the main risks that could prevent you from delivering the project successfully and please explain how you will mitigate each risk?
Low risk because part of this proposal is paying us for work we already did that was over-budget. Additionally, our company depends on Carp for multiple projects so we are committed to continued maintenance and improvement of the project.