Wallet SDK
Build multi-platform self-custodial wallet applications using Nethereum's layered MVVM architecture. The Wallet SDK provides core wallet services, shared ViewModels, and platform-specific renderers for Blazor and MAUI.
Architecture
Nethereum.Wallet Core services: accounts, vaults, BIP32/BIP39,
chain config, transaction building, EVM preview
+ Nethereum.Wallet.UI.Components Platform-agnostic MVVM ViewModels
(CommunityToolkit.Mvvm, localisation EN/ES)
+ Nethereum.Wallet.UI.Components.Blazor Blazor/MudBlazor renderer
or .Maui .NET MAUI renderer
What's in the Box
| Layer | Packages | Purpose |
|---|---|---|
| Core | Nethereum.Wallet, Nethereum.UI | Account management, vault encryption, chain configuration, transaction building, EVM state preview, SIWE authenticator |
| ViewModels | Nethereum.Wallet.UI.Components, .Trezor | Cross-platform MVVM ViewModels for every wallet screen with field-level validation and localisation |
| Renderers | .Blazor, .Blazor.Trezor, .Maui | Platform-specific UI implementations |
| RPC | Nethereum.Wallet.RpcRequests | EIP-1193 JSON-RPC request handlers for wallet-to-dApp communication |
| Hardware | Nethereum.Maui.AndroidUsb | Android USB transport for Ledger/Trezor on MAUI |
Account Types
The wallet supports multiple account types:
- Mnemonic — BIP39 seed phrase with BIP44 derivation paths
- Private Key — Direct ECDSA key import
- Keystore — Web3 Secret Storage encrypted files
- View-Only — Address monitoring without signing capability
- Hardware — Ledger and Trezor via USB (desktop/Android)
Getting Started
Install the core + your renderer:
dotnet add package Nethereum.Wallet
dotnet add package Nethereum.Wallet.UI.Components.Blazor
Register services in DI:
builder.Services.AddNethereumWallet();
builder.Services.AddNethereumWalletBlazorComponents();
Packages
| Package | Description |
|---|---|
Nethereum.UI | Abstract IEthereumHostProvider, SIWE authenticator, validation helpers |
Nethereum.Wallet | Core wallet: accounts, vaults, chain config, HD wallets, dApp management |
Nethereum.Wallet.RpcRequests | EIP-1193 JSON-RPC handlers |
Nethereum.Wallet.UI.Components | Cross-platform MVVM ViewModels |
Nethereum.Wallet.UI.Components.Trezor | Trezor hardware wallet ViewModels |
Nethereum.Wallet.UI.Components.Blazor | Blazor/MudBlazor renderer |
Nethereum.Wallet.UI.Components.Blazor.Trezor | Blazor Trezor components |
Nethereum.Wallet.UI.Components.Maui | .NET MAUI renderer |
Nethereum.Maui.AndroidUsb | Android USB transport for hardware wallets |