Platform SDK, an all-in-one developer toolbox, is a modern solution for developers, hobbyists and businesses, making it simple to interact with different blockchains and projects (not just ARK or ARK-based networks). Despite the popularity of crypto and blockchains in recent years, a lot of projects lack an easy-to-use interface (yes, even Bitcoin) to interact with their specific blockchain network. This drove us to develop the Platform SDK, which will lower the barrier to entry for developers in the crypto and blockchain world. The SDK makes the technology a more pleasant experience and easier to work with.
Platform SDK is open source and available here: https://github.com/arkecosystem/platform-sdk
While planning the next major releases of our user-facing projects like the new upcoming desktop and mobile wallets, we had a goal of wanting to broaden our audience by integrating different blockchain networks within our products. Our newest wallets will become multi-currency so you will be able to add other networks supported by Platform SDK. That’s right, the upcoming ARK wallets will support many different coins thanks to Platform SDK!
All of this required us to come up with a standardized interface that would allow us to implement and interact with multiple networks that all work very differently. The biggest problem in the current crypto space is that for the most part, there aren’t standardized specifications for architecture and structure when interacting with blockchains. Having something universal is nearly impossible, as different networks have different use cases and underlying algorithms, libraries, implementations … at the end of the day, different mindsets think differently and implement depending on the specifications that they wrote. It’s what spurs innovation, but it also brings the problems described above when trying to normalize data.
The second problem is that code in different projects is written by different people with different development practices and ideals. Add to that the lack of documentation and the technical debt that was accrued over the years and it makes a project difficult to work with (and we’ll be the first to raise our hands when it comes to the initial ARK Core code, it’s what got us to rebuild Core from the ground up after all). When you tie it all together, you get projects that work but are difficult to programmatically work with.
With that in mind, we went back to the drawing board to try and understand how each of the most popular blockchain networks were constructed, how someone can interact with them, and what they use underneath. We put a lot of time into researching each of them and coming up with a common denominator that they all share. Each popular blockchain platform holds its own uniqueness, and we have developed a way to glue them together under one library that developers can use without going insane in the process of figuring it all out.
Platform SDK is written in the TypeScript programming language, as that the prevailing language of ARK projects and products.
The Platform SDK
So what’s Platform SDK all about? The Platform SDK supports an easy and normalized way to interact with networks:
- Obtaining information about blocks, transactions and wallets
- Signing and verifying transactions
- Broadcasting transactions
So far, Platform SDK supports these networks:
- Cardano (work in progress)
- Monero (work in progress)
We have also integrated support for obtaining market data from CoinCap, CoinGecko and CryptoCompare.
Developed packages (so far) can be seen here: https://github.com/ArkEcosystem/platform-sdk/tree/master/packages
This initial implementation of the Platform SDK is just the start, and there are more things in the pipeline as we start to integrate it into our own products and see how things turn out.
- A JSON-RPC 2.0 Specification compliant server will be implemented to make using the SDK a breeze from a server. This will allow developers to use the SDK in any environment through API calls by removing any constraints that might be imposed by dependencies that wouldn’t work in a browser. Simply host the server and do what you have to do via API calls.
- A specification document and a cheat sheet. This will make it easier for developers to contribute new coins and networks by knowing all implementation rules and standards before submitting a PR and wasting any time.
- Dedicated documentation page. We will provide a dedicated documentation page that will contain detailed information and usage instructions for every part of the SDK.
- More coins and networks. This will be an ongoing process as we polish existing coins and their implementations to a point of maintenance-mode which will allow us to move on to add new coins or networks.
We want Platform SDK to become a standard library to be used by services that need to integrate numerous different blockchains (ranging from exchanges, services, websites, …).
How Can I Help?
There is plenty of work still to be done and anyone can contribute! You can help us test by integrating and interacting with different networks, find and report bugs, resolve bugs, or simply give us feedback/criticism that will help us improve the Platform SDK!
- Issues, feedback, criticism:
- Improvements or bug fixes: