Built-in Providers

ProviderProviderType stringBest for
HoloOASISHoloOASISDecentralised, agent-centric storage on Holochain. Ideal for trustless OApps.
EthereumOASISEthereumOASISNFT minting and on-chain asset storage via Ethereum / EVM chains.
IPFSOASISIPFSOASISLarge binary assets (images, audio, 3D models) on IPFS.
MongoDBOASISMongoDBOASISFast reads, rich queries. Good default for cloud-hosted ONodes.
SQLiteOASISSQLiteOASISLocal development, edge / embedded nodes.
Neo4jOASISNeo4jOASISGraph-based holonic relationships.
ThreefoldOASISThreefoldOASISDecentralised cloud infrastructure via the ThreeFold Grid.
SolanaOASISSolanaOASISHigh-throughput NFT and token operations on Solana.
EOSIOOASISEOSIOOASISEOS.IO smart contract interactions.

Selecting a Provider

Set the default provider in your ONODE's OASISDNA.json:

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:

csharp
OASISBootLoader.OASISBootLoader.RegisterProvider(
    new MongoDBOASIS(connectionString, dbName)
);
OASISBootLoader.OASISBootLoader.RegisterProvider(
    new HoloOASIS(holochainConductorUri)
);

The IOASISProvider Interface

Every provider implements these core capability groups:

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.

💡
Building your own provider

See Building a Provider for a step-by-step guide to implementing IOASISProvider for any storage or network backend.