Please describe your proposed solution.
Currently, there is no native Rust library that supports CIP25. That means Rust projects that many users depend on such as Oura, Carp, CSL and CML all have ad-hoc implementations of CIP25 parsing. This is unfortunately because it allows limited indexing of CIP25 data using these tools and, in the worst case, can lead to subtle errors on CBOR parsing.
We plan to solve this by writing a native Rust library for CIP25 parsing that makes use of dcSpark's latest work on transaction metadata library codegen based off CDDL specifications. We intend to also make this library usable from WASM and therefore Typescript as well which should be usable from most Cardano projects.
Please describe how your proposed solution will address the Challenge that you have submitted it in.
Currently developer tools written in Rust have ad-hoc implementations of CIP25 which restricts the functionality they can support and increases the chance of subtle bugs. This library will make it easier to write dev tools in Rust, WASM-compatible languages and Typescript that need to consume the CIP25 standard
What are the main risks that could prevent you from delivering the project successfully and please explain how you will mitigate each risk?
CIP25 is just a standard for Cardano and a lot of NFT projects have made mistakes in its implementation due to the lack of a CIP25 library like the one we are proposing to create. That means this library won't be able to parse these projects properly. Future work may be required to loosen the format to allow for these projects to be supported