What Do You Want to Do?
Find the right guide and packages for your task. Each row links to a how-to guide and the NuGet packages you'll need.
Core Foundation
Quick start: Install
Nethereum.Web3and follow the First Project guide. See the Core Foundation section.
Signing & Key Management
| I want to... | Packages |
|---|---|
| Generate keys and create accounts | Nethereum.Web3 + Nethereum.Accounts |
| Sign and verify messages | Nethereum.Web3 |
| Sign EIP-712 typed structured data | Nethereum.Signer.EIP712 |
| Create and decrypt keystore files | Nethereum.KeyStore |
| Use HD wallets (BIP32/BIP39 mnemonic) | Nethereum.HdWallet |
| Sign with Ledger or Trezor hardware wallets | Nethereum.Signer.Ledger / Nethereum.Signer.Trezor |
| Sign with AWS KMS or Azure Key Vault | Nethereum.Signer.AWSKeyManagement / Nethereum.Signer.AzureKeyVault |
See the Signing & Key Management section.
Smart Contracts
| I want to... | Packages |
|---|---|
| Deploy, call, and send transactions to contracts | Nethereum.Web3 |
| Deploy a contract (with or without code generation) | Nethereum.Web3 |
| Work with ERC-20 tokens (balance, transfer, approve) | Nethereum.Web3 |
| Generate C# services from Solidity ABI | Nethereum.Generator.Console |
| Auto-generate on build (MSBuild) | Nethereum.Autogen.ContractApi |
| Filter and query contract events | Nethereum.Contracts |
| Handle custom errors and reverts | Nethereum.Contracts |
| Use built-in standards (ERC-20/721/1155, ENS, ERC-1271, EIP-3009) | Nethereum.Contracts |
| Batch queries with Multicall or RPC batching | Nethereum.Contracts |
| Deploy to deterministic addresses with CREATE2 | Nethereum.Contracts |
See the Smart Contracts section.
DeFi & Protocols
| I want to... | Packages |
|---|---|
| Swap tokens on Uniswap (V2/V3/V4) | Nethereum.Uniswap |
| Manage Uniswap liquidity positions | Nethereum.Uniswap |
| Use Permit2 for gasless approvals | Nethereum.Uniswap (includes Permit2) |
| Execute Gnosis Safe multi-sig transactions | Nethereum.GnosisSafe |
| Accept or pay for crypto payments (x402) | Nethereum.X402 |
| Interact with Circles UBI protocol | Nethereum.Circles |
| Authenticate with Sign-In with Ethereum (SIWE) | Nethereum.Siwe |
| Deposit and withdraw privately with Privacy Pools | Nethereum.PrivacyPools + Nethereum.PrivacyPools.Circuits |
| Generate ZK proofs natively (desktop/server) | Nethereum.ZkProofs.RapidSnark + Nethereum.CircomWitnessCalc |
| Generate ZK proofs in the browser (Blazor WASM) | Nethereum.ZkProofs.Snarkjs.Blazor |
| Verify Groth16 proofs in pure C# | Nethereum.ZkProofsVerifier |
See the DeFi & Protocols section and Zero-Knowledge Proofs for ZK proofs.
EVM Simulator
| I want to... | Packages |
|---|---|
| Simulate a transaction and preview state changes | Nethereum.EVM |
| Decode nested call trees (contract-to-contract calls) | Nethereum.EVM |
| Extract and decode event logs from simulation | Nethereum.EVM |
| Decode revert reasons and custom errors | Nethereum.EVM |
| Simulate ERC-20 transfers and approvals | Nethereum.EVM |
| Execute raw bytecode in the EVM | Nethereum.EVM |
| Debug EVM execution step-by-step | Nethereum.EVM |
| Disassemble contract bytecode to opcodes | Nethereum.EVM |
See the EVM Simulator section.
Chain Infrastructure
| I want to... | Packages |
|---|---|
| Build a custom chain node with block production | Nethereum.CoreChain |
| Implement custom storage backends | Nethereum.CoreChain + Nethereum.CoreChain.RocksDB |
| Add custom JSON-RPC handlers | Nethereum.CoreChain |
| Fork a live network for local testing | Nethereum.CoreChain |
See the Chain Infrastructure section.
DevChain
| I want to... | Packages |
|---|---|
| Run a local dev chain (no external node) | Nethereum.DevChain |
| Expose DevChain as HTTP for MetaMask/Foundry/Hardhat | Nethereum.DevChain.Server |
| Write integration tests against a local chain | Nethereum.DevChain |
| Fork a live network and manipulate state/time | Nethereum.DevChain |
| Trace and debug transactions (opcode-level) | Nethereum.DevChain |
| Spin up a full dev environment with Aspire | dotnet new nethereum-devchain template |
See the DevChain section.
Aspire Templates
| I want to... | Packages |
|---|---|
| Set up a local Ethereum dev environment in one command | dotnet new nethereum-devchain |
| Build a full-stack dApp with Blazor, Solidity, and C# | dotnet new nethereum-dapp |
| Generate C# typed services from Solidity contracts | Nethereum.Generator.Console (via template scripts) |
| Connect browser wallets via EIP-6963 in Blazor | Nethereum.Blazor + Nethereum.EIP6963WalletInterop |
| Auto-discover contract ABIs in Explorer | Nethereum.Explorer |
| Deploy Solidity contracts with Forge | dotnet new nethereum-dapp (includes Foundry) |
| Write integration tests against a live DevChain | dotnet new nethereum-dapp (includes Tests project) |
See the Aspire Templates section.
Account Abstraction (ERC-4337 / ERC-7579)
| I want to... | Packages |
|---|---|
| Create and send a UserOperation | Nethereum.AccountAbstraction |
| Use smart contracts with Account Abstraction | Nethereum.AccountAbstraction |
| Deploy a smart account | Nethereum.AccountAbstraction |
| Batch operations and use paymasters | Nethereum.AccountAbstraction |
| Use ERC-7579 modular accounts (validators, hooks, session keys) | Nethereum.AccountAbstraction |
| Run an ERC-4337 bundler | Nethereum.AccountAbstraction.Bundler + Nethereum.AccountAbstraction.Bundler.RpcServer |
See the Account Abstraction section.
Data, Indexing & Explorer
| I want to... | Packages |
|---|---|
| Crawl blocks, transactions, and event logs | Nethereum.BlockchainProcessing |
| Resume processing after restart / handle reorgs | Nethereum.BlockchainProcessing |
| Index blockchain data to PostgreSQL | BlockchainStore.Postgres + Processors.Postgres |
| Index to SQL Server or SQLite | BlockchainStore.SqlServer/Sqlite + Processors |
| Run indexing as a hosted service | BlockchainStorage.Processors.* |
| Index internal transactions (traces) | Processors.* + debug RPC |
| Index ERC-20/721/1155 token transfers and balances | BlockchainStorage.Token.Postgres |
| Build a blockchain explorer | Nethereum.Explorer |
| Interact with contracts via ABI-decoded UI | Nethereum.Explorer + DataServices |
| Debug EVM execution step-by-step in browser | Nethereum.Explorer |
| Browse MUD tables in the explorer | Nethereum.Explorer + Mud.Repositories.Postgres |
See the Data, Indexing & Explorer section.
MUD Framework
| I want to... | Packages |
|---|---|
| Understand MUD and generate C# code | Nethereum.Mud + Nethereum.Mud.Contracts |
| Read, write, and query MUD table records | Nethereum.Mud + Nethereum.Mud.Contracts |
| Index MUD Store events to PostgreSQL | Nethereum.Mud.Repositories.Postgres |
| Index MUD Store events with EF Core | Nethereum.Mud.Repositories.EntityFramework |
| Deploy a MUD World with tables and systems | Nethereum.Mud.Contracts |
| Query normalised MUD tables in PostgreSQL | Nethereum.Mud.Repositories.Postgres |
See the MUD Framework section.
Wallet Connectivity
| I want to... | Packages |
|---|---|
| Understand IEthereumHostProvider (the universal wallet abstraction) | Nethereum.UI |
See the Wallet Connectivity section.
Wallet SDK
| I want to... | Packages |
|---|---|
| Build a multi-platform wallet app | Nethereum.Wallet + Nethereum.Wallet.UI.Components + renderer (.Blazor / .Maui) |
| Understand the MVVM wallet architecture | Nethereum.Wallet.UI.Components |
| Create accounts (mnemonic, private key, vault encryption) | Nethereum.Wallet |
| Send transactions with EVM simulation preview | Nethereum.Wallet + Nethereum.EVM |
| Use the wallet as an EIP-1193 RPC provider for dApps | Nethereum.Wallet.RpcRequests |
| Integrate hardware wallets in wallet UI | Nethereum.Wallet.UI.Components.Trezor + .Blazor.Trezor |
| Use Ledger/Trezor on Android | Nethereum.Maui.AndroidUsb |
See the Wallet SDK section.
Web (Blazor) dApp Integration
| I want to... | Packages |
|---|---|
| Connect browser wallets in Blazor (EIP-6963, MetaMask, WalletConnect) | Nethereum.Blazor + Nethereum.EIP6963WalletInterop |
| Authenticate with SIWE in Blazor | Nethereum.Siwe + Nethereum.Blazor |
| Interact with any contract dynamically (no codegen) | Nethereum.Blazor |
| Debug Solidity step-by-step in browser | Nethereum.Blazor.Solidity |
| Connect via WalletConnect / Reown | Nethereum.WalletConnect / Nethereum.Reown.AppKit.Blazor |
See the Web (Blazor) dApp Integration section.
Unity
| I want to... | Packages |
|---|---|
| Get started with Ethereum in Unity | Nethereum.Unity |
| Connect browser wallets in Unity WebGL | Nethereum.Unity.EIP6963 + Nethereum.Unity.Metamask |
| Deploy and interact with smart contracts in Unity | Nethereum.Unity |
| Share contract code between Unity and .NET | Nethereum.Generator.Console |
See the Unity section.
Data Services
| I want to... | Packages |
|---|---|
| Scan token balances via multicall (no indexer needed) | Nethereum.TokenServices |
| Get token balances with CoinGecko prices | Nethereum.TokenServices |
| Fetch ABI from Etherscan or Sourcify with automatic fallback | Nethereum.DataServices |
| Look up function/event signatures (4Byte) | Nethereum.DataServices |
| Discover RPC endpoints and chain metadata from Chainlist | Nethereum.DataServices |
| Query gas prices and account transactions from Etherscan | Nethereum.DataServices |
| Get token prices and metadata from CoinGecko | Nethereum.DataServices |
| Store Sourcify data locally in PostgreSQL | Nethereum.Sourcify.Database |
See the Data Services section.
Consensus Light Client
| I want to... | Packages |
|---|---|
| Verify ETH balances without trusting RPC | Nethereum.ChainStateVerification + Nethereum.Consensus.LightClient |
| Track finalized beacon headers | Nethereum.Consensus.LightClient + Nethereum.Signer.Bls.Herumi |
| Verify storage proofs and contract code | Nethereum.ChainStateVerification |
| Query Beacon Chain REST API | Nethereum.Beaconchain |
| Serialize consensus-layer types (SSZ) | Nethereum.Consensus.Ssz + Nethereum.SSZ |
See the Consensus Light Client section.
Client Extensions
| I want to... | Packages |
|---|---|
| Use Geth admin and debug APIs | Nethereum.Geth |
| Use Besu-specific APIs | Nethereum.Besu |
| Use Quorum privacy features | Nethereum.Quorum |
See the Client Extensions section.
AppChains (Preview)
| I want to... | Packages |
|---|---|
| Launch a sequencer and deploy contracts | Nethereum.AppChain.Server |
| Use AppChainBuilder for embedded/testing | Nethereum.AppChain.Sequencer |
| Configure RocksDB persistent storage | Nethereum.CoreChain.RocksDB |
| Sync follower nodes and verify state | Nethereum.AppChain.Sync |
| Configure P2P networking between nodes | Nethereum.AppChain.P2P |
| Anchor AppChain state to L1 | Nethereum.AppChain.Anchoring |
See the AppChains section.
Not sure where to start?
- New to Nethereum? Start with Getting Started
- Looking for a specific package? Check the Component Catalog
- Want to understand the architecture? See the Architecture Map
- Want to try code interactively? Visit the Playground