completed

cip25 (NFT) Rust & WASM library

$7,000.00 Received
$7,000.00 Requested
Ideascale logo View on ideascale
Community Review Results (1 reviewers)
Impact / Alignment
Feasibility
Auditability
解决方案

We will create a native Rust, WASM and Typescript library that parses CIP25 from CBOR based on its CDDL specification given in CIP25

Problem:

CIP25, the NFT standard for Cardano, currently does not have an open source Rust, WASM or Typescript library to parse the on-chain metadata. Instead, users simply use a JSON representation of its data

Yes Votes:
₳ 295,570,587
No Votes:
₳ 20,053,667
Votes Cast:
529

This proposal was approved and funded by the Cardano Community via Project F9: Developer Ecosystem Catalyst funding round.

[IMPACT] 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.

[IMPACT] 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

[IMPACT] 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

[FEASIBILITY] Please provide a detailed plan, including timeline and key milestones for delivering your proposal.

  1. Update the cddl-codgen to implement any feature that was needed for NFT support that was not covered under https://cardano.ideascale.com/c/idea/419158
  2. Generate the core (de)serialization logic from the CDDL definition
  3. Add utility functions as needed
  4. Publish as a crate & NPM package
  5. Integrate in projects such as Carp & Oura

[FEASIBILITY] Please provide a detailed budget breakdown.

All funds will be used towards the development costs of the project

[FEASIBILITY] Please provide details of the people who will work on the project.

Github handles are SebastienGllmt and rooooooooob

[FEASIBILITY] If you are funded, will you return to Catalyst in a later round for further funding? Please explain why / why not.

No, unless there is a large breaking change to CIP25 in the future that requires a significant rewrite (no such thing planned)

[AUDITABILITY] Please describe what you will measure to track your project's progress, and how will you measure these?

Progress towards the implementation as outlined by the steps mentioned above

[AUDITABILITY] What does success for this project look like?

Successful release of this project and having it integrated into other tools

[AUDITABILITY] Please provide information on whether this proposal is a continuation of a previously funded project in Catalyst or an entirely new one.

New project

社区顾问评论 (1)

Comments

Monthly Reports

Initial code generation has been done using the cddl-codegen library (Link 1 in our references) Mixed v1 + v2 version is currently under review, please see Link 2 to see the process so far. As soon as the review is done, the library should be put into a separate crate in CML, and we'll need to publish crate & npm package. CML & publish steps are blocked by CML refactoring (workspace), should be unblocked next week

Disbursed to Date
$7,000
Status
Launched
Completion Target
2. In the next 3 months
Comments 0

Login or Register to leave a comment!

Disbursed to Date
$7,000
Status
Still in progress
Completion Target
2. In the next 3 months
Comments 0

Login or Register to leave a comment!

close

Playlist

  • EP2: epoch_length

    Authored by: Darlington Kofa

    3分钟24秒
    Darlington Kofa
  • EP1: 'd' parameter

    Authored by: Darlington Kofa

    4分钟3秒
    Darlington Kofa
  • EP3: key_deposit

    Authored by: Darlington Kofa

    3分钟48秒
    Darlington Kofa
  • EP4: epoch_no

    Authored by: Darlington Kofa

    2分钟16秒
    Darlington Kofa
  • EP5: max_block_size

    Authored by: Darlington Kofa

    3分钟14秒
    Darlington Kofa
  • EP6: pool_deposit

    Authored by: Darlington Kofa

    3分钟19秒
    Darlington Kofa
  • EP7: max_tx_size

    Authored by: Darlington Kofa

    4分钟59秒
    Darlington Kofa
0:00
/
~0:00