SdJwt.Net.Wallet
1.0.1
See the version list below for details.
dotnet add package SdJwt.Net.Wallet --version 1.0.1
NuGet\Install-Package SdJwt.Net.Wallet -Version 1.0.1
<PackageReference Include="SdJwt.Net.Wallet" Version="1.0.1" />
<PackageVersion Include="SdJwt.Net.Wallet" Version="1.0.1" />
<PackageReference Include="SdJwt.Net.Wallet" />
paket add SdJwt.Net.Wallet --version 1.0.1
#r "nuget: SdJwt.Net.Wallet, 1.0.1"
#:package SdJwt.Net.Wallet@1.0.1
#addin nuget:?package=SdJwt.Net.Wallet&version=1.0.1
#tool nuget:?package=SdJwt.Net.Wallet&version=1.0.1
SdJwt.Net.Wallet
Generic, extensible identity wallet implementation for .NET.
Overview
This package provides a generic wallet foundation for building identity wallet applications, supporting multiple credential formats and protocols. The architecture is informed by production EUDI Android/iOS implementations and the OWF .NET ecosystem.
Features
Core Capabilities
- Credential Management: Store, retrieve, filter, and present credentials
- Key Management: Generate, sign, and manage cryptographic keys with HAIP compliance
- Format Plugins: Extensible credential format handling (SD-JWT VC, mdoc)
- Protocol Adapters: OpenID4VCI and OpenID4VP support
Advanced Features
- Batch credential issuance and policies
- DPoP (Demonstrating Proof of Possession)
- Wallet attestation (WIA/WUA)
- Transaction logging for audit
- Multi-issuer configuration
Installation
dotnet add package SdJwt.Net.Wallet
Quick Start
using SdJwt.Net.Wallet;
using SdJwt.Net.Wallet.Core;
using SdJwt.Net.Wallet.Storage;
// Create wallet with file-based storage
var storage = new FileCredentialStore("./wallet-data");
var keyManager = new SoftwareKeyManager();
var credentialManager = new DefaultCredentialManager(storage);
var wallet = new GenericWallet(
new WalletOptions { WalletId = "my-wallet" },
credentialManager,
keyManager);
// Process credential offer (OID4VCI)
var offer = await wallet.ProcessCredentialOfferAsync("openid-credential-offer://...");
var credential = await wallet.AcceptCredentialOfferAsync(offer);
// Process presentation request (OID4VP)
var request = await wallet.ProcessPresentationRequestAsync("openid4vp://...");
var result = await wallet.CreateAndSubmitPresentationAsync(request);
Architecture
SdJwt.Net.Wallet/
Core/ # Core interfaces and implementations
ICredentialManager.cs
IKeyManager.cs
IWallet.cs
Formats/ # Credential format plugins
ICredentialFormatPlugin.cs
SdJwtVcFormatPlugin.cs
Protocols/ # Protocol adapters
IOid4VciAdapter.cs
IOid4VpAdapter.cs
Storage/ # Storage abstractions
ICredentialStore.cs
Attestation/ # Wallet attestation
IWalletAttestationsProvider.cs
Audit/ # Transaction logging
ITransactionLogger.cs
Dependencies
This package builds on top of the SD-JWT .NET ecosystem:
| Package | Purpose |
|---|---|
| SdJwt.Net | Core SD-JWT operations |
| SdJwt.Net.Vc | Verifiable Credentials |
| SdJwt.Net.Oid4Vci | Credential issuance |
| SdJwt.Net.Oid4Vp | Presentation protocol |
| SdJwt.Net.PresentationExchange | DIF PEX matching |
| SdJwt.Net.HAIP | Cryptographic compliance |
| SdJwt.Net.StatusList | Credential status |
Related Documentation
License
Apache 2.0
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- Microsoft.Extensions.Caching.Abstractions (>= 9.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 9.0.6)
- SdJwt.Net (>= 1.0.1)
- SdJwt.Net.HAIP (>= 1.0.1)
- SdJwt.Net.Oid4Vci (>= 1.0.1)
- SdJwt.Net.Oid4Vp (>= 1.0.1)
- SdJwt.Net.PresentationExchange (>= 1.0.1)
- SdJwt.Net.StatusList (>= 1.0.1)
- SdJwt.Net.Vc (>= 1.0.1)
- System.IdentityModel.Tokens.Jwt (>= 8.12.1)
-
net10.0
- Microsoft.Extensions.Caching.Abstractions (>= 9.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 9.0.6)
- SdJwt.Net (>= 1.0.1)
- SdJwt.Net.HAIP (>= 1.0.1)
- SdJwt.Net.Oid4Vci (>= 1.0.1)
- SdJwt.Net.Oid4Vp (>= 1.0.1)
- SdJwt.Net.PresentationExchange (>= 1.0.1)
- SdJwt.Net.StatusList (>= 1.0.1)
- SdJwt.Net.Vc (>= 1.0.1)
- System.IdentityModel.Tokens.Jwt (>= 8.12.1)
-
net8.0
- Microsoft.Extensions.Caching.Abstractions (>= 9.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 9.0.6)
- SdJwt.Net (>= 1.0.1)
- SdJwt.Net.HAIP (>= 1.0.1)
- SdJwt.Net.Oid4Vci (>= 1.0.1)
- SdJwt.Net.Oid4Vp (>= 1.0.1)
- SdJwt.Net.PresentationExchange (>= 1.0.1)
- SdJwt.Net.StatusList (>= 1.0.1)
- SdJwt.Net.Vc (>= 1.0.1)
- System.IdentityModel.Tokens.Jwt (>= 8.12.1)
-
net9.0
- Microsoft.Extensions.Caching.Abstractions (>= 9.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 9.0.6)
- SdJwt.Net (>= 1.0.1)
- SdJwt.Net.HAIP (>= 1.0.1)
- SdJwt.Net.Oid4Vci (>= 1.0.1)
- SdJwt.Net.Oid4Vp (>= 1.0.1)
- SdJwt.Net.PresentationExchange (>= 1.0.1)
- SdJwt.Net.StatusList (>= 1.0.1)
- SdJwt.Net.Vc (>= 1.0.1)
- System.IdentityModel.Tokens.Jwt (>= 8.12.1)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on SdJwt.Net.Wallet:
| Package | Downloads |
|---|---|
|
SdJwt.Net.Eudiw
EU Digital Identity Wallet (EUDIW) profile implementation for the SD-JWT .NET ecosystem. Provides eIDAS 2.0 compliance, ARF validation, EU Trust List integration, PID credential handling, and QEAA/EAA support for European digital identity verification. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version 1.0.0: Initial release of SD-JWT Wallet for .NET. Generic,
extensible wallet implementation supporting credential management, key management, and
protocol adapters for OpenID4VCI/VP.