Repository files navigation

Nethereum

Join the chat at https://gitter.im/juanfranblanco/Ethereum.RPCDocumentation StatusNuGet version

Azure DevOps CI CI Build / Test Status

Azure DevOps CI Code Gen: CI Code gen Build / Test Status CI dev packages: MyGet Pre Release

What is Nethereum ?

Nethereum is the .Net integration library for Ethereum, simplifying the access and smart contract interaction with Ethereum nodes both public or permissioned like Geth, Parity or Quorum.

Nethereum is developed targeting netstandard 1.1, net451 and also as a portable library, hence it is compatible with all the operating systems (Windows, Linux, MacOS, Android and OSX) and has been tested on cloud, mobile, desktop, Xbox, hololens and windows IoT.

Upcoming releases will include functionalities such as DevP2P, Plasma and Micro-Payments.

Issues, Requests and help

Please join the chat at: Join the chat at https://gitter.im/juanfranblanco/Ethereum.RPC

We should be able to answer there any simple queries, general comments or requests, everyone is welcome. In a similar feel free to raise any issue or pull request.

Documentation

The documentation and guides can be found at Read the docs. For live examples you can check the workbooks project Nethereum.Workbooks

Features

  • JSON RPC / IPC Ethereum core methods.
  • Geth management API (admin, personal, debugging, miner).
  • Parity management API.
  • Quorum integration.
  • Simplified smart contract interaction for deployment, function calling, transaction and event filtering and decoding of topics.
  • Unity 3d Unity integration.
  • ABI to .Net type encoding and decoding, including attribute based for complex object deserialization.
  • Hd Wallet
  • Transaction, RLP and message signing, verification and recovery of accounts.
  • Libraries for standard contracts Token, ENS and Uport
  • Integrated TestRPC testing to simplify TDD and BDD (Specflow) development.
  • Key storage using Web3 storage standard, compatible with Geth and Parity.
  • Simplified account life cycle for both managed by third party client (personal) or stand alone (signed transactions).
  • Low level Interception of RPC calls.
  • Code generation of smart contracts services.

Quick installation

Nethereum provides two types of packages. Standalone packages targeting Netstandard 1.1, net451 and where possible net351 to support Unity3d. There is also a Nethereum.Portable library which combines all the packages into a single portable library. As netstandard evolves and is more widely supported, the portable library might be eventually deprecated.

To install the latest version:

Windows users

To install the main packages you can either:

PM > Install-Package Nethereum.Web3

or

PM > Install-Package Nethereum.Portable

Mac/Linux users

dotnet add package Nethereum.Web3 

or

dotnet add package Nethereum.Portable

Main Libraries

Project SourceNuget_PackageDescription
Nethereum.PortableNuGet versionPortable class library combining all the different libraries in one package
Nethereum.Web3NuGet versionEthereum Web3 Class Library simplifying the interaction via RPC. Includes contract interaction, deployment, transaction, encoding / decoding and event filters
Nethereum.UnityUnity3d integration, libraries can be found in the Nethereum releases
Nethereum.GethNuGet versionNethereum.Geth is the extended Web3 library for Geth. This includes the non-generic RPC API client methods to interact with the Go Ethereum Client (Geth) like Admin, Debug, Miner
Nethereum.QuorumNuGet versionExtension to interact with Quorum, the permissioned implementation of Ethereum supporting data privacy created by JP Morgan
Nethereum.ParityNuGet versionNethereum.Parity is the extended Web3 library for Parity. Including the non-generic RPC API client methods to interact with Parity. (WIP)

Core Libraries

Project SourceNuget_PackageDescription
Nethereum.ABINuGet versionEncoding and decoding of ABI Types, functions, events of Ethereum contracts
Nethereum.EVMEthereum Virtual Machine API
Nethereum.HexNuGet versionHexTypes for encoding and decoding String, BigInteger and different Hex helper functions
Nethereum.RPCNuGet versionCore RPC Class Library to interact via RCP with an Ethereum client
Nethereum.JsonRpc.ClientNuGet versionNethereum JsonRpc.Client core library to use in conjunction with either the JsonRpc.RpcClient, the JsonRpc.IpcClient or other custom Rpc provider
Nethereum.JsonRpc.RpcClientNuGet versionJsonRpc Rpc Client using Http
Nethereum JsonRpc IpcClientNuGet versionJsonRpc IpcClient provider for Windows, Linux and Unix
Nethereum.RLPNuGet versionRLP encoding and decoding
Nethereum.KeyStoreNuGet versionKeystore generation, encryption and decryption for Ethereum key files using the Web3 Secret Storage definition, https://github.com/ethereum/wiki/wiki/Web3-Secret-Storage-Definition
Nethereum.SignerNuGet versionNethereum signer library to sign and verify messages, RLP and transactions using an Ethereum account private key
Nethereum.ContractsNuGet versionCore library to interact via RPC with Smart contracts in Ethereum
Nethereum.IntegrationTestingIntegration testing module
Nethereum.HDWalletNuGet versionGenerates an HD tree of Ethereum compatible addresses from a randomly generated seed phrase (using BIP32 and BIP39)

Note: IPC is supported for Windows, Unix and Linux but is only available using Nethereum.Web3 not Nethereum.Portable

Smart contract API Libraries

Project SourceNuget_PackageDescription
Nethereum.StandardTokenEIP20NuGet versionNethereum.StandardTokenEIP20 Ethereum Service to interact with ERC20 compliant contracts
Nethereum.UportNuGet versionUport registry library
Nethereum.ENSNuGet versionEthereum Name service library (original ENS) WIP to upgrade to latest ENS

Utilities

Project SourceDescription
Nethereum.Generator.Console
Nethereum.ConsoleA collection of command line utilities to interact with Ethereum and account management
TestchainsPre-configured devchains for fast response (PoA)
DappHybridA cross-platform hybrid hosting mechanism for web based decentralised applications

Training modules

Project SourceDescription
Nethereum.WorkbooksXamarin Workbook tutorials including executable code
Nethereum.TutorialsTutorials to run on VS Studio

Code samples

SourceDescription
Keystore generatorKeystore file generator
FaucetWeb application template for an Ether faucet
Nethereum FlappyThe source code files for the Unity3d game integrating with Ethereum
Nethereum Game SampleSample game demonstrating how to integrate Nethereum with UrhoSharp's SamplyGame to build a cross-platform game interacting with Ethereum
Nethereum UI wallet sampleCross platform wallet example using Nethereum, Xamarin.Forms and MvvmCross, targeting: Android, iOS, Windows Mobile, Desktop (windows 10 uwp), IoT with the Raspberry PI and Xbox.
Nethereum Windows wallet sampleWindows forms wallet sample providing the core functionality for Loading accounts from different mediums, Ether transfer, Standard token interaction. This is going to be the basis for the future cross-platform wallet / dapp
Nethereum Windows wallet sampleWindows forms wallet sample providing the core functionality for Loading accounts from different mediums, Ether transfer, Standard token interaction. This is going to be the basis for the future cross-platform wallet / dapp
Blazor/Blockchain ExplorerWasm blockchain explorer based on Blazor and ReactiveUI

Video guides

There a few video guides, which might be helpful to get started. Please note that these videos are for version 1.0, so some areas have changed.

The code for these tutorials can be found here

Introductions

These are two videos that can take you through all the initial steps from creating a contract to deployment, one in the classic windows, visual studio environment and another in a cross platform mac and visual studio code.

Windows, Visual Studio

This video takes you through the steps of creating the a smart contract, compile it, start a private chain and deploy it using Nethereum.

Smart contracts, private test chain and deployment to Ethereum with Nethereum

Introduction to Calls, Transactions, Events, Filters and Topics

This hands on demo provides an introduction to calls, transactions, events filters and topics

Introduction to Calls, Transactions, Events, Filters and Topics

Mappings, Structs, Arrays and complex Functions Output (DTOs)

This video provides an introduction on how to store and retrieve data from structs, mappings and arrays decoding multiple output parameters to Data Transfer Objects

Mappings, Structs, Arrays and complex Functions Output (DTOs)

