OASIS .NET SDK
Build OApps, providers, and ONODE extensions directly in C# using the core OASIS kernel libraries. Targets .NET 8.
NuGet Packages
| Package | Purpose |
|---|---|
NextGenSoftware.OASIS.API.Core | Kernel interfaces, models, OASISResult, managers |
NextGenSoftware.OASIS.API.ONode.Core | ONODE bootstrap, provider registration, HyperDrive |
NextGenSoftware.OASIS.API.Providers.HoloOASIS | Holochain provider + HoloNET |
NextGenSoftware.OASIS.API.Providers.EthereumOASIS | Ethereum / EVM provider |
NextGenSoftware.OASIS.API.Providers.MongoDBOASIS | MongoDB provider |
NextGenSoftware.OASIS.API.Providers.SQLiteOASIS | SQLite provider |
NextGenSoftware.OASIS.STAR | STAR OApp runtime |
OASISResult<T>
All kernel and provider operations return OASISResult<T> — the .NET equivalent of the REST response envelope:
csharp
var result = await avatarManager.SaveAvatarAsync(avatar); if (result.IsError) { _logger.LogError(result.Message); return; } var saved = result.Result; // typed as IAvatar
Core Managers
The kernel exposes functionality through manager classes, accessed via the static OASISBootLoader:
| Manager | Access via | Responsibilities |
|---|---|---|
AvatarManager | OASISBootLoader.OASISAPI.Avatar | CRUD, auth, email verification, password reset |
KarmaManager | OASISBootLoader.OASISAPI.Karma | Award/deduct karma, Akashic Record queries |
HolonManager | OASISBootLoader.OASISAPI.Data | Holon CRUD and search |
NFTManager | OASISBootLoader.OASISAPI.NFT | Minting, transfer, wallet queries |
MapManager | OASISBootLoader.OASISAPI.Map | Our World map, hotspots, GeoNFTs |
SearchManager | OASISBootLoader.OASISAPI.Search | Cross-entity search |
Error Handling
Use OASISErrorHandling to populate OASISResult from exceptions, preserving the isError / isWarning semantics through all layers:
csharp
var result = new OASISResult<IAvatar>(); try { result.Result = await _provider.LoadAvatarAsync(id); } catch (Exception ex) { OASISErrorHandling.HandleError(ref result, ex.Message); } return result;