Chia-Client-API 1.8.2

There is a newer version of this package available.
See the version list below for details.
dotnet add package Chia-Client-API --version 1.8.2                
NuGet\Install-Package Chia-Client-API -Version 1.8.2                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Chia-Client-API" Version="1.8.2" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Chia-Client-API --version 1.8.2                
#r "nuget: Chia-Client-API, 1.8.2"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Chia-Client-API as a Cake Addin
#addin nuget:?package=Chia-Client-API&version=1.8.2

// Install Chia-Client-API as a Cake Tool
#tool nuget:?package=Chia-Client-API&version=1.8.2                

Chia-Client-API

Thank you for considering using the Chia Client API for C#! Here is a brief overview of what you can expect to find in this repository:

Description

This repository contains a C# wrapper for the Chia blockchain API. It allows you to easily interact with the Chia blockchain from your C# applications.

This library is also available on NuGet. You can find it by searching for "ChiaClientAPI" in the NuGet Package Manager or by using the following command in the Package Manager Console:

Install-Package Chia-Client-API

Features

A simple, easy-to-use interface for accessing the Chia API Support for all API endpoints, including those for managing accounts, sending and receiving transactions, and querying the blockchain Detailed documentation for each API endpoint, including descriptions of input and output parameters

  • viewing, creating and managing wallets
  • sending chia, cats, nfts
  • creating offers for chia, cats and nfts
  • exploring the blockchain
  • managing datalayer
  • managing simulator
  • Minting NFTs
  • Creating CATs

Requirements

.NET 6 or higher

Installation

To install this library from the repository, simply clone the repository and open the solution file in Visual Studio. You can then build the solution and reference the compiled library in your own C# projects.

Alternatively, you can install the library from NuGet as described above.

Usage

Note: Per default, chia rpc will only listen to requests from the local machine.
If you have remote machines to manage, eg a full node or farmers, you need to enable public port listening.
For that, edit the chia configuration (default at ~/.chia/mainnet/config/config.yaml).
Look for a line starting with self-hostname like so: self_hostname: &self_hostname "localhost"
change it to: self_hostname: 0.0.0.0 to listen on all interfaces or to the local interface ip to listen on a specific interface.

To use the Chia Client API in your C# applications, you will need to create an instance of the ChiaClient class and pass in your API key:

using ChiaClientAPI;
var client = new ChiaClient("your_api_key");

You can then call any of the API endpoints by calling the corresponding method on the client object. For example, to get the balance of an account, you can use the GetBalance method:

var balance = client.GetBalance("your_account_id");
Console.WriteLine(balance);

Refer to the documentation for specific usage instructions for each API endpoint.

Creating a cat offer

this is how you offer Cat vs chia:

CatGetAssetId_Response assetId = Testnet_Wallet.Wallet_Client.CatGetAssetID_Sync(new WalletID_RPC(wallet.id));
CreateOfferForIds_RPC offer_rpc = new CreateOfferForIds_RPC();
offer_rpc.offer.Add("1", -50000); // you want to give 500000 mojos
offer_rpc.offer.Add(assetId.asset_id, 500); // you want to receive 0.5 of asset x
OfferFile offer = Testnet_Wallet.Wallet_Client.CreateOfferForIds_Sync(offer_rpc);
offer.Export("btftestoffer");

note you can also give amounts in decimal chia (note that 1 cat is normally 1000 mojos so mind the conversion there)

offer_rpc.AddOfferPosition("1", -0.005); // you want to give 500000 mojos

Contributing

We welcome contributions to this repository! If you have suggestions for improvements or new features, please open an issue or submit a pull request.

License

This library is licensed under the MIT License. Please see the LICENSE file for more information.

Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.2.0.18 109 6/11/2024
2.2.0.17 145 3/13/2024
2.2.0.14 113 3/5/2024
2.2.0 109 3/1/2024
2.1.3 195 12/21/2023
2.1.1.10 152 12/8/2023
2.1.1.9 153 11/26/2023
2.1.1.8 136 11/15/2023
2.1.1.7 115 11/15/2023
2.1.1.6 131 11/9/2023
2.1.1.4 144 10/20/2023
2.1.1 151 10/13/2023
2.0.1 153 10/5/2023
2.0.0.1 159 8/31/2023
2.0.0 155 8/28/2023
1.8.2.13 169 8/22/2023
1.8.2.12 136 8/22/2023
1.8.2.5 180 8/10/2023
1.8.2.4 155 8/9/2023
1.8.2.3 170 8/9/2023
1.8.2.2 155 8/9/2023
1.8.2.1 162 8/9/2023
1.8.2 159 7/26/2023
1.8.1.16 149 6/26/2023
1.8.1.15 159 6/23/2023
1.8.1.14 138 6/22/2023
1.8.1.13 140 6/22/2023
1.8.1.12 142 6/22/2023
1.8.1.11 141 6/22/2023
1.8.1.10 144 6/22/2023
1.8.1.9 159 6/21/2023
1.8.1.8 172 6/14/2023
1.8.1.7 147 6/14/2023
1.8.1.6 180 6/12/2023
1.8.1.5 166 6/9/2023
1.8.1.4 157 6/9/2023
1.8.1.3 161 6/9/2023
1.8.1.2 164 6/7/2023
1.8.1.1 158 6/7/2023
1.8.1 163 6/2/2023
1.8.0 182 5/11/2023
1.7.1 198 4/21/2023
1.6.2.14 298 2/8/2023
1.6.2.13 263 2/8/2023
1.6.2.12 279 2/5/2023
1.6.2.10 297 1/31/2023
1.6.2.9 270 1/31/2023
1.6.2.8 298 1/28/2023
1.6.2.7 303 1/26/2023
1.6.2.6 308 1/25/2023
1.6.2.5 290 1/24/2023
1.6.2.4 293 1/17/2023
1.6.2.3 298 1/16/2023
1.6.2.2 299 1/15/2023
1.6.2.1 303 1/13/2023
1.6.2 314 1/12/2023
1.6.1.6 301 1/11/2023
1.6.1.5 307 1/11/2023
1.6.1.4 308 1/11/2023
1.6.1.3 327 1/10/2023
1.6.1.1 317 12/29/2022
1.6.1 310 12/29/2022

This is a Major overhaul of the Package.
It implements nullable types for all endpoints. It is likely to require code changes or otherwise at least produces plentiful null value compiler warnings.

Enhanced features:
- Improved handling of null parameters: The RPC interface now properly handles null input parameters. This ensures that the application does not crash or cause unintended behavior when null is passed.
- RPC Parameter nullable: All RPC parameter objects are now nullable. This helps to prevent malformed requests and enhances the robustness of our API communication.
- Added null checks in RPC methods: Methods like BatchUpdate_Async now check if their required parameters are null before executing. This allows us to fail early and return a useful error message instead of causing an unexpected exception at runtime.
- Fixed potential NullReferenceExceptions
- Expanded XML Comments: We have vastly added or expanded XML comments to several classes and methods. These comments serve as in-code documentation and provide useful context and explanations for developers.
- All compiler warnings within the package have been resolved
Please refer to the documentation and updated code comments for more detailed information about these updates. As always, feel free to report any issues or provide feedback on these changes.