iota-sdk 1.2.3.3-alpha

This is a prerelease version of iota-sdk.
dotnet add package iota-sdk --version 1.2.3.3-alpha
                    
NuGet\Install-Package iota-sdk -Version 1.2.3.3-alpha
                    
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="iota-sdk" Version="1.2.3.3-alpha" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="iota-sdk" Version="1.2.3.3-alpha" />
                    
Directory.Packages.props
<PackageReference Include="iota-sdk" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add iota-sdk --version 1.2.3.3-alpha
                    
#r "nuget: iota-sdk, 1.2.3.3-alpha"
                    
#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.
#:package iota-sdk@1.2.3.3-alpha
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=iota-sdk&version=1.2.3.3-alpha&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=iota-sdk&version=1.2.3.3-alpha&prerelease
                    
Install as a Cake Tool

IOTA .NET SDK

This is a .NET implementation of the IOTA SDK, ported from the original IOTA Rust SDK. It provides a comprehensive set of APIs to interact with the IOTA network.

Overview

The IOTA .NET SDK enables developers to build applications that interact with the IOTA network using C# and .NET. It communicates with IOTA nodes using the IOTA JSON-RPC API for accessing both full node and indexer functionality.

Implementation Status

⚠️ This is an alpha version release and is Work in Progress ⚠️

The IOTA .NET SDK is currently under active development. Its a private and non commercial project. Feel free to contribute.

Build Status Latest Release NuGet

Released with MIT License.

Implementation Overview

The following table shows the current implementation status of the various APIs:

API Implemented Tests
CoinReadApi
GovernanceApi
ReadApi ⚠️ ⚠️
EventApi
TransactionBuilder
QuorumDriverApi

Getting Started

Installation

Add the IOTA .NET SDK NuGet package to your project:

dotnet add package IOTA.SDK

Basic Usage

The main building block of the IOTA .NET SDK is the IotaClientBuilder, which provides a simple way to connect to an IOTA network and access the available APIs:

using IOTA.SDK;
using System;
using System.Threading.Tasks;

public class Program
{
    public static async Task Main()
    {
        try
        {
            // Connect to IOTA testnet
            var iotaTestnet = await new IotaClientBuilder()
                .BuildTestnet();
            Console.WriteLine($"IOTA testnet version: {iotaTestnet.ApiVersion()}");

            // Connect to IOTA devnet
            var iotaDevnet = await new IotaClientBuilder()
                .BuildDevnet();
            Console.WriteLine($"IOTA devnet version: {iotaDevnet.ApiVersion()}");

            // Connect to IOTA mainnet
            var iotaMainnet = await new IotaClientBuilder()
                .BuildMainnet();
            Console.WriteLine($"IOTA mainnet version: {iotaMainnet.ApiVersion()}");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error: {ex.Message}");
        }
    }
}

Connecting to IOTA Network

The SDK supports connecting to various IOTA networks:

  • Local: http://127.0.0.1:9000
  • Devnet: https://api.devnet.iota.cafe:443
  • Testnet: https://api.testnet.iota.cafe:443
  • Mainnet: https://api.mainnet.iota.cafe:443

For indexer functionality, use the corresponding indexer endpoints:

  • Local: http://127.0.0.1:9124
  • Devnet: https://indexer.devnet.iota.cafe:443
  • Testnet: https://indexer.testnet.iota.cafe:443
  • Mainnet: https://indexer.mainnet.iota.cafe:443

Example:

// Connect to a specific node
var client = await new IotaClientBuilder()
    .Build("http://127.0.0.1:9000");

// Or use convenience methods
var devnetClient = await new IotaClientBuilder().BuildDevnet();
var testnetClient = await new IotaClientBuilder().BuildTestnet();
var mainnetClient = await new IotaClientBuilder().BuildMainnet();

Reading Balances

You can easily check balances for an address:

using IOTA.SDK;
using IOTA.SDK.Types;
using System;
using System.Threading.Tasks;

