OASIS Alpha Tester Documentation

Table of Contents


Introduction

Welcome to the OASIS (Open Advanced Secure Interoperable Systems) Alpha Testing Program! OASIS is a comprehensive Web3 platform that provides:

  • Programmable Digital Identity (Avatars with wallets, NFTs, karma)

  • Cross-chain Interoperability (Ethereum, Solana, Holochain, Arbitrum, etc.)

  • Modular Architecture (APIs, providers, templates)

  • STAR Engine (Smart Template and Action Renderer)

This documentation will guide you through the key components and how to use them effectively.


Getting Started

Prerequisites

  • .NET 8.0 or later

  • Node.js (for some components)

  • Git

  • Basic understanding of Web3 concepts

Installation

  1. Clone the OASIS repository

  2. Navigate to the project root

  3. Run dotnet restore to restore dependencies

  4. Build the solution using dotnet build

Quick Start

The fastest way to get started is through the test harnesses, which provide working examples of all major functionality.


HoloNET Usage

HoloNET is the .NET client for Holochain, enabling you to connect any .NET or Unity application to Holochain's decentralized architecture.

Basic Setup

Three Ways to Use HoloNET

1. Direct HoloNETClient Calls

3. HoloNETAuditEntryBaseClass (Advanced)

HoloOASIS Integration

HoloOASIS uses HoloNET to implement OASIS storage and network providers:

Test Harness Usage

Use the HoloNET Test Harness to test functionality:


OASIS APIs

The OASIS API provides RESTful endpoints for avatar management, data operations, and blockchain interactions.

Base URL

  • Development: https://localhost:5002

  • Staging: https://staging-api.oasisplatform.world

  • Production: https://api.oasisplatform.world

Authentication Flow

1. Register Avatar

2. Verify Email

3. Authenticate

Response includes JWT token for subsequent requests:

Core API Endpoints

Avatar Management

  • POST /api/avatar/register - Register new avatar

  • POST /api/avatar/authenticate - Login avatar

  • GET /api/avatar/verify-email - Verify email address

  • GET /api/avatar/{id} - Get avatar details

  • PUT /api/avatar/{id} - Update avatar

  • DELETE /api/avatar/{id} - Delete avatar

Data Operations

  • POST /api/data/save-holon - Save data holon

  • GET /api/data/load-holon/{id} - Load data holon

  • GET /api/data/load-holons-for-parent/{parentId} - Load child holons

  • DELETE /api/data/delete-holon/{id} - Delete holon

NFT Operations

  • POST /api/nft/mint-nft - Mint new NFT

  • GET /api/nft/load-nft/{id} - Load NFT details

  • GET /api/nft/load-nfts-for-avatar/{avatarId} - Load avatar's NFTs

Provider Management

  • GET /api/provider/get-current-storage-provider - Get current provider

  • POST /api/provider/activate-provider/{providerType} - Activate provider

  • GET /api/provider/get-all-registered-providers - List all providers

Using Providers in API Calls

Most endpoints support provider-specific calls:

NFT Minting Example

Based on the NFT minting briefing, here's how to mint NFTs:


Provider Architecture

OASIS uses a modular provider architecture that allows you to extend functionality by creating custom providers.

Available Providers

Storage Providers

  • MongoDBOASIS - MongoDB document database

  • SQLLiteDBOASIS - SQLite relational database

  • Neo4jOASIS - Neo4j graph database

  • LocalFileOASIS - Local file system storage

Blockchain Providers

  • EthereumOASIS - Ethereum blockchain

  • ArbitrumOASIS - Arbitrum layer 2

  • PolygonOASIS - Polygon network

  • SolanaOASIS - Solana blockchain

  • EOSIOOASIS - EOSIO blockchain

  • TRONOASIS - TRON blockchain

Network Providers

  • HoloOASIS - Holochain network

  • IPFSOASIS - IPFS decentralized storage

  • PinataOASIS - Pinata IPFS service

Creating Custom Providers

1. Provider Template

Use the ProviderNameOASIS template as a starting point:

2. Provider Registration

Add your provider to the OASISDNA.json configuration:

3. Provider Interfaces

Implement the interfaces your provider needs:

  • IOASISStorageProvider - Basic storage operations

  • IOASISNETProvider - Network operations

  • IOASISBlockchainStorageProvider - Blockchain storage

  • IOASISSmartContractProvider - Smart contract operations

  • IOASISNFTProvider - NFT operations

Provider Configuration

