Nethereum.RPC
5.8.0
Prefix Reserved
dotnet add package Nethereum.RPC --version 5.8.0
NuGet\Install-Package Nethereum.RPC -Version 5.8.0
<PackageReference Include="Nethereum.RPC" Version="5.8.0" />
<PackageVersion Include="Nethereum.RPC" Version="5.8.0" />
<PackageReference Include="Nethereum.RPC" />
paket add Nethereum.RPC --version 5.8.0
#r "nuget: Nethereum.RPC, 5.8.0"
#:package Nethereum.RPC@5.8.0
#addin nuget:?package=Nethereum.RPC&version=5.8.0
#tool nuget:?package=Nethereum.RPC&version=5.8.0
Nethereum.RPC
Nethereum.RPC is the core package providing Ethereum JSON-RPC method implementations. It contains all standard Ethereum RPC methods organized into logical categories (Eth, Net, Web3, Personal, etc.) and provides both direct RPC access and service-based APIs.
Features
- Complete implementation of Ethereum JSON-RPC specification
- Organized API surface: Eth, Net, Web3, Personal, Shh, Debug
- Service-based architecture (EthApiService, NetApiService, etc.)
- Support for all major RPC methods:
- Account management (eth_accounts, eth_getBalance)
- Block operations (eth_blockNumber, eth_getBlockByNumber)
- Transaction handling (eth_sendTransaction, eth_call, eth_estimateGas)
- Event filtering (eth_newFilter, eth_getLogs)
- Network info (net_version, eth_chainId)
- EIP-1559 support (eth_maxPriorityFeePerGas, eth_feeHistory)
- Transaction managers and nonce services
- Fee suggestion services (EIP-1559)
- Works with any IClient implementation (HTTP, WebSocket, IPC)
Installation
dotnet add package Nethereum.RPC
Dependencies
Nethereum.JsonRpc.Client- RPC client abstractionNethereum.Hex- Hex encoding/decodingNethereum.Util- UtilitiesNethereum.Model- Data modelsNethereum.Merkle.Patricia- Merkle proof support
Quick Start
Using with Web3 (Recommended)
Most users interact with RPC methods through the Web3 API, which provides a higher-level interface:
using Nethereum.Web3;
var web3 = new Web3("https://mainnet.infura.io/v3/YOUR-PROJECT-ID");
// All RPC methods are available through web3.Eth
var blockNumber = await web3.Eth.Blocks.GetBlockNumber.SendRequestAsync();
var balance = await web3.Eth.GetBalance.SendRequestAsync("0x742d35Cc6634C0532925a3b844Bc454e4438f44e");
Direct RPC Usage
For advanced scenarios, you can use RPC methods directly:
using Nethereum.JsonRpc.Client;
using Nethereum.RPC.Eth.Blocks;
using Nethereum.RPC.Eth;
var client = new RpcClient(new Uri("https://mainnet.infura.io/v3/YOUR-PROJECT-ID"));
// Direct RPC method instantiation
var ethBlockNumber = new EthBlockNumber(client);
var blockNumber = await ethBlockNumber.SendRequestAsync();
var ethGetBalance = new EthGetBalance(client);
var balance = await ethGetBalance.SendRequestAsync("0x742d35Cc6634C0532925a3b844Bc454e4438f44e");
Package Organization
The package is organized by RPC method category:
Nethereum.RPC/
├── Eth/ # Ethereum methods (eth_*)
│ ├── Blocks/ # Block-related methods
│ ├── Transactions/ # Transaction methods
│ ├── Filters/ # Event filtering
│ ├── Services/ # Block services
│ └── DTOs/ # Data transfer objects
├── Net/ # Network methods (net_*)
├── Web3/ # Web3 methods (web3_*)
├── Personal/ # Personal methods (personal_*)
├── Shh/ # Whisper methods (shh_*)
├── DebugNode/ # Debug methods (debug_*)
├── Chain/ # Chain-specific methods
├── TransactionManagers/ # Transaction management
├── NonceServices/ # Nonce tracking
├── Fee1559Suggestions/ # EIP-1559 fee estimation
├── EthApiService.cs # Service wrapper for Eth methods
├── NetApiService.cs # Service wrapper for Net methods
└── PersonalApiService.cs # Service wrapper for Personal methods
Examples
Example 1: Getting Block Information
using Nethereum.JsonRpc.Client;
using Nethereum.RPC.Eth.Blocks;
using Nethereum.RPC.Eth.DTOs;
var client = new RpcClient(new Uri("https://mainnet.infura.io/v3/YOUR-PROJECT-ID"));
// Get current block number
var ethBlockNumber = new EthBlockNumber(client);
var blockNumber = await ethBlockNumber.SendRequestAsync();
Console.WriteLine($"Current block: {blockNumber.Value}");
// Get block by number
var ethGetBlockByNumber = new EthGetBlockByNumber(client);
var block = await ethGetBlockByNumber.SendRequestAsync(
new BlockParameter(blockNumber),
returnFullTransactionObjects: false
);
Console.WriteLine($"Block hash: {block.BlockHash}");
Console.WriteLine($"Block timestamp: {block.Timestamp.Value}");
Console.WriteLine($"Transaction count: {block.TransactionHashes.Length}");
Output:
Current block: 18500000
Block hash: 0x1234...
Block timestamp: 1697000000
Transaction count: 150
Example 2: Checking Account Balance
using Nethereum.JsonRpc.Client;
using Nethereum.RPC.Eth;
using Nethereum.RPC.Eth.DTOs;
var client = new RpcClient(new Uri("https://mainnet.infura.io/v3/YOUR-PROJECT-ID"));
var ethGetBalance = new EthGetBalance(client);
// Get balance at latest block
var balance = await ethGetBalance.SendRequestAsync(
"0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
BlockParameter.CreateLatest()
);
// Convert from Wei to Ether
var etherBalance = Web3.Convert.FromWei(balance.Value);
Console.WriteLine($"Balance: {etherBalance} ETH");
// Get balance at specific block
var blockNumber = new BlockParameter(18000000);
var historicalBalance = await ethGetBalance.SendRequestAsync(
"0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
blockNumber
);
Console.WriteLine($"Historical balance: {Web3.Convert.FromWei(historicalBalance.Value)} ETH");
Source: tests/Nethereum.RPC.IntegrationTests/Testers/EthGetBalanceTester.cs
Example 3: Calling Smart Contract Methods (eth_call)
using Nethereum.JsonRpc.Client;
using Nethereum.RPC.Eth.Transactions;
using Nethereum.RPC.Eth.DTOs;
var client = new RpcClient(new Uri("https://mainnet.infura.io/v3/YOUR-PROJECT-ID"));
// Example: Call a contract method (e.g., balanceOf)
var ethCall = new EthCall(client);
var callInput = new CallInput
{
To = "0x32eb97b8ad202b072fd9066c03878892426320ed",
From = "0x12890D2cce102216644c59daE5baed380d84830c",
// Function signature + encoded parameters
Data = "0xc6888fa10000000000000000000000000000000000000000000000000000000000000045"
};
var result = await ethCall.SendRequestAsync(callInput, BlockParameter.CreateLatest());
Console.WriteLine($"Call result: {result}");
// For typed contract interactions, use Nethereum.Contracts instead
Source: tests/Nethereum.RPC.IntegrationTests/Testers/EthCallTester.cs
Example 4: Estimating Gas
using Nethereum.JsonRpc.Client;
using Nethereum.RPC.Eth.Transactions;
using Nethereum.RPC.Eth.DTOs;
var client = new RpcClient(new Uri("https://mainnet.infura.io/v3/YOUR-PROJECT-ID"));
var ethEstimateGas = new EthEstimateGas(client);
var transactionInput = new CallInput
{
From = "0x12890D2cce102216644c59daE5baed380d84830c",
To = "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
Value = new Nethereum.Hex.HexTypes.HexBigInteger(1000000000000000000), // 1 ETH
};
var gasEstimate = await ethEstimateGas.SendRequestAsync(transactionInput);
Console.WriteLine($"Estimated gas: {gasEstimate.Value}");
// Use the estimate with a buffer for actual transaction
var gasLimit = gasEstimate.Value * 110 / 100; // 10% buffer
Console.WriteLine($"Recommended gas limit: {gasLimit}");
Example 5: Getting Chain ID
using Nethereum.JsonRpc.Client;
using Nethereum.RPC.Eth;
var client = new RpcClient(new Uri("https://mainnet.infura.io/v3/YOUR-PROJECT-ID"));
var ethChainId = new EthChainId(client);
var chainId = await ethChainId.SendRequestAsync();
Console.WriteLine($"Chain ID: {chainId.Value}");
// Common chain IDs:
// 1 = Ethereum Mainnet
// 5 = Goerli
// 11155111 = Sepolia
// 137 = Polygon
// 42161 = Arbitrum
Source: tests/Nethereum.RPC.IntegrationTests/Testers/EthChainIdTester.cs
Example 6: Working with Different Clients (WebSocket, IPC)
using Nethereum.JsonRpc.WebSocketClient;
using Nethereum.JsonRpc.IpcClient;
using Nethereum.RPC.Eth.Blocks;
using Nethereum.Web3;
using Nethereum.Web3.Accounts.Managed;
// WebSocket client
var clientWs = new WebSocketClient("ws://127.0.0.1:8546");
var web3Ws = new Web3(clientWs);
var blockNumberWs = await web3Ws.Eth.Blocks.GetBlockNumber.SendRequestAsync();
Console.WriteLine($"Block number (WebSocket): {blockNumberWs.Value}");
// IPC client (Unix socket or named pipe)
var clientIpc = new IpcClient("jsonrpc.ipc");
var web3Ipc = new Web3(clientIpc);
var blockNumberIpc = await web3Ipc.Eth.Blocks.GetBlockNumber.SendRequestAsync();
Console.WriteLine($"Block number (IPC): {blockNumberIpc.Value}");
// With managed account
var account = new ManagedAccount("0x12890d2cce102216644c59daE5baed380d84830c", "password");
var web3WithAccount = new Web3(account, clientWs);
Source: consoletests/Nethereum.Parity.Reactive.ConsoleTest/Program.cs
Example 7: Building RPC Requests for Custom Use Cases
using Nethereum.RPC.Eth;
using Nethereum.RPC.Eth.DTOs;
// Build request without sending it (useful for batching or custom handling)
var ethGetBalance = new EthGetBalance();
var request = ethGetBalance.BuildRequest(
"0x12890d2cce102216644c59daE5baed380d84830c",
BlockParameter.CreateLatest()
);
Console.WriteLine($"Method: {request.Method}");
Console.WriteLine($"Params: {string.Join(", ", request.RawParameters)}");
// You can now send this request through any client
// Or batch multiple requests together
var ethBlockNumber = new EthBlockNumber();
var request2 = ethBlockNumber.BuildRequest();
// Both requests can be sent in a batch
Source: consoletests/Nethereum.Parity.Reactive.ConsoleTest/Program.cs
Example 8: Network Information
using Nethereum.JsonRpc.Client;
using Nethereum.RPC.Net;
var client = new RpcClient(new Uri("https://mainnet.infura.io/v3/YOUR-PROJECT-ID"));
// Get network version (chain ID as string)
var netVersion = new NetVersion(client);
var version = await netVersion.SendRequestAsync();
Console.WriteLine($"Network version: {version}");
// Check if node is listening for network connections
var netListening = new NetListening(client);
var isListening = await netListening.SendRequestAsync();
Console.WriteLine($"Node listening: {isListening}");
// Get peer count
var netPeerCount = new NetPeerCount(client);
var peerCount = await netPeerCount.SendRequestAsync();
Console.WriteLine($"Peer count: {peerCount.Value}");
Example 9: Transaction Receipt
using Nethereum.JsonRpc.Client;
using Nethereum.RPC.Eth.Transactions;
using Nethereum.RPC.Eth.DTOs;
var client = new RpcClient(new Uri("https://mainnet.infura.io/v3/YOUR-PROJECT-ID"));
var ethGetTransactionReceipt = new EthGetTransactionReceipt(client);
var txHash = "0x1234..."; // Your transaction hash
var receipt = await ethGetTransactionReceipt.SendRequestAsync(txHash);
if (receipt != null)
{
Console.WriteLine($"Transaction status: {(receipt.Status.Value == 1 ? "Success" : "Failed")}");
Console.WriteLine($"Block number: {receipt.BlockNumber.Value}");
Console.WriteLine($"Gas used: {receipt.GasUsed.Value}");
Console.WriteLine($"Contract address: {receipt.ContractAddress}"); // If contract creation
// Decode events (logs)
foreach (var log in receipt.Logs)
{
Console.WriteLine($"Log address: {log.Address}");
Console.WriteLine($"Log topics: {string.Join(", ", log.Topics)}");
}
}
else
{
Console.WriteLine("Transaction not found or pending");
}
Example 10: EIP-1559 Gas Fee Estimation
using Nethereum.JsonRpc.Client;
using Nethereum.RPC.Eth;
using Nethereum.RPC.Eth.DTOs;
var client = new RpcClient(new Uri("https://mainnet.infura.io/v3/YOUR-PROJECT-ID"));
// Get max priority fee per gas (tip to miner)
var ethMaxPriorityFeePerGas = new EthMaxPriorityFeePerGas(client);
var maxPriorityFee = await ethMaxPriorityFeePerGas.SendRequestAsync();
Console.WriteLine($"Max priority fee: {maxPriorityFee.Value} wei");
// Get base fee from latest block
var ethGetBlockByNumber = new EthGetBlockByNumber(client);
var block = await ethGetBlockByNumber.SendRequestAsync(
BlockParameter.CreateLatest(),
false
);
var baseFee = block.BaseFeePerGas;
Console.WriteLine($"Base fee: {baseFee.Value} wei");
// Calculate max fee per gas (base fee + priority fee + buffer)
var maxFeePerGas = baseFee.Value + (maxPriorityFee.Value * 2);
Console.WriteLine($"Recommended max fee: {maxFeePerGas} wei");
// Use in EIP-1559 transaction
var tx1559 = new TransactionInput
{
From = "0x12890D2cce102216644c59daE5baed380d84830c",
To = "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
Value = new Nethereum.Hex.HexTypes.HexBigInteger(1000000000000000000),
MaxPriorityFeePerGas = maxPriorityFee,
MaxFeePerGas = new Nethereum.Hex.HexTypes.HexBigInteger(maxFeePerGas),
Type = new Nethereum.Hex.HexTypes.HexBigInteger(2) // EIP-1559 transaction type
};
API Service Classes
The package provides service classes that group related RPC methods:
EthApiService
Provides access to all Ethereum RPC methods:
using Nethereum.JsonRpc.Client;
using Nethereum.RPC;
var client = new RpcClient(new Uri("https://mainnet.infura.io/v3/YOUR-PROJECT-ID"));
var ethApi = new EthApiService(client);
// Access any Eth method through the service
var blockNumber = await ethApi.Blocks.GetBlockNumber.SendRequestAsync();
var balance = await ethApi.GetBalance.SendRequestAsync("0x742d35Cc6634C0532925a3b844Bc454e4438f44e");
var gasPrice = await ethApi.GasPrice.SendRequestAsync();
NetApiService
Provides access to network RPC methods:
var netApi = new NetApiService(client);
var version = await netApi.Version.SendRequestAsync();
var peerCount = await netApi.PeerCount.SendRequestAsync();
var isListening = await netApi.Listening.SendRequestAsync();
PersonalApiService
Provides access to personal/account RPC methods:
var personalApi = new PersonalApiService(client);
// Note: Most nodes disable personal API methods for security
var accounts = await personalApi.ListAccounts.SendRequestAsync();
Block Parameters
Many RPC methods accept a BlockParameter to specify which block to query:
using Nethereum.RPC.Eth.DTOs;
// Latest block
var latest = BlockParameter.CreateLatest();
// Earliest block (genesis)
var earliest = BlockParameter.CreateEarliest();
// Pending block
var pending = BlockParameter.CreatePending();
// Specific block number
var specific = new BlockParameter(18000000);
// Use with any method that accepts block parameter
var balance = await ethGetBalance.SendRequestAsync(address, latest);
Transaction Types
The package supports all Ethereum transaction types:
using Nethereum.RPC.Eth.DTOs;
using Nethereum.Hex.HexTypes;
// Legacy transaction (Type 0)
var legacyTx = new TransactionInput
{
From = "0x...",
To = "0x...",
Value = new HexBigInteger(1000000000000000000),
Gas = new HexBigInteger(21000),
GasPrice = new HexBigInteger(20000000000) // 20 gwei
};
// EIP-2930 transaction (Type 1) - with access list
var eip2930Tx = new TransactionInput
{
From = "0x...",
To = "0x...",
Type = new HexBigInteger(1),
AccessList = new AccessListItem[]
{
new AccessListItem
{
Address = "0x...",
StorageKeys = new[] { "0x..." }
}
}
};
// EIP-1559 transaction (Type 2) - with dynamic fees
var eip1559Tx = new TransactionInput
{
From = "0x...",
To = "0x...",
Type = new HexBigInteger(2),
MaxPriorityFeePerGas = new HexBigInteger(2000000000), // 2 gwei tip
MaxFeePerGas = new HexBigInteger(50000000000) // 50 gwei max
};
DTOs (Data Transfer Objects)
The package includes comprehensive DTOs for all RPC requests and responses:
BlockWithTransactions/Block- Block informationTransaction- Transaction detailsTransactionReceipt- Transaction receipt with logsFilterInput- Event filter configurationLog- Event log entryCallInput/TransactionInput- Transaction/call inputSyncStatus- Node sync statusAccessListItem- EIP-2930 access list
All DTOs are in the Nethereum.RPC.Eth.DTOs namespace.
Error Handling
using Nethereum.JsonRpc.Client;
using Nethereum.RPC.Eth;
var client = new RpcClient(new Uri("https://mainnet.infura.io/v3/YOUR-PROJECT-ID"));
var ethGetBalance = new EthGetBalance(client);
try
{
var balance = await ethGetBalance.SendRequestAsync(
"0xinvalid-address",
BlockParameter.CreateLatest()
);
}
catch (RpcResponseException ex)
{
Console.WriteLine($"RPC Error: {ex.Message}");
Console.WriteLine($"RPC Error Code: {ex.RpcError?.Code}");
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
Best Practices
Use Web3 for Most Scenarios: Unless you need direct RPC access, use the Web3 API which provides a more convenient interface
Reuse Client Instances: Create one client and reuse it across multiple RPC method instances
Handle Null Responses: Some methods return null (e.g., pending transactions, receipts for pending txs)
Use BlockParameter Appropriately:
Latest- Most recent block (may reorganize)Finalized- Finalized block (after merge, more stable)- Specific number - For historical queries
Batch Requests When Possible: For multiple independent queries, use batch requests to reduce round trips
Choose the Right Client:
- HTTP for simple queries
- WebSocket for subscriptions and frequent updates
- IPC for local node connections (lowest latency)
EIP-1559 Gas Estimation: Always query
eth_maxPriorityFeePerGasand base fee from latest block for accurate EIP-1559 transactionsError Handling: Always handle
RpcResponseExceptionfor RPC-level errors (invalid params, execution reverted, etc.)
Advanced Usage
Transaction Managers
The package includes transaction manager infrastructure for handling nonce tracking and transaction lifecycle:
using Nethereum.RPC.TransactionManagers;
using Nethereum.RPC.NonceServices;
// Custom nonce management
var nonceService = new InMemoryNonceService(address, client);
var currentNonce = await nonceService.GetNextNonceAsync();
Fee Suggestion Services
For dynamic gas fee estimation:
using Nethereum.RPC.Fee1559Suggestions;
var feeSuggestionService = new Fee1559SuggestionService(client);
var suggestion = await feeSuggestionService.SuggestFeeAsync();
Console.WriteLine($"Suggested base fee: {suggestion.BaseFee}");
Console.WriteLine($"Suggested max priority fee: {suggestion.MaxPriorityFeePerGas}");
Console.WriteLine($"Suggested max fee: {suggestion.MaxFeePerGas}");
Related Packages
- Nethereum.Web3 - High-level Web3 API (builds on this package)
- Nethereum.Contracts - Smart contract interaction (uses RPC methods)
- Nethereum.JsonRpc.Client - HTTP client implementation
- Nethereum.JsonRpc.WebSocketClient - WebSocket client
- Nethereum.JsonRpc.IpcClient - IPC client
- Nethereum.RPC.Reactive - Reactive extensions for RPC (polling, subscriptions)
Testing
The package includes comprehensive integration tests demonstrating all RPC methods:
tests/Nethereum.RPC.IntegrationTests/Testers/
├── EthGetBalanceTester.cs
├── EthBlockNumberTester.cs
├── EthCallTester.cs
├── EthChainIdTester.cs
├── EthSendTransactionTester.cs
└── ... (50+ test classes)
Additional Resources
| Product | Versions 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. |
-
.NETFramework 4.5.1
- Nethereum.Hex (>= 5.8.0)
- Nethereum.JsonRpc.Client (>= 5.8.0)
- Nethereum.Merkle.Patricia (>= 5.8.0)
- Nethereum.Model (>= 5.8.0)
- Nethereum.Util (>= 5.8.0)
- Newtonsoft.Json (>= 11.0.2 && < 14.0.0)
-
.NETFramework 4.6.1
- Nethereum.Hex (>= 5.8.0)
- Nethereum.JsonRpc.Client (>= 5.8.0)
- Nethereum.Merkle.Patricia (>= 5.8.0)
- Nethereum.Model (>= 5.8.0)
- Nethereum.Util (>= 5.8.0)
- Newtonsoft.Json (>= 11.0.2 && < 14.0.0)
-
.NETStandard 2.0
- Nethereum.Hex (>= 5.8.0)
- Nethereum.JsonRpc.Client (>= 5.8.0)
- Nethereum.Merkle.Patricia (>= 5.8.0)
- Nethereum.Model (>= 5.8.0)
- Nethereum.Util (>= 5.8.0)
- NETStandard.Library (>= 2.0.3)
- Newtonsoft.Json (>= 11.0.2 && < 14.0.0)
-
net6.0
- Nethereum.Hex (>= 5.8.0)
- Nethereum.JsonRpc.Client (>= 5.8.0)
- Nethereum.Merkle.Patricia (>= 5.8.0)
- Nethereum.Model (>= 5.8.0)
- Nethereum.Util (>= 5.8.0)
- Newtonsoft.Json (>= 11.0.2 && < 14.0.0)
-
net8.0
- Nethereum.Hex (>= 5.8.0)
- Nethereum.JsonRpc.Client (>= 5.8.0)
- Nethereum.Merkle.Patricia (>= 5.8.0)
- Nethereum.Model (>= 5.8.0)
- Nethereum.Util (>= 5.8.0)
- Newtonsoft.Json (>= 11.0.2 && < 14.0.0)
-
net9.0
- Nethereum.Hex (>= 5.8.0)
- Nethereum.JsonRpc.Client (>= 5.8.0)
- Nethereum.Merkle.Patricia (>= 5.8.0)
- Nethereum.Model (>= 5.8.0)
- Nethereum.Util (>= 5.8.0)
- Newtonsoft.Json (>= 11.0.2 && < 14.0.0)
NuGet packages (41)
Showing the top 5 NuGet packages that depend on Nethereum.RPC:
| Package | Downloads |
|---|---|
|
Nethereum.Contracts
Nethereum Contracts is the core library to interact via RPC with Smart contracts in Ethereum |
|
|
Nethereum.Web3
Nethereum.Web3 Ethereum Web3 Class Library to interact via RPC with an Ethereum client, for example geth. Including contract interaction, deployment, transaction, encoding / decoding and event filters |
|
|
Nethereum.Accounts
Nethereum.Accounts Ethereum Accounts and Transaction Managers Class Library |
|
|
Nethereum.BlockchainProcessing
Nethereum.BlockchainProcessing Ethereum blockchain processing allowing to crawl Blocks, Transactions, TransactionReceipts and Logs (Event) for storage and / or using custom handlers like queuing , search, etc |
|
|
Nethereum.RPC.Reactive
Nethereum.RPC.Reactive, Reactive Client Subscriptions (WebSockets) and RPC Extensions for Nethereum |
GitHub repositories (5)
Showing the top 5 popular GitHub repositories that depend on Nethereum.RPC:
| Repository | Stars |
|---|---|
|
ChainSafe/web3.unity
🕹 Unity SDK for building games that interact with blockchains.
|
|
|
Texnomic/SecureDNS
Secure, Modern, Fully-Featured, All-In-One Cross-Architecture & Cross-Platform DNS Server Using .NET 10
|
|
|
yc-l/yc.boilerplate
YC. Boilerplate is a set of loose coupling, flexible combination, complete functions, convenient development, and reduces the workload of development.
|
|
|
JayArrowz/PancakeTokenSniper
BSC BNB Pancake token sniper, buy, take profit and rug check
|
|
|
biheBlockChain/MyLinkToken
开源链克口袋,玩客币钱包
|
| Version | Downloads | Last Updated |
|---|---|---|
| 5.8.0 | 2,507 | 1/6/2026 |
| 5.0.0 | 305,539 | 5/28/2025 |
| 4.29.0 | 227,348 | 2/10/2025 |
| 4.28.0 | 73,263 | 1/7/2025 |
| 4.27.1 | 12,885 | 12/24/2024 |
| 4.27.0 | 2,009 | 12/24/2024 |
| 4.26.0 | 103,157 | 10/1/2024 |
| 4.25.0 | 26,178 | 9/19/2024 |
| 4.21.4 | 98,168 | 8/9/2024 |
| 4.21.3 | 13,256 | 7/22/2024 |
| 4.21.2 | 69,871 | 6/26/2024 |
| 4.21.1 | 2,958 | 6/26/2024 |
| 4.21.0 | 13,199 | 6/18/2024 |
| 4.20.0 | 318,517 | 3/28/2024 |
| 4.19.0 | 86,580 | 2/16/2024 |
| 4.18.0 | 298,532 | 11/21/2023 |
| 4.17.1 | 78,727 | 9/28/2023 |
| 4.17.0 | 17,448 | 9/27/2023 |
| 4.16.0 | 122,224 | 8/14/2023 |
| 4.15.2 | 131,579 | 7/11/2023 |
| 4.15.1 | 4,446 | 7/11/2023 |
| 4.15.0 | 4,929 | 7/11/2023 |
| 4.14.0 | 193,851 | 3/19/2023 |
| 4.13.0 | 133,346 | 2/18/2023 |
| 4.12.0 | 271,361 | 12/9/2022 |
| 4.11.0 | 175,610 | 10/27/2022 |
| 4.9.0 | 115,579 | 9/27/2022 |
| 4.8.0 | 181,505 | 8/24/2022 |
| 4.7.0 | 173,115 | 7/20/2022 |
| 4.6.1 | 134,244 | 6/18/2022 |
| 4.6.0 | 10,720 | 6/16/2022 |
| 4.5.0 | 407,451 | 5/13/2022 |
| 4.4.1 | 108,430 | 4/27/2022 |
| 4.4.0 | 14,647 | 4/27/2022 |
| 4.3.0 | 72,739 | 4/12/2022 |
| 4.2.0 | 175,993 | 2/18/2022 |
| 4.1.1 | 492,365 | 11/4/2021 |
| 4.1.0 | 31,184 | 10/15/2021 |
| 4.0.5 | 139,742 | 8/12/2021 |
| 4.0.4 | 8,699 | 8/10/2021 |
| 4.0.3 | 8,781 | 8/8/2021 |
| 4.0.2 | 7,712 | 8/5/2021 |
| 4.0.1 | 14,250 | 7/28/2021 |
| 4.0.0 | 19,444 | 7/26/2021 |
| 3.8.0 | 399,268 | 7/3/2020 |
| 3.7.1 | 117,805 | 2/13/2020 |
| 3.7.0 | 10,462 | 2/13/2020 |
| 3.6.0 | 33,765 | 1/27/2020 |
| 3.5.0 | 21,708 | 12/31/2019 |
| 3.4.0 | 153,426 | 7/29/2019 |
| 3.3.0 | 79,227 | 4/23/2019 |
| 3.2.0 | 45,755 | 4/8/2019 |
| 3.1.2 | 23,854 | 3/13/2019 |
| 3.1.1 | 6,353 | 3/12/2019 |
| 3.1.0 | 27,412 | 3/12/2019 |
| 3.0.0 | 38,574 | 11/28/2018 |
| 3.0.0-rc3 | 5,926 | 10/25/2018 |
| 3.0.0-rc2 | 3,743 | 10/24/2018 |
| 3.0.0-rc1 | 9,243 | 7/25/2018 |
| 2.5.1 | 105,611 | 6/5/2018 |
| 2.5.0 | 6,473 | 6/4/2018 |
| 2.4.0 | 52,866 | 3/11/2018 |
| 2.3.1 | 7,987 | 3/7/2018 |
| 2.3.0 | 6,371 | 3/6/2018 |
| 2.2.3 | 19,106 | 12/16/2017 |
| 2.2.2 | 6,160 | 12/16/2017 |
| 2.2.0 | 6,317 | 12/8/2017 |
| 2.1.0 | 11,582 | 10/23/2017 |
| 2.0.1 | 6,093 | 10/4/2017 |
| 2.0.0 | 7,067 | 9/26/2017 |
| 2.0.0-rc7 | 4,243 | 8/17/2017 |
| 2.0.0-rc6-2 | 3,798 | 7/29/2017 |
| 2.0.0-rc6.1 | 1,119 | 7/26/2017 |
| 2.0.0-rc5 | 2,814 | 6/19/2017 |
| 2.0.0-rc4 | 3,875 | 6/6/2017 |
| 2.0.0-rc3 | 3,525 | 4/11/2017 |
| 2.0.0-rc2-fix | 3,030 | 4/6/2017 |
| 2.0.0-rc2 | 1,649 | 4/5/2017 |
| 2.0.0-rc1 | 3,594 | 2/8/2017 |
| 1.0.6 | 5,346 | 2/3/2017 |
| 1.0.5 | 2,354 | 1/31/2017 |
| 1.0.4 | 5,109 | 12/10/2016 |
| 1.0.3 | 3,150 | 11/28/2016 |
| 1.0.2 | 3,290 | 11/21/2016 |
| 1.0.1 | 3,639 | 10/31/2016 |
| 1.0.0 | 14,040 | 9/14/2016 |
| 1.0.0-rc6 | 2,524 | 9/12/2016 |
| 1.0.0-rc5 | 5,646 | 8/1/2016 |
| 1.0.0-rc4 | 3,320 | 7/29/2016 |
| 1.0.0-rc1 | 2,560 | 3/30/2016 |
| 1.0.0-alpha | 2,681 | 2/27/2016 |