Thanks and Credits

  • Many thanks to Cass for the fantastic logo (https://github.com/cassiopaia) and everyone in Maker for providing very early feedback.
  • Many thanks to everyone who has submitted a request for extra features, help or bugs either here in github, gitter or other channels, you are continuously shaping this project. A big shout out specially to @slothbag, @matt.tan, @knocte, @TrekDev, @raymens, @rickzanux, @naddison36, @bobsummerwill, @brendan87, @dylanmckendry that were using Nethereum and providing great feedback from the beginning. @djsowa Marcin Sowa for his help on IPC in Linux.
  • Everyone in the Ethereum, Consensys and the blockchain community.
  • Huge shout out to everyone developing all the different Ethereum implementations Geth, Parity, EthereumJ, EthCpp, ethereum-js (and every other utility around it), python (in the different shapes), ruby (digix guys), solidity, vyper, serpent, web3 implementations (web3js the first) and ethjs, web3j, etc, etc and last but not least the .Net Bitcoin implementation.

About

Ethereum .Net cross platform integration library

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Nethereum

Join the chat at https://gitter.im/juanfranblanco/Ethereum.RPCDocumentation StatusNuGet version

Azure DevOps CI CI Build / Test Status

Azure DevOps CI Code Gen: CI Code gen Build / Test Status CI dev packages: MyGet Pre Release

What is Nethereum ?

Nethereum is the .Net integration library for Ethereum, simplifying the access and smart contract interaction with Ethereum nodes both public or permissioned like Geth, Parity or Quorum.

Nethereum is developed targeting netstandard 1.1, net451 and also as a portable library, hence it is compatible with all the operating systems (Windows, Linux, MacOS, Android and OSX) and has been tested on cloud, mobile, desktop, Xbox, hololens and windows IoT.

Upcoming releases will include functionalities such as DevP2P, Plasma and Micro-Payments.

Issues, Requests and help

Please join the chat at: Join the chat at https://gitter.im/juanfranblanco/Ethereum.RPC

We should be able to answer there any simple queries, general comments or requests, everyone is welcome. In a similar feel free to raise any issue or pull request.

Documentation

The documentation and guides can be found at Read the docs. For live examples you can check the workbooks project Nethereum.Workbooks

Features

  • JSON RPC / IPC Ethereum core methods.
  • Geth management API (admin, personal, debugging, miner).
  • Parity management API.
  • Quorum integration.
  • Simplified smart contract interaction for deployment, function calling, transaction and event filtering and decoding of topics.
  • Unity 3d Unity integration.
  • ABI to .Net type encoding and decoding, including attribute based for complex object deserialization.
  • Hd Wallet
  • Transaction, RLP and message signing, verification and recovery of accounts.
  • Libraries for standard contracts Token, ENS and Uport
  • Integrated TestRPC testing to simplify TDD and BDD (Specflow) development.
  • Key storage using Web3 storage standard, compatible with Geth and Parity.
  • Simplified account life cycle for both managed by third party client (personal) or stand alone (signed transactions).
  • Low level Interception of RPC calls.
  • Code generation of smart contracts services.

Quick installation

Nethereum provides two types of packages. Standalone packages targeting Netstandard 1.1, net451 and where possible net351 to support Unity3d. There is also a Nethereum.Portable library which combines all the packages into a single portable library. As netstandard evolves and is more widely supported, the portable library might be eventually deprecated.

To install the latest version:

Windows users

To install the main packages you can either:

PM > Install-Package Nethereum.Web3

or

PM > Install-Package Nethereum.Portable

Mac/Linux users

dotnet add package Nethereum.Web3 

or

dotnet add package Nethereum.Portable

Main Libraries

Project SourceNuget_PackageDescription
Nethereum.PortableNuGet versionPortable class library combining all the different libraries in one package
Nethereum.Web3NuGet versionEthereum Web3 Class Library simplifying the interaction via RPC. Includes contract interaction, deployment, transaction, encoding / decoding and event filters
Nethereum.UnityUnity3d integration, libraries can be found in the Nethereum releases
Nethereum.GethNuGet versionNethereum.Geth is the extended Web3 library for Geth. This includes the non-generic RPC API client methods to interact with the Go Ethereum Client (Geth) like Admin, Debug, Miner
Nethereum.QuorumNuGet versionExtension to interact with Quorum, the permissioned implementation of Ethereum supporting data privacy created by JP Morgan
Nethereum.ParityNuGet versionNethereum.Parity is the extended Web3 library for Parity. Including the non-generic RPC API client methods to interact with Parity. (WIP)

Core Libraries

Project SourceNuget_PackageDescription
Nethereum.ABINuGet versionEncoding and decoding of ABI Types, functions, events of Ethereum contracts
Nethereum.EVMEthereum Virtual Machine API
Nethereum.HexNuGet versionHexTypes for encoding and decoding String, BigInteger and different Hex helper functions
Nethereum.RPCNuGet versionCore RPC Class Library to interact via RCP with an Ethereum client
Nethereum.JsonRpc.ClientNuGet versionNethereum JsonRpc.Client core library to use in conjunction with either the JsonRpc.RpcClient, the JsonRpc.IpcClient or other custom Rpc provider
Nethereum.JsonRpc.RpcClientNuGet versionJsonRpc Rpc Client using Http
Nethereum JsonRpc IpcClientNuGet versionJsonRpc IpcClient provider for Windows, Linux and Unix
Nethereum.RLPNuGet versionRLP encoding and decoding
Nethereum.KeyStoreNuGet versionKeystore generation, encryption and decryption for Ethereum key files using the Web3 Secret Storage definition, https://github.com/ethereum/wiki/wiki/Web3-Secret-Storage-Definition
Nethereum.SignerNuGet versionNethereum signer library to sign and verify messages, RLP and transactions using an Ethereum account private key
Nethereum.ContractsNuGet versionCore library to interact via RPC with Smart contracts in Ethereum
Nethereum.IntegrationTestingIntegration testing module
Nethereum.HDWalletNuGet versionGenerates an HD tree of Ethereum compatible addresses from a randomly generated seed phrase (using BIP32 and BIP39)

Note: IPC is supported for Windows, Unix and Linux but is only available using Nethereum.Web3 not Nethereum.Portable

Smart contract API Libraries

Project SourceNuget_PackageDescription
Nethereum.StandardTokenEIP20NuGet versionNethereum.StandardTokenEIP20 Ethereum Service to interact with ERC20 compliant contracts
Nethereum.UportNuGet versionUport registry library
Nethereum.ENSNuGet versionEthereum Name service library (original ENS) WIP to upgrade to latest ENS

Utilities

Project SourceDescription
Nethereum.Generator.Console
Nethereum.ConsoleA collection of command line utilities to interact with Ethereum and account management
TestchainsPre-configured devchains for fast response (PoA)
DappHybridA cross-platform hybrid hosting mechanism for web based decentralised applications

Training modules

Project SourceDescription
Nethereum.WorkbooksXamarin Workbook tutorials including executable code
Nethereum.TutorialsTutorials to run on VS Studio

Code samples

SourceDescription
Keystore generatorKeystore file generator
FaucetWeb application template for an Ether faucet
Nethereum FlappyThe source code files for the Unity3d game integrating with Ethereum
Nethereum Game SampleSample game demonstrating how to integrate Nethereum with UrhoSharp's SamplyGame to build a cross-platform game interacting with Ethereum
Nethereum UI wallet sampleCross platform wallet example using Nethereum, Xamarin.Forms and MvvmCross, targeting: Android, iOS, Windows Mobile, Desktop (windows 10 uwp), IoT with the Raspberry PI and Xbox.
Nethereum Windows wallet sampleWindows forms wallet sample providing the core functionality for Loading accounts from different mediums, Ether transfer, Standard token interaction. This is going to be the basis for the future cross-platform wallet / dapp
Nethereum Windows wallet sampleWindows forms wallet sample providing the core functionality for Loading accounts from different mediums, Ether transfer, Standard token interaction. This is going to be the basis for the future cross-platform wallet / dapp
Blazor/Blockchain ExplorerWasm blockchain explorer based on Blazor and ReactiveUI

Video guides

There a few video guides, which might be helpful to get started. Please note that these videos are for version 1.0, so some areas have changed.

The code for these tutorials can be found here

Introductions

These are two videos that can take you through all the initial steps from creating a contract to deployment, one in the classic windows, visual studio environment and another in a cross platform mac and visual studio code.

Windows, Visual Studio

This video takes you through the steps of creating the a smart contract, compile it, start a private chain and deploy it using Nethereum.

Smart contracts, private test chain and deployment to Ethereum with Nethereum

Introduction to Calls, Transactions, Events, Filters and Topics

This hands on demo provides an introduction to calls, transactions, events filters and topics

Introduction to Calls, Transactions, Events, Filters and Topics

Mappings, Structs, Arrays and complex Functions Output (DTOs)

This video provides an introduction on how to store and retrieve data from structs, mappings and arrays decoding multiple output parameters to Data Transfer Objects

Mappings, Structs, Arrays and complex Functions Output (DTOs)

Thanks and Credits

  • Many thanks to Cass for the fantastic logo (https://github.com/cassiopaia) and everyone in Maker for providing very early feedback.
  • Many thanks to everyone who has submitted a request for extra features, help or bugs either here in github, gitter or other channels, you are continuously shaping this project. A big shout out specially to @slothbag, @matt.tan, @knocte, @TrekDev, @raymens, @rickzanux, @naddison36, @bobsummerwill, @brendan87, @dylanmckendry that were using Nethereum and providing great feedback from the beginning. @djsowa Marcin Sowa for his help on IPC in Linux.
  • Everyone in the Ethereum, Consensys and the blockchain community.
  • Huge shout out to everyone developing all the different Ethereum implementations Geth, Parity, EthereumJ, EthCpp, ethereum-js (and every other utility around it), python (in the different shapes), ruby (digix guys), solidity, vyper, serpent, web3 implementations (web3js the first) and ethjs, web3j, etc, etc and last but not least the .Net Bitcoin implementation.

About

Ethereum .Net cross platform integration library

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Nethereum

Join the chat at https://gitter.im/juanfranblanco/Ethereum.RPCDocumentation StatusNuGet version

Azure DevOps CI CI Build / Test Status

Azure DevOps CI Code Gen: CI Code gen Build / Test Status CI dev packages: MyGet Pre Release

What is Nethereum ?

Nethereum is the .Net integration library for Ethereum, simplifying the access and smart contract interaction with Ethereum nodes both public or permissioned like Geth, Parity or Quorum.

Nethereum is developed targeting netstandard 1.1, net451 and also as a portable library, hence it is compatible with all the operating systems (Windows, Linux, MacOS, Android and OSX) and has been tested on cloud, mobile, desktop, Xbox, hololens and windows IoT.

Upcoming releases will include functionalities such as DevP2P, Plasma and Micro-Payments.

Issues, Requests and help

Please join the chat at: Join the chat at https://gitter.im/juanfranblanco/Ethereum.RPC

We should be able to answer there any simple queries, general comments or requests, everyone is welcome. In a similar feel free to raise any issue or pull request.

Documentation

The documentation and guides can be found at Read the docs. For live examples you can check the workbooks project Nethereum.Workbooks

Features

  • JSON RPC / IPC Ethereum core methods.
  • Geth management API (admin, personal, debugging, miner).
  • Parity management API.
  • Quorum integration.
  • Simplified smart contract interaction for deployment, function calling, transaction and event filtering and decoding of topics.
  • Unity 3d Unity integration.
  • ABI to .Net type encoding and decoding, including attribute based for complex object deserialization.
  • Hd Wallet
  • Transaction, RLP and message signing, verification and recovery of accounts.
  • Libraries for standard contracts Token, ENS and Uport
  • Integrated TestRPC testing to simplify TDD and BDD (Specflow) development.
  • Key storage using Web3 storage standard, compatible with Geth and Parity.
  • Simplified account life cycle for both managed by third party client (personal) or stand alone (signed transactions).
  • Low level Interception of RPC calls.
  • Code generation of smart contracts services.

Quick installation

Nethereum provides two types of packages. Standalone packages targeting Netstandard 1.1, net451 and where possible net351 to support Unity3d. There is also a Nethereum.Portable library which combines all the packages into a single portable library. As netstandard evolves and is more widely supported, the portable library might be eventually deprecated.

To install the latest version:

Windows users

To install the main packages you can either:

PM > Install-Package Nethereum.Web3

or

PM > Install-Package Nethereum.Portable

Mac/Linux users

dotnet add package Nethereum.Web3 

or

dotnet add package Nethereum.Portable

Main Libraries

Project SourceNuget_PackageDescription
Nethereum.PortableNuGet versionPortable class library combining all the different libraries in one package
Nethereum.Web3NuGet versionEthereum Web3 Class Library simplifying the interaction via RPC. Includes contract interaction, deployment, transaction, encoding / decoding and event filters
Nethereum.UnityUnity3d integration, libraries can be found in the Nethereum releases
Nethereum.GethNuGet versionNethereum.Geth is the extended Web3 library for Geth. This includes the non-generic RPC API client methods to interact with the Go Ethereum Client (Geth) like Admin, Debug, Miner
Nethereum.QuorumNuGet versionExtension to interact with Quorum, the permissioned implementation of Ethereum supporting data privacy created by JP Morgan
Nethereum.ParityNuGet versionNethereum.Parity is the extended Web3 library for Parity. Including the non-generic RPC API client methods to interact with Parity. (WIP)

Core Libraries

Project SourceNuget_PackageDescription
Nethereum.ABINuGet versionEncoding and decoding of ABI Types, functions, events of Ethereum contracts
Nethereum.EVMEthereum Virtual Machine API
Nethereum.HexNuGet versionHexTypes for encoding and decoding String, BigInteger and different Hex helper functions
Nethereum.RPCNuGet versionCore RPC Class Library to interact via RCP with an Ethereum client
Nethereum.JsonRpc.ClientNuGet versionNethereum JsonRpc.Client core library to use in conjunction with either the JsonRpc.RpcClient, the JsonRpc.IpcClient or other custom Rpc provider
Nethereum.JsonRpc.RpcClientNuGet versionJsonRpc Rpc Client using Http
Nethereum JsonRpc IpcClientNuGet versionJsonRpc IpcClient provider for Windows, Linux and Unix
Nethereum.RLPNuGet versionRLP encoding and decoding
Nethereum.KeyStoreNuGet versionKeystore generation, encryption and decryption for Ethereum key files using the Web3 Secret Storage definition, https://github.com/ethereum/wiki/wiki/Web3-Secret-Storage-Definition
Nethereum.SignerNuGet versionNethereum signer library to sign and verify messages, RLP and transactions using an Ethereum account private key
Nethereum.ContractsNuGet versionCore library to interact via RPC with Smart contracts in Ethereum
Nethereum.IntegrationTestingIntegration testing module
Nethereum.HDWalletNuGet versionGenerates an HD tree of Ethereum compatible addresses from a randomly generated seed phrase (using BIP32 and BIP39)

Note: IPC is supported for Windows, Unix and Linux but is only available using Nethereum.Web3 not Nethereum.Portable

Smart contract API Libraries

Project SourceNuget_PackageDescription
Nethereum.StandardTokenEIP20NuGet versionNethereum.StandardTokenEIP20 Ethereum Service to interact with ERC20 compliant contracts
Nethereum.UportNuGet versionUport registry library
Nethereum.ENSNuGet versionEthereum Name service library (original ENS) WIP to upgrade to latest ENS

Utilities

Project SourceDescription
Nethereum.Generator.Console
Nethereum.ConsoleA collection of command line utilities to interact with Ethereum and account management
TestchainsPre-configured devchains for fast response (PoA)
DappHybridA cross-platform hybrid hosting mechanism for web based decentralised applications

Training modules

Project SourceDescription
Nethereum.WorkbooksXamarin Workbook tutorials including executable code
Nethereum.TutorialsTutorials to run on VS Studio

Code samples

SourceDescription
Keystore generatorKeystore file generator
FaucetWeb application template for an Ether faucet
Nethereum FlappyThe source code files for the Unity3d game integrating with Ethereum
Nethereum Game SampleSample game demonstrating how to integrate Nethereum with UrhoSharp's SamplyGame to build a cross-platform game interacting with Ethereum
Nethereum UI wallet sampleCross platform wallet example using Nethereum, Xamarin.Forms and MvvmCross, targeting: Android, iOS, Windows Mobile, Desktop (windows 10 uwp), IoT with the Raspberry PI and Xbox.
Nethereum Windows wallet sampleWindows forms wallet sample providing the core functionality for Loading accounts from different mediums, Ether transfer, Standard token interaction. This is going to be the basis for the future cross-platform wallet / dapp
Nethereum Windows wallet sampleWindows forms wallet sample providing the core functionality for Loading accounts from different mediums, Ether transfer, Standard token interaction. This is going to be the basis for the future cross-platform wallet / dapp
Blazor/Blockchain ExplorerWasm blockchain explorer based on Blazor and ReactiveUI

Video guides

There a few video guides, which might be helpful to get started. Please note that these videos are for version 1.0, so some areas have changed.

The code for these tutorials can be found here

Introductions

These are two videos that can take you through all the initial steps from creating a contract to deployment, one in the classic windows, visual studio environment and another in a cross platform mac and visual studio code.

Windows, Visual Studio

This video takes you through the steps of creating the a smart contract, compile it, start a private chain and deploy it using Nethereum.

Smart contracts, private test chain and deployment to Ethereum with Nethereum

Introduction to Calls, Transactions, Events, Filters and Topics

This hands on demo provides an introduction to calls, transactions, events filters and topics

Introduction to Calls, Transactions, Events, Filters and Topics

Mappings, Structs, Arrays and complex Functions Output (DTOs)

This video provides an introduction on how to store and retrieve data from structs, mappings and arrays decoding multiple output parameters to Data Transfer Objects

Mappings, Structs, Arrays and complex Functions Output (DTOs)

Thanks and Credits

  • Many thanks to Cass for the fantastic logo (https://github.com/cassiopaia) and everyone in Maker for providing very early feedback.
  • Many thanks to everyone who has submitted a request for extra features, help or bugs either here in github, gitter or other channels, you are continuously shaping this project. A big shout out specially to @slothbag, @matt.tan, @knocte, @TrekDev, @raymens, @rickzanux, @naddison36, @bobsummerwill, @brendan87, @dylanmckendry that were using Nethereum and providing great feedback from the beginning. @djsowa Marcin Sowa for his help on IPC in Linux.
  • Everyone in the Ethereum, Consensys and the blockchain community.
  • Huge shout out to everyone developing all the different Ethereum implementations Geth, Parity, EthereumJ, EthCpp, ethereum-js (and every other utility around it), python (in the different shapes), ruby (digix guys), solidity, vyper, serpent, web3 implementations (web3js the first) and ethjs, web3j, etc, etc and last but not least the .Net Bitcoin implementation.

About

Ethereum .Net cross platform integration library

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Nethereum

Join the chat at https://gitter.im/juanfranblanco/Ethereum.RPCDocumentation StatusNuGet version

Azure DevOps CI CI Build / Test Status

Azure DevOps CI Code Gen: CI Code gen Build / Test Status CI dev packages: MyGet Pre Release

What is Nethereum ?

Nethereum is the .Net integration library for Ethereum, simplifying the access and smart contract interaction with Ethereum nodes both public or permissioned like Geth, Parity or Quorum.

Nethereum is developed targeting netstandard 1.1, net451 and also as a portable library, hence it is compatible with all the operating systems (Windows, Linux, MacOS, Android and OSX) and has been tested on cloud, mobile, desktop, Xbox, hololens and windows IoT.

Upcoming releases will include functionalities such as DevP2P, Plasma and Micro-Payments.

Issues, Requests and help

Please join the chat at: Join the chat at https://gitter.im/juanfranblanco/Ethereum.RPC

We should be able to answer there any simple queries, general comments or requests, everyone is welcome. In a similar feel free to raise any issue or pull request.

Documentation

The documentation and guides can be found at Read the docs. For live examples you can check the workbooks project Nethereum.Workbooks

Features

  • JSON RPC / IPC Ethereum core methods.
  • Geth management API (admin, personal, debugging, miner).
  • Parity management API.
  • Quorum integration.
  • Simplified smart contract interaction for deployment, function calling, transaction and event filtering and decoding of topics.
  • Unity 3d Unity integration.
  • ABI to .Net type encoding and decoding, including attribute based for complex object deserialization.
  • Hd Wallet
  • Transaction, RLP and message signing, verification and recovery of accounts.
  • Libraries for standard contracts Token, ENS and Uport
  • Integrated TestRPC testing to simplify TDD and BDD (Specflow) development.
  • Key storage using Web3 storage standard, compatible with Geth and Parity.
  • Simplified account life cycle for both managed by third party client (personal) or stand alone (signed transactions).
  • Low level Interception of RPC calls.
  • Code generation of smart contracts services.

Quick installation

Nethereum provides two types of packages. Standalone packages targeting Netstandard 1.1, net451 and where possible net351 to support Unity3d. There is also a Nethereum.Portable library which combines all the packages into a single portable library. As netstandard evolves and is more widely supported, the portable library might be eventually deprecated.

To install the latest version:

Windows users

To install the main packages you can either:

PM > Install-Package Nethereum.Web3

or

PM > Install-Package Nethereum.Portable

Mac/Linux users

dotnet add package Nethereum.Web3 

or

dotnet add package Nethereum.Portable

Main Libraries

Project SourceNuget_PackageDescription
Nethereum.PortableNuGet versionPortable class library combining all the different libraries in one package
Nethereum.Web3NuGet versionEthereum Web3 Class Library simplifying the interaction via RPC. Includes contract interaction, deployment, transaction, encoding / decoding and event filters
Nethereum.UnityUnity3d integration, libraries can be found in the Nethereum releases
Nethereum.GethNuGet versionNethereum.Geth is the extended Web3 library for Geth. This includes the non-generic RPC API client methods to interact with the Go Ethereum Client (Geth) like Admin, Debug, Miner
Nethereum.QuorumNuGet versionExtension to interact with Quorum, the permissioned implementation of Ethereum supporting data privacy created by JP Morgan
Nethereum.ParityNuGet versionNethereum.Parity is the extended Web3 library for Parity. Including the non-generic RPC API client methods to interact with Parity. (WIP)

Core Libraries

Project SourceNuget_PackageDescription
Nethereum.ABINuGet versionEncoding and decoding of ABI Types, functions, events of Ethereum contracts
Nethereum.EVMEthereum Virtual Machine API
Nethereum.HexNuGet versionHexTypes for encoding and decoding String, BigInteger and different Hex helper functions
Nethereum.RPCNuGet versionCore RPC Class Library to interact via RCP with an Ethereum client
Nethereum.JsonRpc.ClientNuGet versionNethereum JsonRpc.Client core library to use in conjunction with either the JsonRpc.RpcClient, the JsonRpc.IpcClient or other custom Rpc provider
Nethereum.JsonRpc.RpcClientNuGet versionJsonRpc Rpc Client using Http
Nethereum JsonRpc IpcClientNuGet versionJsonRpc IpcClient provider for Windows, Linux and Unix
Nethereum.RLPNuGet versionRLP encoding and decoding
Nethereum.KeyStoreNuGet versionKeystore generation, encryption and decryption for Ethereum key files using the Web3 Secret Storage definition, https://github.com/ethereum/wiki/wiki/Web3-Secret-Storage-Definition
Nethereum.SignerNuGet versionNethereum signer library to sign and verify messages, RLP and transactions using an Ethereum account private key
Nethereum.ContractsNuGet versionCore library to interact via RPC with Smart contracts in Ethereum
Nethereum.IntegrationTestingIntegration testing module
Nethereum.HDWalletNuGet versionGenerates an HD tree of Ethereum compatible addresses from a randomly generated seed phrase (using BIP32 and BIP39)

Note: IPC is supported for Windows, Unix and Linux but is only available using Nethereum.Web3 not Nethereum.Portable

Smart contract API Libraries

Project SourceNuget_PackageDescription
Nethereum.StandardTokenEIP20NuGet versionNethereum.StandardTokenEIP20 Ethereum Service to interact with ERC20 compliant contracts
Nethereum.UportNuGet versionUport registry library
Nethereum.ENSNuGet versionEthereum Name service library (original ENS) WIP to upgrade to latest ENS

Utilities

Project SourceDescription
Nethereum.Generator.Console
Nethereum.ConsoleA collection of command line utilities to interact with Ethereum and account management
TestchainsPre-configured devchains for fast response (PoA)
DappHybridA cross-platform hybrid hosting mechanism for web based decentralised applications

Training modules

Project SourceDescription
Nethereum.WorkbooksXamarin Workbook tutorials including executable code
Nethereum.TutorialsTutorials to run on VS Studio

Code samples

SourceDescription
Keystore generatorKeystore file generator
FaucetWeb application template for an Ether faucet
Nethereum FlappyThe source code files for the Unity3d game integrating with Ethereum
Nethereum Game SampleSample game demonstrating how to integrate Nethereum with UrhoSharp's SamplyGame to build a cross-platform game interacting with Ethereum
Nethereum UI wallet sampleCross platform wallet example using Nethereum, Xamarin.Forms and MvvmCross, targeting: Android, iOS, Windows Mobile, Desktop (windows 10 uwp), IoT with the Raspberry PI and Xbox.
Nethereum Windows wallet sampleWindows forms wallet sample providing the core functionality for Loading accounts from different mediums, Ether transfer, Standard token interaction. This is going to be the basis for the future cross-platform wallet / dapp
Nethereum Windows wallet sampleWindows forms wallet sample providing the core functionality for Loading accounts from different mediums, Ether transfer, Standard token interaction. This is going to be the basis for the future cross-platform wallet / dapp
Blazor/Blockchain ExplorerWasm blockchain explorer based on Blazor and ReactiveUI

Video guides

There a few video guides, which might be helpful to get started. Please note that these videos are for version 1.0, so some areas have changed.

The code for these tutorials can be found here

Introductions

These are two videos that can take you through all the initial steps from creating a contract to deployment, one in the classic windows, visual studio environment and another in a cross platform mac and visual studio code.

Windows, Visual Studio

This video takes you through the steps of creating the a smart contract, compile it, start a private chain and deploy it using Nethereum.

Smart contracts, private test chain and deployment to Ethereum with Nethereum

Introduction to Calls, Transactions, Events, Filters and Topics

This hands on demo provides an introduction to calls, transactions, events filters and topics

Introduction to Calls, Transactions, Events, Filters and Topics

Mappings, Structs, Arrays and complex Functions Output (DTOs)

This video provides an introduction on how to store and retrieve data from structs, mappings and arrays decoding multiple output parameters to Data Transfer Objects

Mappings, Structs, Arrays and complex Functions Output (DTOs)

Thanks and Credits

  • Many thanks to Cass for the fantastic logo (https://github.com/cassiopaia) and everyone in Maker for providing very early feedback.
  • Many thanks to everyone who has submitted a request for extra features, help or bugs either here in github, gitter or other channels, you are continuously shaping this project. A big shout out specially to @slothbag, @matt.tan, @knocte, @TrekDev, @raymens, @rickzanux, @naddison36, @bobsummerwill, @brendan87, @dylanmckendry that were using Nethereum and providing great feedback from the beginning. @djsowa Marcin Sowa for his help on IPC in Linux.
  • Everyone in the Ethereum, Consensys and the blockchain community.
  • Huge shout out to everyone developing all the different Ethereum implementations Geth, Parity, EthereumJ, EthCpp, ethereum-js (and every other utility around it), python (in the different shapes), ruby (digix guys), solidity, vyper, serpent, web3 implementations (web3js the first) and ethjs, web3j, etc, etc and last but not least the .Net Bitcoin implementation.

About

Ethereum .Net cross platform integration library

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Nethereum

Join the chat at https://gitter.im/juanfranblanco/Ethereum.RPCDocumentation StatusNuGet version

Azure DevOps CI CI Build / Test Status

Azure DevOps CI Code Gen: CI Code gen Build / Test Status CI dev packages: MyGet Pre Release

What is Nethereum ?

Nethereum is the .Net integration library for Ethereum, simplifying the access and smart contract interaction with Ethereum nodes both public or permissioned like Geth, Parity or Quorum.

Nethereum is developed targeting netstandard 1.1, net451 and also as a portable library, hence it is compatible with all the operating systems (Windows, Linux, MacOS, Android and OSX) and has been tested on cloud, mobile, desktop, Xbox, hololens and windows IoT.

Upcoming releases will include functionalities such as DevP2P, Plasma and Micro-Payments.

Issues, Requests and help

Please join the chat at: Join the chat at https://gitter.im/juanfranblanco/Ethereum.RPC

We should be able to answer there any simple queries, general comments or requests, everyone is welcome. In a similar feel free to raise any issue or pull request.

Documentation

The documentation and guides can be found at Read the docs. For live examples you can check the workbooks project Nethereum.Workbooks

Features

  • JSON RPC / IPC Ethereum core methods.
  • Geth management API (admin, personal, debugging, miner).
  • Parity management API.
  • Quorum integration.
  • Simplified smart contract interaction for deployment, function calling, transaction and event filtering and decoding of topics.
  • Unity 3d Unity integration.
  • ABI to .Net type encoding and decoding, including attribute based for complex object deserialization.
  • Hd Wallet
  • Transaction, RLP and message signing, verification and recovery of accounts.
  • Libraries for standard contracts Token, ENS and Uport
  • Integrated TestRPC testing to simplify TDD and BDD (Specflow) development.
  • Key storage using Web3 storage standard, compatible with Geth and Parity.
  • Simplified account life cycle for both managed by third party client (personal) or stand alone (signed transactions).
  • Low level Interception of RPC calls.
  • Code generation of smart contracts services.

Quick installation

Nethereum provides two types of packages. Standalone packages targeting Netstandard 1.1, net451 and where possible net351 to support Unity3d. There is also a Nethereum.Portable library which combines all the packages into a single portable library. As netstandard evolves and is more widely supported, the portable library might be eventually deprecated.

To install the latest version:

Windows users

To install the main packages you can either:

PM > Install-Package Nethereum.Web3

or

PM > Install-Package Nethereum.Portable

Mac/Linux users

dotnet add package Nethereum.Web3 

or

dotnet add package Nethereum.Portable

Main Libraries

Project SourceNuget_PackageDescription
Nethereum.PortableNuGet versionPortable class library combining all the different libraries in one package
Nethereum.Web3NuGet versionEthereum Web3 Class Library simplifying the interaction via RPC. Includes contract interaction, deployment, transaction, encoding / decoding and event filters
Nethereum.UnityUnity3d integration, libraries can be found in the Nethereum releases
Nethereum.GethNuGet versionNethereum.Geth is the extended Web3 library for Geth. This includes the non-generic RPC API client methods to interact with the Go Ethereum Client (Geth) like Admin, Debug, Miner
Nethereum.QuorumNuGet versionExtension to interact with Quorum, the permissioned implementation of Ethereum supporting data privacy created by JP Morgan
Nethereum.ParityNuGet versionNethereum.Parity is the extended Web3 library for Parity. Including the non-generic RPC API client methods to interact with Parity. (WIP)

Core Libraries

Project SourceNuget_PackageDescription
Nethereum.ABINuGet versionEncoding and decoding of ABI Types, functions, events of Ethereum contracts
Nethereum.EVMEthereum Virtual Machine API
Nethereum.HexNuGet versionHexTypes for encoding and decoding String, BigInteger and different Hex helper functions
Nethereum.RPCNuGet versionCore RPC Class Library to interact via RCP with an Ethereum client
Nethereum.JsonRpc.ClientNuGet versionNethereum JsonRpc.Client core library to use in conjunction with either the JsonRpc.RpcClient, the JsonRpc.IpcClient or other custom Rpc provider
Nethereum.JsonRpc.RpcClientNuGet versionJsonRpc Rpc Client using Http
Nethereum JsonRpc IpcClientNuGet versionJsonRpc IpcClient provider for Windows, Linux and Unix
Nethereum.RLPNuGet versionRLP encoding and decoding
Nethereum.KeyStoreNuGet versionKeystore generation, encryption and decryption for Ethereum key files using the Web3 Secret Storage definition, https://github.com/ethereum/wiki/wiki/Web3-Secret-Storage-Definition
Nethereum.SignerNuGet versionNethereum signer library to sign and verify messages, RLP and transactions using an Ethereum account private key
Nethereum.ContractsNuGet versionCore library to interact via RPC with Smart contracts in Ethereum
Nethereum.IntegrationTestingIntegration testing module
Nethereum.HDWalletNuGet versionGenerates an HD tree of Ethereum compatible addresses from a randomly generated seed phrase (using BIP32 and BIP39)

Note: IPC is supported for Windows, Unix and Linux but is only available using Nethereum.Web3 not Nethereum.Portable

Smart contract API Libraries

Project SourceNuget_PackageDescription
Nethereum.StandardTokenEIP20NuGet versionNethereum.StandardTokenEIP20 Ethereum Service to interact with ERC20 compliant contracts
Nethereum.UportNuGet versionUport registry library
Nethereum.ENSNuGet versionEthereum Name service library (original ENS) WIP to upgrade to latest ENS

Utilities

Project SourceDescription
Nethereum.Generator.Console
Nethereum.ConsoleA collection of command line utilities to interact with Ethereum and account management
TestchainsPre-configured devchains for fast response (PoA)
DappHybridA cross-platform hybrid hosting mechanism for web based decentralised applications

Training modules

Project SourceDescription
Nethereum.WorkbooksXamarin Workbook tutorials including executable code
Nethereum.TutorialsTutorials to run on VS Studio

Code samples

SourceDescription
Keystore generatorKeystore file generator
FaucetWeb application template for an Ether faucet
Nethereum FlappyThe source code files for the Unity3d game integrating with Ethereum
Nethereum Game SampleSample game demonstrating how to integrate Nethereum with UrhoSharp's SamplyGame to build a cross-platform game interacting with Ethereum
Nethereum UI wallet sampleCross platform wallet example using Nethereum, Xamarin.Forms and MvvmCross, targeting: Android, iOS, Windows Mobile, Desktop (windows 10 uwp), IoT with the Raspberry PI and Xbox.
Nethereum Windows wallet sampleWindows forms wallet sample providing the core functionality for Loading accounts from different mediums, Ether transfer, Standard token interaction. This is going to be the basis for the future cross-platform wallet / dapp
Nethereum Windows wallet sampleWindows forms wallet sample providing the core functionality for Loading accounts from different mediums, Ether transfer, Standard token interaction. This is going to be the basis for the future cross-platform wallet / dapp
Blazor/Blockchain ExplorerWasm blockchain explorer based on Blazor and ReactiveUI

Video guides

There a few video guides, which might be helpful to get started. Please note that these videos are for version 1.0, so some areas have changed.

The code for these tutorials can be found here

Introductions

These are two videos that can take you through all the initial steps from creating a contract to deployment, one in the classic windows, visual studio environment and another in a cross platform mac and visual studio code.

Windows, Visual Studio

This video takes you through the steps of creating the a smart contract, compile it, start a private chain and deploy it using Nethereum.

Smart contracts, private test chain and deployment to Ethereum with Nethereum

Introduction to Calls, Transactions, Events, Filters and Topics

This hands on demo provides an introduction to calls, transactions, events filters and topics

Introduction to Calls, Transactions, Events, Filters and Topics

Mappings, Structs, Arrays and complex Functions Output (DTOs)

This video provides an introduction on how to store and retrieve data from structs, mappings and arrays decoding multiple output parameters to Data Transfer Objects

Mappings, Structs, Arrays and complex Functions Output (DTOs)

Thanks and Credits

  • Many thanks to Cass for the fantastic logo (https://github.com/cassiopaia) and everyone in Maker for providing very early feedback.
  • Many thanks to everyone who has submitted a request for extra features, help or bugs either here in github, gitter or other channels, you are continuously shaping this project. A big shout out specially to @slothbag, @matt.tan, @knocte, @TrekDev, @raymens, @rickzanux, @naddison36, @bobsummerwill, @brendan87, @dylanmckendry that were using Nethereum and providing great feedback from the beginning. @djsowa Marcin Sowa for his help on IPC in Linux.
  • Everyone in the Ethereum, Consensys and the blockchain community.
  • Huge shout out to everyone developing all the different Ethereum implementations Geth, Parity, EthereumJ, EthCpp, ethereum-js (and every other utility around it), python (in the different shapes), ruby (digix guys), solidity, vyper, serpent, web3 implementations (web3js the first) and ethjs, web3j, etc, etc and last but not least the .Net Bitcoin implementation.

About

Ethereum .Net cross platform integration library

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Nethereum

Join the chat at https://gitter.im/juanfranblanco/Ethereum.RPCDocumentation StatusNuGet version

Azure DevOps CI CI Build / Test Status

Azure DevOps CI Code Gen: CI Code gen Build / Test Status CI dev packages: MyGet Pre Release

What is Nethereum ?

Nethereum is the .Net integration library for Ethereum, simplifying the access and smart contract interaction with Ethereum nodes both public or permissioned like Geth, Parity or Quorum.

Nethereum is developed targeting netstandard 1.1, net451 and also as a portable library, hence it is compatible with all the operating systems (Windows, Linux, MacOS, Android and OSX) and has been tested on cloud, mobile, desktop, Xbox, hololens and windows IoT.

Upcoming releases will include functionalities such as DevP2P, Plasma and Micro-Payments.

Issues, Requests and help

Please join the chat at: Join the chat at https://gitter.im/juanfranblanco/Ethereum.RPC

We should be able to answer there any simple queries, general comments or requests, everyone is welcome. In a similar feel free to raise any issue or pull request.

Documentation

The documentation and guides can be found at Read the docs. For live examples you can check the workbooks project Nethereum.Workbooks

Features

  • JSON RPC / IPC Ethereum core methods.
  • Geth management API (admin, personal, debugging, miner).
  • Parity management API.
  • Quorum integration.
  • Simplified smart contract interaction for deployment, function calling, transaction and event filtering and decoding of topics.
  • Unity 3d Unity integration.
  • ABI to .Net type encoding and decoding, including attribute based for complex object deserialization.
  • Hd Wallet
  • Transaction, RLP and message signing, verification and recovery of accounts.
  • Libraries for standard contracts Token, ENS and Uport
  • Integrated TestRPC testing to simplify TDD and BDD (Specflow) development.
  • Key storage using Web3 storage standard, compatible with Geth and Parity.
  • Simplified account life cycle for both managed by third party client (personal) or stand alone (signed transactions).
  • Low level Interception of RPC calls.
  • Code generation of smart contracts services.

Quick installation

Nethereum provides two types of packages. Standalone packages targeting Netstandard 1.1, net451 and where possible net351 to support Unity3d. There is also a Nethereum.Portable library which combines all the packages into a single portable library. As netstandard evolves and is more widely supported, the portable library might be eventually deprecated.

To install the latest version:

Windows users

To install the main packages you can either:

PM > Install-Package Nethereum.Web3

or

PM > Install-Package Nethereum.Portable

Mac/Linux users

dotnet add package Nethereum.Web3 

or

dotnet add package Nethereum.Portable

Main Libraries

Project SourceNuget_PackageDescription
Nethereum.PortableNuGet versionPortable class library combining all the different libraries in one package
Nethereum.Web3NuGet versionEthereum Web3 Class Library simplifying the interaction via RPC. Includes contract interaction, deployment, transaction, encoding / decoding and event filters
Nethereum.UnityUnity3d integration, libraries can be found in the Nethereum releases
Nethereum.GethNuGet versionNethereum.Geth is the extended Web3 library for Geth. This includes the non-generic RPC API client methods to interact with the Go Ethereum Client (Geth) like Admin, Debug, Miner
Nethereum.QuorumNuGet versionExtension to interact with Quorum, the permissioned implementation of Ethereum supporting data privacy created by JP Morgan
Nethereum.ParityNuGet versionNethereum.Parity is the extended Web3 library for Parity. Including the non-generic RPC API client methods to interact with Parity. (WIP)

Core Libraries

Project SourceNuget_PackageDescription
Nethereum.ABINuGet versionEncoding and decoding of ABI Types, functions, events of Ethereum contracts
Nethereum.EVMEthereum Virtual Machine API
Nethereum.HexNuGet versionHexTypes for encoding and decoding String, BigInteger and different Hex helper functions
Nethereum.RPCNuGet versionCore RPC Class Library to interact via RCP with an Ethereum client
Nethereum.JsonRpc.ClientNuGet versionNethereum JsonRpc.Client core library to use in conjunction with either the JsonRpc.RpcClient, the JsonRpc.IpcClient or other custom Rpc provider
Nethereum.JsonRpc.RpcClientNuGet versionJsonRpc Rpc Client using Http
Nethereum JsonRpc IpcClientNuGet versionJsonRpc IpcClient provider for Windows, Linux and Unix
Nethereum.RLPNuGet versionRLP encoding and decoding
Nethereum.KeyStoreNuGet versionKeystore generation, encryption and decryption for Ethereum key files using the Web3 Secret Storage definition, https://github.com/ethereum/wiki/wiki/Web3-Secret-Storage-Definition
Nethereum.SignerNuGet versionNethereum signer library to sign and verify messages, RLP and transactions using an Ethereum account private key
Nethereum.ContractsNuGet versionCore library to interact via RPC with Smart contracts in Ethereum
Nethereum.IntegrationTestingIntegration testing module
Nethereum.HDWalletNuGet versionGenerates an HD tree of Ethereum compatible addresses from a randomly generated seed phrase (using BIP32 and BIP39)

Note: IPC is supported for Windows, Unix and Linux but is only available using Nethereum.Web3 not Nethereum.Portable

Smart contract API Libraries

Project SourceNuget_PackageDescription
Nethereum.StandardTokenEIP20NuGet versionNethereum.StandardTokenEIP20 Ethereum Service to interact with ERC20 compliant contracts
Nethereum.UportNuGet versionUport registry library
Nethereum.ENSNuGet versionEthereum Name service library (original ENS) WIP to upgrade to latest ENS

Utilities

Project SourceDescription
Nethereum.Generator.Console
Nethereum.ConsoleA collection of command line utilities to interact with Ethereum and account management
TestchainsPre-configured devchains for fast response (PoA)
DappHybridA cross-platform hybrid hosting mechanism for web based decentralised applications

Training modules

Project SourceDescription
Nethereum.WorkbooksXamarin Workbook tutorials including executable code
Nethereum.TutorialsTutorials to run on VS Studio

Code samples

SourceDescription
Keystore generatorKeystore file generator
FaucetWeb application template for an Ether faucet
Nethereum FlappyThe source code files for the Unity3d game integrating with Ethereum
Nethereum Game SampleSample game demonstrating how to integrate Nethereum with UrhoSharp's SamplyGame to build a cross-platform game interacting with Ethereum
Nethereum UI wallet sampleCross platform wallet example using Nethereum, Xamarin.Forms and MvvmCross, targeting: Android, iOS, Windows Mobile, Desktop (windows 10 uwp), IoT with the Raspberry PI and Xbox.
Nethereum Windows wallet sampleWindows forms wallet sample providing the core functionality for Loading accounts from different mediums, Ether transfer, Standard token interaction. This is going to be the basis for the future cross-platform wallet / dapp
Nethereum Windows wallet sampleWindows forms wallet sample providing the core functionality for Loading accounts from different mediums, Ether transfer, Standard token interaction. This is going to be the basis for the future cross-platform wallet / dapp
Blazor/Blockchain ExplorerWasm blockchain explorer based on Blazor and ReactiveUI

Video guides

There a few video guides, which might be helpful to get started. Please note that these videos are for version 1.0, so some areas have changed.

The code for these tutorials can be found here

Introductions

These are two videos that can take you through all the initial steps from creating a contract to deployment, one in the classic windows, visual studio environment and another in a cross platform mac and visual studio code.

Windows, Visual Studio

This video takes you through the steps of creating the a smart contract, compile it, start a private chain and deploy it using Nethereum.

Smart contracts, private test chain and deployment to Ethereum with Nethereum

Introduction to Calls, Transactions, Events, Filters and Topics

This hands on demo provides an introduction to calls, transactions, events filters and topics

Introduction to Calls, Transactions, Events, Filters and Topics

Mappings, Structs, Arrays and complex Functions Output (DTOs)

This video provides an introduction on how to store and retrieve data from structs, mappings and arrays decoding multiple output parameters to Data Transfer Objects

Mappings, Structs, Arrays and complex Functions Output (DTOs)

Thanks and Credits

  • Many thanks to Cass for the fantastic logo (https://github.com/cassiopaia) and everyone in Maker for providing very early feedback.
  • Many thanks to everyone who has submitted a request for extra features, help or bugs either here in github, gitter or other channels, you are continuously shaping this project. A big shout out specially to @slothbag, @matt.tan, @knocte, @TrekDev, @raymens, @rickzanux, @naddison36, @bobsummerwill, @brendan87, @dylanmckendry that were using Nethereum and providing great feedback from the beginning. @djsowa Marcin Sowa for his help on IPC in Linux.
  • Everyone in the Ethereum, Consensys and the blockchain community.
  • Huge shout out to everyone developing all the different Ethereum implementations Geth, Parity, EthereumJ, EthCpp, ethereum-js (and every other utility around it), python (in the different shapes), ruby (digix guys), solidity, vyper, serpent, web3 implementations (web3js the first) and ethjs, web3j, etc, etc and last but not least the .Net Bitcoin implementation.

About

Ethereum .Net cross platform integration library

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Nethereum

Join the chat at https://gitter.im/juanfranblanco/Ethereum.RPCDocumentation StatusNuGet version

Azure DevOps CI CI Build / Test Status

Azure DevOps CI Code Gen: CI Code gen Build / Test Status CI dev packages: MyGet Pre Release

What is Nethereum ?

Nethereum is the .Net integration library for Ethereum, simplifying the access and smart contract interaction with Ethereum nodes both public or permissioned like Geth, Parity or Quorum.

Nethereum is developed targeting netstandard 1.1, net451 and also as a portable library, hence it is compatible with all the operating systems (Windows, Linux, MacOS, Android and OSX) and has been tested on cloud, mobile, desktop, Xbox, hololens and windows IoT.

Upcoming releases will include functionalities such as DevP2P, Plasma and Micro-Payments.

Issues, Requests and help

Please join the chat at: Join the chat at https://gitter.im/juanfranblanco/Ethereum.RPC

We should be able to answer there any simple queries, general comments or requests, everyone is welcome. In a similar feel free to raise any issue or pull request.

Documentation

The documentation and guides can be found at Read the docs. For live examples you can check the workbooks project Nethereum.Workbooks

Features

  • JSON RPC / IPC Ethereum core methods.
  • Geth management API (admin, personal, debugging, miner).
  • Parity management API.
  • Quorum integration.
  • Simplified smart contract interaction for deployment, function calling, transaction and event filtering and decoding of topics.
  • Unity 3d Unity integration.
  • ABI to .Net type encoding and decoding, including attribute based for complex object deserialization.
  • Hd Wallet
  • Transaction, RLP and message signing, verification and recovery of accounts.
  • Libraries for standard contracts Token, ENS and Uport
  • Integrated TestRPC testing to simplify TDD and BDD (Specflow) development.
  • Key storage using Web3 storage standard, compatible with Geth and Parity.
  • Simplified account life cycle for both managed by third party client (personal) or stand alone (signed transactions).
  • Low level Interception of RPC calls.
  • Code generation of smart contracts services.

Quick installation

Nethereum provides two types of packages. Standalone packages targeting Netstandard 1.1, net451 and where possible net351 to support Unity3d. There is also a Nethereum.Portable library which combines all the packages into a single portable library. As netstandard evolves and is more widely supported, the portable library might be eventually deprecated.

To install the latest version:

Windows users

To install the main packages you can either:

PM > Install-Package Nethereum.Web3

or

PM > Install-Package Nethereum.Portable

Mac/Linux users

dotnet add package Nethereum.Web3 

or

dotnet add package Nethereum.Portable

Main Libraries

Project SourceNuget_PackageDescription
Nethereum.PortableNuGet versionPortable class library combining all the different libraries in one package
Nethereum.Web3NuGet versionEthereum Web3 Class Library simplifying the interaction via RPC. Includes contract interaction, deployment, transaction, encoding / decoding and event filters
Nethereum.UnityUnity3d integration, libraries can be found in the Nethereum releases
Nethereum.GethNuGet versionNethereum.Geth is the extended Web3 library for Geth. This includes the non-generic RPC API client methods to interact with the Go Ethereum Client (Geth) like Admin, Debug, Miner
Nethereum.QuorumNuGet versionExtension to interact with Quorum, the permissioned implementation of Ethereum supporting data privacy created by JP Morgan
Nethereum.ParityNuGet versionNethereum.Parity is the extended Web3 library for Parity. Including the non-generic RPC API client methods to interact with Parity. (WIP)

Core Libraries

Project SourceNuget_PackageDescription
Nethereum.ABINuGet versionEncoding and decoding of ABI Types, functions, events of Ethereum contracts
Nethereum.EVMEthereum Virtual Machine API
Nethereum.HexNuGet versionHexTypes for encoding and decoding String, BigInteger and different Hex helper functions
Nethereum.RPCNuGet versionCore RPC Class Library to interact via RCP with an Ethereum client
Nethereum.JsonRpc.ClientNuGet versionNethereum JsonRpc.Client core library to use in conjunction with either the JsonRpc.RpcClient, the JsonRpc.IpcClient or other custom Rpc provider
Nethereum.JsonRpc.RpcClientNuGet versionJsonRpc Rpc Client using Http
Nethereum JsonRpc IpcClientNuGet versionJsonRpc IpcClient provider for Windows, Linux and Unix
Nethereum.RLPNuGet versionRLP encoding and decoding
Nethereum.KeyStoreNuGet versionKeystore generation, encryption and decryption for Ethereum key files using the Web3 Secret Storage definition, https://github.com/ethereum/wiki/wiki/Web3-Secret-Storage-Definition
Nethereum.SignerNuGet versionNethereum signer library to sign and verify messages, RLP and transactions using an Ethereum account private key
Nethereum.ContractsNuGet versionCore library to interact via RPC with Smart contracts in Ethereum
Nethereum.IntegrationTestingIntegration testing module
Nethereum.HDWalletNuGet versionGenerates an HD tree of Ethereum compatible addresses from a randomly generated seed phrase (using BIP32 and BIP39)

Note: IPC is supported for Windows, Unix and Linux but is only available using Nethereum.Web3 not Nethereum.Portable

Smart contract API Libraries

Project SourceNuget_PackageDescription
Nethereum.StandardTokenEIP20NuGet versionNethereum.StandardTokenEIP20 Ethereum Service to interact with ERC20 compliant contracts
Nethereum.UportNuGet versionUport registry library
Nethereum.ENSNuGet versionEthereum Name service library (original ENS) WIP to upgrade to latest ENS

Utilities

Project SourceDescription
Nethereum.Generator.Console
Nethereum.ConsoleA collection of command line utilities to interact with Ethereum and account management
TestchainsPre-configured devchains for fast response (PoA)
DappHybridA cross-platform hybrid hosting mechanism for web based decentralised applications

Training modules

Project SourceDescription
Nethereum.WorkbooksXamarin Workbook tutorials including executable code
Nethereum.TutorialsTutorials to run on VS Studio

Code samples

SourceDescription
Keystore generatorKeystore file generator
FaucetWeb application template for an Ether faucet
Nethereum FlappyThe source code files for the Unity3d game integrating with Ethereum
Nethereum Game SampleSample game demonstrating how to integrate Nethereum with UrhoSharp's SamplyGame to build a cross-platform game interacting with Ethereum
Nethereum UI wallet sampleCross platform wallet example using Nethereum, Xamarin.Forms and MvvmCross, targeting: Android, iOS, Windows Mobile, Desktop (windows 10 uwp), IoT with the Raspberry PI and Xbox.
Nethereum Windows wallet sampleWindows forms wallet sample providing the core functionality for Loading accounts from different mediums, Ether transfer, Standard token interaction. This is going to be the basis for the future cross-platform wallet / dapp
Nethereum Windows wallet sampleWindows forms wallet sample providing the core functionality for Loading accounts from different mediums, Ether transfer, Standard token interaction. This is going to be the basis for the future cross-platform wallet / dapp
Blazor/Blockchain ExplorerWasm blockchain explorer based on Blazor and ReactiveUI

Video guides

There a few video guides, which might be helpful to get started. Please note that these videos are for version 1.0, so some areas have changed.

The code for these tutorials can be found here

Introductions

These are two videos that can take you through all the initial steps from creating a contract to deployment, one in the classic windows, visual studio environment and another in a cross platform mac and visual studio code.

Windows, Visual Studio

This video takes you through the steps of creating the a smart contract, compile it, start a private chain and deploy it using Nethereum.

Smart contracts, private test chain and deployment to Ethereum with Nethereum

Introduction to Calls, Transactions, Events, Filters and Topics

This hands on demo provides an introduction to calls, transactions, events filters and topics

Introduction to Calls, Transactions, Events, Filters and Topics

Mappings, Structs, Arrays and complex Functions Output (DTOs)

This video provides an introduction on how to store and retrieve data from structs, mappings and arrays decoding multiple output parameters to Data Transfer Objects

Mappings, Structs, Arrays and complex Functions Output (DTOs)

Thanks and Credits

  • Many thanks to Cass for the fantastic logo (https://github.com/cassiopaia) and everyone in Maker for providing very early feedback.
  • Many thanks to everyone who has submitted a request for extra features, help or bugs either here in github, gitter or other channels, you are continuously shaping this project. A big shout out specially to @slothbag, @matt.tan, @knocte, @TrekDev, @raymens, @rickzanux, @naddison36, @bobsummerwill, @brendan87, @dylanmckendry that were using Nethereum and providing great feedback from the beginning. @djsowa Marcin Sowa for his help on IPC in Linux.
  • Everyone in the Ethereum, Consensys and the blockchain community.
  • Huge shout out to everyone developing all the different Ethereum implementations Geth, Parity, EthereumJ, EthCpp, ethereum-js (and every other utility around it), python (in the different shapes), ruby (digix guys), solidity, vyper, serpent, web3 implementations (web3js the first) and ethjs, web3j, etc, etc and last but not least the .Net Bitcoin implementation.

About

Ethereum .Net cross platform integration library

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Nethereum

Join the chat at https://gitter.im/juanfranblanco/Ethereum.RPCDocumentation StatusNuGet version

Azure DevOps CI CI Build / Test Status

Azure DevOps CI Code Gen: CI Code gen Build / Test Status CI dev packages: MyGet Pre Release

What is Nethereum ?

Nethereum is the .Net integration library for Ethereum, simplifying the access and smart contract interaction with Ethereum nodes both public or permissioned like Geth, Parity or Quorum.

Nethereum is developed targeting netstandard 1.1, net451 and also as a portable library, hence it is compatible with all the operating systems (Windows, Linux, MacOS, Android and OSX) and has been tested on cloud, mobile, desktop, Xbox, hololens and windows IoT.

Upcoming releases will include functionalities such as DevP2P, Plasma and Micro-Payments.

Issues, Requests and help

Please join the chat at: Join the chat at https://gitter.im/juanfranblanco/Ethereum.RPC

We should be able to answer there any simple queries, general comments or requests, everyone is welcome. In a similar feel free to raise any issue or pull request.

Documentation

The documentation and guides can be found at Read the docs. For live examples you can check the workbooks project Nethereum.Workbooks

Features

  • JSON RPC / IPC Ethereum core methods.
  • Geth management API (admin, personal, debugging, miner).
  • Parity management API.
  • Quorum integration.
  • Simplified smart contract interaction for deployment, function calling, transaction and event filtering and decoding of topics.
  • Unity 3d Unity integration.
  • ABI to .Net type encoding and decoding, including attribute based for complex object deserialization.
  • Hd Wallet
  • Transaction, RLP and message signing, verification and recovery of accounts.
  • Libraries for standard contracts Token, ENS and Uport
  • Integrated TestRPC testing to simplify TDD and BDD (Specflow) development.
  • Key storage using Web3 storage standard, compatible with Geth and Parity.
  • Simplified account life cycle for both managed by third party client (personal) or stand alone (signed transactions).
  • Low level Interception of RPC calls.
  • Code generation of smart contracts services.

Quick installation

Nethereum provides two types of packages. Standalone packages targeting Netstandard 1.1, net451 and where possible net351 to support Unity3d. There is also a Nethereum.Portable library which combines all the packages into a single portable library. As netstandard evolves and is more widely supported, the portable library might be eventually deprecated.

To install the latest version:

Windows users

To install the main packages you can either:

PM > Install-Package Nethereum.Web3

or

PM > Install-Package Nethereum.Portable

Mac/Linux users

dotnet add package Nethereum.Web3 

or

dotnet add package Nethereum.Portable

Main Libraries

Project SourceNuget_PackageDescription
Nethereum.PortableNuGet versionPortable class library combining all the different libraries in one package
Nethereum.Web3NuGet versionEthereum Web3 Class Library simplifying the interaction via RPC. Includes contract interaction, deployment, transaction, encoding / decoding and event filters
Nethereum.UnityUnity3d integration, libraries can be found in the Nethereum releases
Nethereum.GethNuGet versionNethereum.Geth is the extended Web3 library for Geth. This includes the non-generic RPC API client methods to interact with the Go Ethereum Client (Geth) like Admin, Debug, Miner
Nethereum.QuorumNuGet versionExtension to interact with Quorum, the permissioned implementation of Ethereum supporting data privacy created by JP Morgan
Nethereum.ParityNuGet versionNethereum.Parity is the extended Web3 library for Parity. Including the non-generic RPC API client methods to interact with Parity. (WIP)

Core Libraries

Project SourceNuget_PackageDescription
Nethereum.ABINuGet versionEncoding and decoding of ABI Types, functions, events of Ethereum contracts
Nethereum.EVMEthereum Virtual Machine API
Nethereum.HexNuGet versionHexTypes for encoding and decoding String, BigInteger and different Hex helper functions
Nethereum.RPCNuGet versionCore RPC Class Library to interact via RCP with an Ethereum client
Nethereum.JsonRpc.ClientNuGet versionNethereum JsonRpc.Client core library to use in conjunction with either the JsonRpc.RpcClient, the JsonRpc.IpcClient or other custom Rpc provider
Nethereum.JsonRpc.RpcClientNuGet versionJsonRpc Rpc Client using Http
Nethereum JsonRpc IpcClientNuGet versionJsonRpc IpcClient provider for Windows, Linux and Unix
Nethereum.RLPNuGet versionRLP encoding and decoding
Nethereum.KeyStoreNuGet versionKeystore generation, encryption and decryption for Ethereum key files using the Web3 Secret Storage definition, https://github.com/ethereum/wiki/wiki/Web3-Secret-Storage-Definition
Nethereum.SignerNuGet versionNethereum signer library to sign and verify messages, RLP and transactions using an Ethereum account private key
Nethereum.ContractsNuGet versionCore library to interact via RPC with Smart contracts in Ethereum
Nethereum.IntegrationTestingIntegration testing module
Nethereum.HDWalletNuGet versionGenerates an HD tree of Ethereum compatible addresses from a randomly generated seed phrase (using BIP32 and BIP39)

Note: IPC is supported for Windows, Unix and Linux but is only available using Nethereum.Web3 not Nethereum.Portable

Smart contract API Libraries

Project SourceNuget_PackageDescription
Nethereum.StandardTokenEIP20NuGet versionNethereum.StandardTokenEIP20 Ethereum Service to interact with ERC20 compliant contracts
Nethereum.UportNuGet versionUport registry library
Nethereum.ENSNuGet versionEthereum Name service library (original ENS) WIP to upgrade to latest ENS

Utilities

Project SourceDescription
Nethereum.Generator.Console
Nethereum.ConsoleA collection of command line utilities to interact with Ethereum and account management
TestchainsPre-configured devchains for fast response (PoA)
DappHybridA cross-platform hybrid hosting mechanism for web based decentralised applications

Training modules

Project SourceDescription
Nethereum.WorkbooksXamarin Workbook tutorials including executable code
Nethereum.TutorialsTutorials to run on VS Studio

Code samples

SourceDescription
Keystore generatorKeystore file generator
FaucetWeb application template for an Ether faucet
Nethereum FlappyThe source code files for the Unity3d game integrating with Ethereum
Nethereum Game SampleSample game demonstrating how to integrate Nethereum with UrhoSharp's SamplyGame to build a cross-platform game interacting with Ethereum
Nethereum UI wallet sampleCross platform wallet example using Nethereum, Xamarin.Forms and MvvmCross, targeting: Android, iOS, Windows Mobile, Desktop (windows 10 uwp), IoT with the Raspberry PI and Xbox.
Nethereum Windows wallet sampleWindows forms wallet sample providing the core functionality for Loading accounts from different mediums, Ether transfer, Standard token interaction. This is going to be the basis for the future cross-platform wallet / dapp
Nethereum Windows wallet sampleWindows forms wallet sample providing the core functionality for Loading accounts from different mediums, Ether transfer, Standard token interaction. This is going to be the basis for the future cross-platform wallet / dapp
Blazor/Blockchain ExplorerWasm blockchain explorer based on Blazor and ReactiveUI

Video guides

There a few video guides, which might be helpful to get started. Please note that these videos are for version 1.0, so some areas have changed.

The code for these tutorials can be found here

Introductions

These are two videos that can take you through all the initial steps from creating a contract to deployment, one in the classic windows, visual studio environment and another in a cross platform mac and visual studio code.

Windows, Visual Studio

This video takes you through the steps of creating the a smart contract, compile it, start a private chain and deploy it using Nethereum.

Smart contracts, private test chain and deployment to Ethereum with Nethereum

Introduction to Calls, Transactions, Events, Filters and Topics

This hands on demo provides an introduction to calls, transactions, events filters and topics

Introduction to Calls, Transactions, Events, Filters and Topics

Mappings, Structs, Arrays and complex Functions Output (DTOs)

This video provides an introduction on how to store and retrieve data from structs, mappings and arrays decoding multiple output parameters to Data Transfer Objects

Mappings, Structs, Arrays and complex Functions Output (DTOs)

Thanks and Credits

  • Many thanks to Cass for the fantastic logo (https://github.com/cassiopaia) and everyone in Maker for providing very early feedback.
  • Many thanks to everyone who has submitted a request for extra features, help or bugs either here in github, gitter or other channels, you are continuously shaping this project. A big shout out specially to @slothbag, @matt.tan, @knocte, @TrekDev, @raymens, @rickzanux, @naddison36, @bobsummerwill, @brendan87, @dylanmckendry that were using Nethereum and providing great feedback from the beginning. @djsowa Marcin Sowa for his help on IPC in Linux.
  • Everyone in the Ethereum, Consensys and the blockchain community.
  • Huge shout out to everyone developing all the different Ethereum implementations Geth, Parity, EthereumJ, EthCpp, ethereum-js (and every other utility around it), python (in the different shapes), ruby (digix guys), solidity, vyper, serpent, web3 implementations (web3js the first) and ethjs, web3j, etc, etc and last but not least the .Net Bitcoin implementation.

About

Ethereum .Net cross platform integration library

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages