Crates.io | chia-sdk-driver |
lib.rs | chia-sdk-driver |
version | 0.18.0 |
source | src |
created_at | 2024-05-21 05:31:53.790186 |
updated_at | 2024-11-08 02:10:24.995039 |
description | Driver code for interacting with standard puzzles on the Chia blockchain. |
homepage | https://github.com/Rigidity/chia-wallet-sdk |
repository | https://github.com/Rigidity/chia-wallet-sdk |
max_upload_size | |
id | 1246435 |
size | 298,802 |
This is an unofficial wallet SDK for the Chia blockchain, enabling the development of high-performance wallet applications built with Chia's light wallet protocol.
If you intend on writing an application that uses the Chia blockchain, be it a dApp, a wallet, or even just tooling on top of it, you will most likely need some code to interact with a Chia wallet. The worst case scenario is that you need to write an entire wallet and all of its driver code from scratch every time. This is very challenging to do, takes a lot of time, and can be error prone if anything is done wrong.
To build driver code, you need libraries like chia-bls and clvmr, for interacting with Chia's native BLS signatures and CLVM runtime. You compose puzzles by currying them, and spend them by constructing solutions. Even with libraries in place to do this (assuming they are tested properly), it can be very tedious and hard to get right. That's what this wallet sdk is aiming to solve.
It's essentially a higher level wrapper over the core primitives that the Chia blockchain provides, and aims to make various things in the lifecycle of wallet development simpler such as state management and signing.
This SDK is built on top of the primitives developed in the chia_rs and clvm_rs libraries. I help maintain chia_rs to add new core functionality necessary for wallet development as needed. And clvm_rs is a great implementation of the CLVM runtime, especially when combined with the clvm-traits helper library for translating Rust types to CLVM and vice versa.
Currently, the following Chia primitives are supported:
Additionally, the wallet sdk is designed to be modular, so you can extend it with your own primitives and driver code if needed! Contributions are welcome for adding things to the wallet sdk itself as well.
Special thanks to SumSet Tech, LLC for sponsoring the initial development of various parts of the wallet sdk.
Banner image produced by Midjourney.