Status: ✅ Active Development - W3C DID Core 1.0 + W3C Verifiable Credentials 2.0 Current Feature: REST API + OpenID4VC Integration
A production-ready self-sovereign identity platform built on W3C standards with OpenID4VC wallet compatibility.
- .NET 9.0 SDK
- Docker Desktop (for PostgreSQL)
- Git
# Clone and build
git clone <repo-url>
cd HeroSSID
dotnet restore
dotnet build
# Start infrastructure (.NET Aspire recommended)
cd src/Services/HeroSSID.AppHost
dotnet run
# Opens Aspire Dashboard at http://localhost:15888
# Run tests
dotnet testHeroSSID/
├── src/
│ ├── Services/
│ │ ├── HeroSSID.Api/ # REST API + OpenID4VC endpoints
│ │ └── HeroSSID.AppHost/ # .NET Aspire orchestration
│ ├── Libraries/
│ │ ├── HeroSSID.Core/ # Domain models, multi-tenancy, rate limiting
│ │ ├── HeroSSID.Data/ # EF Core, PostgreSQL entities
│ │ ├── HeroSSID.DidOperations/ # W3C DID operations (did:web, did:key)
│ │ ├── HeroSSID.Credentials/ # W3C VC issuance/verification
│ │ ├── HeroSSID.OAuth/ # OAuth 2.0 + OpenIddict integration
│ │ └── HeroSSID.Observability/ # Logging and telemetry
│ └── Cli/
│ └── HeroSSID.Cli/ # Command-line tools
├── tests/
│ ├── Unit/ # Unit tests for all libraries
│ ├── Integration/ # End-to-end API tests
│ └── Contract/ # API contract tests
├── specs/ # Feature specifications
│ ├── 001-core-herossid-identity/
│ ├── 002-w3c-verifiable-credentials/
│ └── 003-rest-api-openid4vc/
├── docs/ # Documentation
├── CLAUDE.md # Development guidelines
└── HeroSSID.sln
- .NET 9.0 - Runtime with native Ed25519 cryptography
- ASP.NET Core 9.0 - REST API framework
- .NET Aspire 9 - Cloud-native orchestration
- PostgreSQL 17 - Primary database with EF Core 9
- OpenIddict 5.x - OAuth 2.0 / OpenID Connect server
- xUnit v3 - Testing framework
- W3C DID Core 1.0 - DID document creation and resolution
- W3C Verifiable Credentials 2.0 - Credential data model
- Ed25519Signature2020 - Cryptographic proof suite
- NSec.Cryptography - Ed25519 operations
- SimpleBase - Multibase/multicodec encoding
- QRCoder - QR code generation for credential offers
# Create a DID
POST /api/v1/dids
{
"method": "did:key",
"keyType": "Ed25519"
}
# Resolve a DID
GET /api/v1/dids/{did}# Issue a credential
POST /api/v1/credentials/issue
{
"issuerDid": "did:key:z6Mk...",
"holderDid": "did:key:z6Mk...",
"credentialType": "UniversityDegreeCredential",
"claims": {
"degree": "Bachelor of Computer Science"
}
}
# Verify a credential
POST /api/v1/credentials/verify
{
"credential": "eyJhbGc..."
}# All tests
dotnet test
# Specific project
dotnet test tests/Unit/HeroSSID.DidOperations.Tests/
# With verbosity
dotnet test --verbosity normal# Add migration
dotnet ef migrations add MigrationName --project src/Libraries/HeroSSID.Data --startup-project src/Services/HeroSSID.AppHost
# Apply migrations
dotnet ef database update --project src/Libraries/HeroSSID.Data --startup-project src/Services/HeroSSID.AppHost- All tests must pass before commit
- 0 compiler warnings
- Follow .NET coding conventions
- Feature-based code organization
- VISION.md - Strategic vision and opportunity
- testing-guide.md - Testing practices
- NUGET_TRUSTED_PUBLISHING.md - Package deployment
- CLAUDE.md - Development guidelines
- Feature Specs - See
specs/directory for detailed specifications
- Feature 001: Core HeroSSID Identity (DID operations, multi-tenancy, security)
- Feature 002: W3C Verifiable Credentials (issuance, verification, presentations, SD-JWT)
- Feature 003: REST API + OpenID4VC (in progress)
- REST API endpoints for DIDs and Credentials
- OpenID4VC integration
- API contract tests
TBD
- W3C DID Core 1.0: https://www.w3.org/TR/did-core/
- W3C Verifiable Credentials 2.0: https://www.w3.org/TR/vc-data-model-2.0/
- OpenID4VCI: https://openid.net/specs/openid-4-verifiable-credential-issuance-1_0.html
- OpenID4VP: https://openid.net/specs/openid-4-verifiable-presentations-1_0.html
Built with .NET 9.0 and W3C Standards
Last Updated: 2025-10-24