Configure providers in OASISDNA.json:


Avatar Authentication

OASIS uses a comprehensive avatar authentication system with JWT tokens and refresh tokens.

Authentication Flow

1. Registration Process

2. Email Verification

3. Authentication

JWT Token Usage

Include JWT token in API requests:

Refresh Token

When JWT expires, use refresh token:

Avatar Properties

Avatars contain comprehensive identity information:


Test Harnesses

Test harnesses provide working examples and testing capabilities for all OASIS components.

Available Test Harnesses

1. HoloNET Test Harness

Location: holochain-client-csharp/NextGenSoftware.Holochain.HoloNET.Client.TestHarness/

Available Tests:

  • WhoAmI - Test basic connection

  • Numbers - Test number operations

  • Signal - Test signaling

  • SaveLoadOASISEntry - Test OASIS entry operations

  • LoadTestNumbers - Performance testing

  • AdminInstallApp - Admin operations

Usage:

2. ONODE Core Test Harness

Location: NextGenSoftware.OASIS.API.ONODE.Core.TestHarness/

Features:

  • NFT minting tests

  • Avatar operations

  • Provider testing

  • Data operations

Usage:

3. STAR Test Harness

Location: STAR ODK/NextGenSoftware.OASIS.STAR.TestHarness/

Features:

  • Celestial body creation

  • STAR engine testing

  • OAPP generation

  • Provider integration

Usage:

4. Provider-Specific Test Harnesses

Each provider has its own test harness:

  • NextGenSoftware.OASIS.API.Providers.ArbitrumOASIS.TestHarness/

  • NextGenSoftware.OASIS.API.Providers.EthereumOASIS.TestHarness/

  • NextGenSoftware.OASIS.API.Providers.SOLANAOASIS.TestHarness/

Running Tests

Command Line

Programmatic

Test Configuration

Configure test harnesses in their respective OASIS_DNA.json files:


STAR System

STAR (Synergiser Transformer/Translator Aggregator Resolver) is the heart of OASIS, providing a unified ontology and templating engine.

STAR Architecture

STAR models the universe as a hierarchical structure:

  • Omiverse (root)

    • Multiverses

      • Universes

        • Galaxies

          • Solar Systems

            • Stars/Planets/Moons

Celestial Bodies

Stars

  • Center of solar systems

  • Can create moons and planets

  • Basic level celestial body

SuperStars

  • Center of galaxies

  • Can create solar systems, stars, planets, moons

  • Used for galaxy navigation

GrandSuperStars

  • Center of universes

  • Can create galaxies, super stars, stars, planets, moons

  • Access to dimensions 1-7

GreatGrandSuperStar

  • Center of the omiverse

  • Can create multiverses and all celestial bodies

  • Access to all dimensions (1-12)

Using STAR

1. Initialize STAR

2. Create Celestial Bodies

3. Generate OAPPs

STAR Templates

STAR can generate code for multiple platforms:

Web Applications

Unity Games

Mobile Apps

COSMIC ORM

STAR uses COSMIC (Computer Object-Orientated Super-Synergistic Machine Interface Code) as its ORM:

STAR Test Harness

Test STAR functionality:


Additional Resources

Community

Support

Development Environment Setup

Postman Collections

Download and import these Postman collections:

Troubleshooting

Common Issues

  1. Provider Connection Issues

    • Check provider configuration in OASISDNA.json

    • Verify network connectivity

    • Check provider-specific logs

  2. Authentication Failures

    • Verify JWT token expiration

    • Check refresh token validity

    • Ensure proper authorization headers

  3. NFT Minting Issues

    • Verify wallet balance for gas fees

    • Check contract deployment status

    • Review transaction parameters

  4. Test Harness Errors

    • Ensure all dependencies are installed

    • Check configuration files

    • Verify provider availability

Best Practices

  1. Always use test harnesses for initial testing

  2. Start with simple operations before complex workflows

  3. Test with multiple providers to ensure compatibility

  4. Use proper error handling in your applications

  5. Keep JWT tokens secure and implement proper refresh logic

  6. Monitor provider performance and implement failover strategies


Conclusion

This documentation provides a comprehensive guide to using OASIS for alpha testing. Start with the test harnesses to familiarize yourself with the system, then explore the APIs and provider architecture. The STAR system offers advanced templating and code generation capabilities for building sophisticated applications.

For additional support or questions, please reach out through the community channels or create an issue on GitHub.

Happy Testing! 🚀

Last updated