OASIS Provider Development Guide for Alpha Testers

Overview

OASIS uses a modular provider architecture that allows you to extend functionality by creating custom providers. This guide covers how to build, test, and deploy custom OASIS providers.


Provider Architecture

Provider Categories

Storage Providers (IOASISStorageProvider)

Handle data persistence and retrieval:

  • MongoDBOASIS - MongoDB document database

  • SQLLiteDBOASIS - SQLite relational database

  • Neo4jOASIS - Neo4j graph database

  • LocalFileOASIS - Local file system storage

Blockchain Providers (IOASISBlockchainStorageProvider)

Handle blockchain operations:

  • EthereumOASIS - Ethereum blockchain

  • ArbitrumOASIS - Arbitrum layer 2

  • PolygonOASIS - Polygon network

  • SolanaOASIS - Solana blockchain

Network Providers (IOASISNETProvider)

Handle network operations:

  • HoloOASIS - Holochain network

  • IPFSOASIS - IPFS decentralized storage

  • PinataOASIS - Pinata IPFS service

Smart Contract Providers (IOASISSmartContractProvider)

Handle smart contract operations:

  • Contract deployment

  • Function calls

  • Event monitoring

  • Gas management

NFT Providers (IOASISNFTProvider)

Handle NFT operations:

  • NFT minting

  • Metadata management

  • Transfer operations

  • Collection management


Creating a Custom Provider

Step 1: Project Structure

Create a new provider project following the naming convention:

Step 2: Provider Template

Use the ProviderNameOASIS template as a starting point:

Step 3: Provider Registration

Add your provider to the ProviderType enum:

Step 4: Configuration

Create a DNA.json file for your provider:

Step 5: Test Harness

Create a test harness for your provider:


Provider Interfaces

Core Interfaces

IOASISStorageProvider

IOASISNFTProvider

IOASISSmartContractProvider

Optional Interfaces

IOASISNETProvider

For network operations:

IOASISSearchProvider

For search functionality:


Provider Configuration

OASIS_DNA.json Integration

Add your provider to the main OASIS_DNA.json:

Environment-Specific Configuration

Development

Production


Testing Your Provider

Unit Testing

Create unit tests for your provider:

Integration Testing

Test your provider with the OASIS system:

Performance Testing

Test provider performance:


Provider Deployment

Build Configuration

Configure your provider project:

Packaging

Create a NuGet package for your provider:

Deployment Steps

  1. Build your provider:

  2. Run tests:

  3. Package:

  4. Deploy:


Best Practices

Error Handling

Logging

Configuration Validation

Resource Management


Provider Examples

Database Provider Example

Blockchain Provider Example


Support and Resources

Documentation

Community

Technical Support


Happy Provider Development! 🔧

This guide provides comprehensive information for developing custom OASIS providers. Start with simple storage providers and gradually move to more complex blockchain and network providers.

Last updated