Provider Overview
OASIS providers are pluggable storage and network backends. Each one implements IOASISProvider and can be mixed, chained, and failed over via HyperDrive.
Built-in Providers
| Provider | ProviderType string | Best for |
|---|---|---|
| HoloOASIS | HoloOASIS | Decentralised, agent-centric storage on Holochain. Ideal for trustless OApps. |
| EthereumOASIS | EthereumOASIS | NFT minting and on-chain asset storage via Ethereum / EVM chains. |
| IPFSOASIS | IPFSOASIS | Large binary assets (images, audio, 3D models) on IPFS. |
| MongoDBOASIS | MongoDBOASIS | Fast reads, rich queries. Good default for cloud-hosted ONodes. |
| SQLiteOASIS | SQLiteOASIS | Local development, edge / embedded nodes. |
| Neo4jOASIS | Neo4jOASIS | Graph-based holonic relationships. |
| ThreefoldOASIS | ThreefoldOASIS | Decentralised cloud infrastructure via the ThreeFold Grid. |
| SolanaOASIS | SolanaOASIS | High-throughput NFT and token operations on Solana. |
| EOSIOOASIS | EOSIOOASIS | EOS.IO smart contract interactions. |
Selecting a Provider
Set the default provider in your ONODE's OASISDNA.json:
{
"OASISDNA": {
"DefaultProviderType": "MongoDBOASIS",
"BackupProviderTypes": [ "SQLiteOASIS" ]
}
}
Override per-request by including "providerType": "HoloOASIS" in the request body.
Registering Providers
Providers are registered in Program.cs / startup using the OASIS provider registration API:
OASISBootLoader.OASISBootLoader.RegisterProvider( new MongoDBOASIS(connectionString, dbName) ); OASISBootLoader.OASISBootLoader.RegisterProvider( new HoloOASIS(holochainConductorUri) );
The IOASISProvider Interface
Every provider implements these core capability groups:
- Avatar — SaveAvatar, LoadAvatar, DeleteAvatar, SearchAvatars
- Holon — SaveHolon, LoadHolon, DeleteHolon, SearchHolons
- Search — SearchAll
Additional optional interfaces exist for NFT (INFTOASISProvider), geo (IGeoSpatialOASISProvider), and network (IOASISNETProvider) capabilities. A provider only needs to implement the interfaces it supports — the kernel checks capability at runtime.
See Building a Provider for a step-by-step guide to implementing IOASISProvider for any storage or network backend.