COE Tech Series
The new SDKs mainly have one goal: to abstract the Catapult specific API details. Sharing the same architecture and structure between languages allows for everyone who builds a project on top of NEM to work in a similar way.
Projects such as Apostille, the voting module and the alias system are applications built on top of NEM that should be reusable. However, the technological infrastructure limited the reusability of these applications.
Currently, these implementations are usually attached to other projects or libraries that don’t necessarily follow standardised specifications for cross-platform compatibility. This is what the NEM2-SDK and Libraries aim to solve.
NEM2-SDK and Libraries
Aside from creating a heavy and full-featured SDK, we are also developing a robust and lightweight SDK. Thanks to this SDK, different libraries can be developed for each standard on top of NEM2-SDK allowing higher and faster growth for NEM applications.
Developers could opt to create a standalone library to add more features to NEM. However, to become an accepted library, it should be proposed as a NIP.
The reason behind the NIP Repository is to ensure the new library to be reviewed, tested and shared among NEM developers. It allows a higher adoption compared to non-NIP libraries.
Anyone with a design for a particular use case using the NEM blockchain now has a platform to discuss with the community in order to reach better definitions for the supported libraries.
Do I need to create a NIP to create a library?
No, you don’t. In fact, we suggest to not submit a NIP until you build a library that improves the NEM blockchain and the different projects that use it. Since the library can be changed multiple times, developers should spend more time experimenting and learning, creating a specification later on.
We would like to encourage you to share your ideas and generate discussion on the NEM Projects channel: https://t.me/nemprojects
Apostille, a real example
Apostille has been in NEM for a long time, being available in NanoWallet since its beginning. What happens if another platform wants to use the Apostille feature? It is not as easy as it should be.
The nature of Apostille is that we agree in a specific way to write and read in NEM Blockchain. The way we write and how we read from NEM determines the validity of the Apostille.
For this reason, we require an approved and shared specification in the NIP repository. Developers can discuss specifications, improve it, and make sure it becomes a supported standard for further developments.
A first draft of Apostille’s implementation on NIS1 was proposed by gimboya, although it is now being updated to Catapult: https://github.com/gimyboya/Apostil-library
Feel free to submit your improvement proposals and start building libraries that can help extend NEM’s capabilities.
You can find this post’s official discussion on the forum thread.