How to develop Python and JAVA SDKs For Celo Blockchain [Celo use case]
Celo framework is a mobile-first blockchain platform. Celo blockchain is hosted by the Celo Foundation which main aim is to make blockchain-based payments worldwide accessible and ease usage of cryptocurrencies. Blaize team was honored to be a part of a Celo Foundation grant program and develop Python and Java SDKs for the framework.
Blaize is grateful for Celo Foundation’s trust in the process of developing Python and Java SDK for Celo blockchain. Hope our commitment will lead to further cooperation.
what is an SDK?
SDK stays for Software Development Kit and is aimed to be a set of dev tools that are necessary to build software. A standard SDK usually contains all tools that are needed during development processes like editors, compilers, drivers, documentation, debuggers, libraries, and code samples. One SDK is designed adapting to one specific programming language, so if you write on Python you need a Python SDK toolkit, and JavaScript SDK to write on Javascript.
Why Do we need an SDK?
Basically, our main task is to build Python and Java SDKs for Celo framework in order to broaden the ability to programming while not using only Javascript, as it is now. This may help to extend the Celo developers community and contribute to its wider application.
Celo project overview
Primarily we have divided the project into two main tasks. The first one is Java SDK development, and the second one is Python SDK development. Each part corresponds to the separate milestone, named accordingly.
Each milestone consists of two steps. The first is to develop the whole functional part, while the following is to write unit tests along with documentation preparation and finalization. We worked in a team of 4 developers concentrating on back-end blockchain development in particular.
Want to get a deeper understanding of the code? See the whole project documentation in Blaize Github!
Project architechture
We have built the main object which the SDK users will utilize. This base kit allows to set the parameters of the wallet such as cost and amount of gas per transaction, create new keys, or use existing ones and create contract objects.

At the moment, wrappers for all main contracts of the Celo Protocol have been finished and successfully held the test phase. Wrappers represent a separate class where all the main requests for the contract are already registered. Therefore, the user does not need to re-write requests, he will simply use our class (wrapper), which will greatly speed up and simplify the whole work.
Need skilled developers to build a solid SDK? You can find them in Blaize!
Challenges we faced
There are some unique exceptions in Celo blockchain framework which are not presented on any other platform. It creates some difficulties while configuring it with other applications.
The Eth Account library was chosen as the most suitable for transaction formation. Yet, due to the uniqueness of the transaction body in Celo blockchain, we had to customize this library so that we could construct our own transaction and sign it.
Another difficulty was to write utils of various kinds. Utils are methods that hash data or help to convert one data type to another and therefore represent one of the main functionality of the whole kit. That is why we needed to spend a great amount of time to study the existing SDK precisely and only then implement our utils in the Python SDK.
Conclusion
Celo Foundation is doing an enormous job regarding blockchain and cryptocurrency worldwide adoption. The whole Blaize team is extremely glad to be a part of such a huge and impactful initiative!
As you can see, building a well-documented and convenient SDK does not always be an easy task. In terms of SDK development for a blockchain-based environment understanding the technology specifications is a crucial thing. Build a strong SDK toolkit with Blaize!