Table of Contents
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
Node.js (for some components)
Basic understanding of Web3 concepts
Clone the OASIS repository
Navigate to the project root
Run dotnet restore to restore dependencies
Build the solution using dotnet build
The fastest way to get started is through the test harnesses, which provide working examples of all major functionality.
HoloNET is the .NET client for Holochain, enabling you to connect any .NET or Unity application to Holochain's decentralized architecture.
Three Ways to Use HoloNET
1. Direct HoloNETClient Calls
2. HoloNETEntryBaseClass (Recommended)
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:
The OASIS API provides RESTful endpoints for avatar management, data operations, and blockchain interactions.
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
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:
When JWT expires, use refresh token:
Avatar Properties
Avatars contain comprehensive identity information:
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
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:
Usage:
3. STAR Test Harness
Location: STAR ODK/NextGenSoftware.OASIS.STAR.TestHarness/
Features:
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/
Test Configuration
Configure test harnesses in their respective OASIS_DNA.json files:
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:
Celestial Bodies
Can create moons and planets
Basic level celestial body
Can create solar systems, stars, planets, moons
Used for galaxy navigation
GrandSuperStars
Can create galaxies, super stars, stars, planets, moons
GreatGrandSuperStar
Can create multiverses and all celestial bodies
Access to all dimensions (1-12)
1. Initialize STAR
2. Create Celestial Bodies
3. Generate OAPPs
STAR can generate code for multiple platforms:
Web Applications
STAR uses COSMIC (Computer Object-Orientated Super-Synergistic Machine Interface Code) as its ORM:
STAR Test Harness
Test STAR functionality:
Additional Resources
Documentation Links
Email: ourworld@nextgensoftware.co.uk
Development Environment Setup
Postman Collections
Download and import these Postman collections:
Troubleshooting
Provider Connection Issues
Check provider configuration in OASISDNA.json
Verify network connectivity
Check provider-specific logs
Authentication Failures
Verify JWT token expiration
Check refresh token validity
Ensure proper authorization headers
NFT Minting Issues
Verify wallet balance for gas fees
Check contract deployment status
Review transaction parameters
Test Harness Errors
Ensure all dependencies are installed
Check configuration files
Verify provider availability
Always use test harnesses for initial testing
Start with simple operations before complex workflows
Test with multiple providers to ensure compatibility
Use proper error handling in your applications
Keep JWT tokens secure and implement proper refresh logic
Monitor provider performance and implement failover strategies
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! 🚀