Nethereum.Circles 5.8.0

Prefix Reserved
dotnet add package Nethereum.Circles --version 5.8.0
                    
NuGet\Install-Package Nethereum.Circles -Version 5.8.0
                    
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="Nethereum.Circles" Version="5.8.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Nethereum.Circles" Version="5.8.0" />
                    
Directory.Packages.props
<PackageReference Include="Nethereum.Circles" />
                    
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 Nethereum.Circles --version 5.8.0
                    
#r "nuget: Nethereum.Circles, 5.8.0"
                    
#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 Nethereum.Circles@5.8.0
                    
#: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=Nethereum.Circles&version=5.8.0
                    
Install as a Cake Addin
#tool nuget:?package=Nethereum.Circles&version=5.8.0
                    
Install as a Cake Tool

Nethereum.Circles

Nethereum service library for interacting with Circles UBI (Universal Basic Income) protocol contracts on Gnosis Chain.

About Circles

Circles is a decentralized digital currency protocol that implements a fair Universal Basic Income system. Key features include:

  • Universal Issuance: Every participant receives 1 CRC (Circles token) per hour automatically
  • Daily Burn Mechanism (Demurrage): All balances decrease by approximately 7% annually to ensure newly-created CRC remains valuable
  • Trust-Based Transactions: Users establish trust connections enabling token transfers through social networks
  • Group Currencies: Members can convert personal CRC into fungible group currencies for community commerce

The protocol operates on Gnosis Chain through smart contracts, with users maintaining complete self-custody of their funds.

Installation

dotnet add package Nethereum.Circles

Core Components

Contract Services

The library provides generated contract services for all Circles V2 contracts:

  • HubService: Main hub contract for avatar registration, trust management, token minting, and transfers
  • DemurrageCirclesService: ERC20-wrapped Circles tokens with demurrage (time-value decay)
  • InflationaryCirclesService: ERC20-wrapped Circles tokens with inflationary representation
  • MigrationService: Contract for migrating from Circles V1 to V2
  • NameRegistryService: Service for avatar name registration

RPC Extensions

Custom RPC methods for Circles-specific data queries:

  • GetTotalBalance / GetTotalBalanceV2: Get the total CRC balance for an avatar
  • CirclesQuery: Generic paginated query interface for Circles data
  • GetTransactionHistoryQuery: Paginated transaction history for an account
  • GetTrustRelationsQuery: Query trust relationships for an avatar
  • GetAvatarInfoQuery: Get avatar information including name, type, and token ID

Usage Examples

Query Balance

using Nethereum.Web3;
using Nethereum.JsonRpc.Client;
using Nethereum.Circles.RPC.Requests;

var client = new RpcClient(new Uri("https://rpc.aboutcircles.com/"));

// Get total balance (V2)
var getTotalBalanceV2 = new GetTotalBalanceV2(client);
string balance = await getTotalBalanceV2.SendRequestAsync("0xYourAvatarAddress");
Console.WriteLine($"Total Balance: {balance}");

Interact with Hub Contract

using Nethereum.Web3;
using Nethereum.Circles.Contracts.Hub;

var web3 = new Web3("https://rpc.aboutcircles.com/");
var hubAddress = "0xc12C1E50ABB450d6205Ea2C3Fa861b3B834d13e8"; // Gnosis Chain V2 Hub

var hubService = new HubService(web3, hubAddress);

// Check if address is a human avatar
bool isHuman = await hubService.IsHumanQueryAsync("0xYourAddress");

// Check trust relationship
bool isTrusted = await hubService.IsTrustedQueryAsync("0xTruster", "0xTrustee");

// Calculate pending issuance for a human
var issuance = await hubService.CalculateIssuanceQueryAsync("0xHumanAddress");

Personal Mint with Gnosis Safe

using Nethereum.Web3;
using Nethereum.GnosisSafe;
using Nethereum.Circles.Contracts.Hub;

var privateKey = "0x...";
var safeAddress = "0xYourSafeAddress";

var web3 = new Web3(new Nethereum.Web3.Accounts.Account(privateKey), "https://rpc.aboutcircles.com/");
var hubService = new HubService(web3, hubAddress);

// Configure to execute through Gnosis Safe
hubService.ChangeContractHandlerToSafeExecTransaction(safeAddress, privateKey);

// Mint personal Circles
await hubService.PersonalMintRequestAndWaitForReceiptAsync();

Query Transaction History

using Nethereum.JsonRpc.Client;
using Nethereum.Circles.RPC.Requests;

var client = new RpcClient(new Uri("https://rpc.aboutcircles.com/"));
var transactionHistoryQuery = new GetTransactionHistoryQuery(client);

// Get first page
var transactions = await transactionHistoryQuery.SendRequestAsync("0xAvatarAddress", 100);

foreach (var tx in transactions.Response)
{
    Console.WriteLine($"Hash: {tx.TransactionHash}, Value: {tx.Value}, From: {tx.From}, To: {tx.To}");
}

// Get next page
transactions = await transactionHistoryQuery.MoveNextPageAsync(transactions);

Query Trust Relations

using Nethereum.JsonRpc.Client;
using Nethereum.Circles.RPC.Requests;

var client = new RpcClient(new Uri("https://rpc.aboutcircles.com/"));
var trustQuery = new GetTrustRelationsQuery(client);

var trustRelations = await trustQuery.SendRequestAsync("0xAvatarAddress", 20);

foreach (var relation in trustRelations.Response)
{
    Console.WriteLine($"Trustee: {relation.Trustee}, Truster: {relation.Truster}");
}

Contract Addresses

Gnosis Chain (Production)

  • Hub V2: 0xc12C1E50ABB450d6205Ea2C3Fa861b3B834d13e8
  • RPC Endpoint: https://rpc.aboutcircles.com/

Chiado Testnet

  • RPC Endpoint: https://chiado-rpc.aboutcircles.com

Dependencies

  • Nethereum.Web3: Core Web3 functionality
  • Nethereum.GnosisSafe: For Safe-based transaction execution (optional)

References

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  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 was computed.  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 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 is compatible.  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. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net451 is compatible.  net452 was computed.  net46 was computed.  net461 is compatible.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos 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
5.8.0 107 1/6/2026