public class Program
{
    public static async Task Main()
    {
        try
        {
            var client = await new IotaClientBuilder().BuildTestnet();
            
            var address = IotaAddress.FromString("<YOUR IOTA ADDRESS>");
            var balances = await client.CoinReadApi().GetAllBalancesAsync(address);
            
            Console.WriteLine($"Balances for address {address}: {string.Join(", ", balances)}");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error: {ex.Message}");
        }
    }
}

Documentation

For more detailed documentation and examples, please refer to the inline code documentation and the original IOTA Rust SDK documentation which this library is based on.

Disclaimer (Haftungsausschluss)

This software is provided "as is" without warranty of any kind, either expressed or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose, and non-infringement. In no event shall the authors or copyright holders be liable for any claim, damages, or other liability, whether in an action of contract, tort or otherwise, arising from, out of, or in connection with the software or the use or other dealings in the software.

The use of this software for financial transactions or interactions with the IOTA network is at your own risk. Make sure to thoroughly test your applications and understand the implications of interacting with distributed ledger technologies before deploying to production environments.

License

This project is licensed under the MIT Licence.

API Implementation Status Table

API Method Category Implemented UTest
iota_devInspectTransactionBlock Write API
iota_dryRunTransactionBlock Write API
iota_executeTransactionBlock Write API
iota_getChainIdentifier Read API
iota_getCheckpoint Read API
iota_getCheckpoints Read API
iota_getEvents Event API
iota_getLatestCheckpointSequenceNumber Read API
iota_getMoveFunctionArgTypes Move Utils
iota_getNormalizedMoveFunction Move Utils
iota_getNormalizedMoveModule Move Utils
iota_getNormalizedMoveModulesByPackage Move Utils
iota_getNormalizedMoveStruct Move Utils
iota_getObject Read API
iota_getProtocolConfig Read API
iota_getTotalTransactionBlocks Read API
iota_getTransactionBlock Read API
iota_multiGetObjects Read API
iota_multiGetTransactionBlocks Read API
iota_tryGetPastObject Read API
iota_tryMultiGetPastObjects Read API
iotax_getAllBalances Coin Query API
iotax_getAllCoins Coin Query API
iotax_getBalance Coin Query API
iotax_getBridgeObjectInitialSharedVersion API DOC? Read API
iotax_getCirculatingSupply Coin Query API
iotax_getCoinMetadata Coin Query API
iotax_getCoins Coin Query API
iotax_getCommitteeInfo Governance Read API
iotax_getDynamicFieldObject Read API
iotax_getDynamicFieldObjectV2 Read API
iotax_getDynamicFields API DOC? Read API
iotax_getLatestBridge API DOC? Read API
iotax_getLatestIotaSystemState Governance Read API
iotax_getLatestIotaSystemStateV2 Governance Read API
iotax_getOwnedObjects Read API
iotax_getReferenceGasPrice Governance Read API
iotax_getStakes Governance Read API
iotax_getStakesByIds Governance Read API
iotax_getTimelockedStakes Governance Read API
iotax_getTimelockedStakesByIds Governance Read API
iotax_getTotalSupply Coin Query API
iotax_getValidatorsApy Governance Read API
iotax_iotaNamesFindAllRegistrationNFTs Read API
iotax_iotaNamesLookup Read API
iotax_iotaNamesReverseLookup Read API
iotax_queryEvents Event API
iotax_queryTransactionBlocks Read API
iotax_subscribeEvent Read API - -
iotax_subscribeTransaction Read API - -
unsafe_batchTransaction Transaction API
unsafe_mergeCoins Transaction API
unsafe_moveCall Transaction API
unsafe_pay Transaction API
unsafe_payAllIota Transaction API
unsafe_payIota Transaction API
unsafe_publish Transaction API
unsafe_requestAddStake Transaction API
unsafe_requestAddTimelockedStake Transaction API
unsafe_requestWithdrawStake Transaction API
unsafe_requestWithdrawTimelockedStake Transaction API
unsafe_splitCoin Transaction API
unsafe_splitCoinEqual Transaction API
unsafe_transferIota Transaction API
unsafe_transferObject Transaction API
Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  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.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.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
1.2.3.3-alpha 266 6/30/2025

Initial Package Relase