What you'll learn

  • How WEB5 extends WEB4 — what's new, what's the same
  • Install and configure @oasisomniverse/web5-api
  • Understand the WEB5 data model: CelestialBodies, Zomes, OAPPs, Missions, Quests
  • Create your first WEB5-enabled OAPP
  • Overview of every WEB5 API module with links to full references

WEB4 vs WEB5 — What Changes?

CapabilityWEB4WEB5
Avatar SSO & Identity✅ (same)
Karma & Reputation✅ (extended)
NFTs & Wallet✅ + GeoNFTs
Data Holons & Files✅ + typed game holons
HyperDrive Storage✅ (same)
Missions & Quests
Celestial Bodies & Spaces
GeoNFTs & AR Hotspots
Inventory & Items
On-chain OAPPs (Zomes)
Competitions
Chat & SocialMessaging only✅ Full social graph

Installation

Install
npm install @oasisomniverse/web5-api @oasisomniverse/web4-api
star.js — initialise WEB5 client
import { OasisWeb4Client } from '@oasisomniverse/web4-api';
import { OasisWeb5Client } from '@oasisomniverse/web5-api';

// WEB5 wraps WEB4 — pass the same base URL
export const oasis4 = new OasisWeb4Client({ baseUrl: 'https://api.web4.oasisomniverse.one' });
export const star   = new OasisWeb5Client({ baseUrl: 'https://api.web4.oasisomniverse.one' });

// Authenticate once via WEB4 — token works for both
const { result } = await oasis4.avatar.authenticate({ email, password });
oasis4.auth.setToken(result.token);
star.auth.setToken(result.token);   // same JWT works across all layers

The WEB5 Data Model

WEB5 introduces typed holons — structured game/metaverse objects that extend the base Holon with domain-specific fields:

TypeDescriptionAPI Ref
CelestialBodyA star, planet, moon or space region — the spatial container for a metaverse worldCelestialBodies-API ↗
CelestialSpaceA named region within or between celestial bodies — galaxies, solar systems, nebulaeCelestialSpaces-API ↗
MissionA structured goal with objectives, rewards and karma triggersMissions-API ↗
QuestA sequence of missions forming a larger narrative arcQuests-API ↗
GeoNFTAn NFT pinned to a real-world GPS coordinate — discoverable via ARGeoNFTs-API ↗
GeoHotSpotA location-based trigger (spawn point, checkpoint, portal) without an NFTGeoHotSpots-API ↗
InventoryItemA collectible item attached to an avatar's cross-game inventoryInventoryItems-API ↗
ZomeA module of on-chain logic — the building block of OAPPsZomes-API ↗
OAPPAn On-chain Application — a composable bundle of Zomes deployed via STAROAPPs-API ↗

Your First WEB5 Call

first-star-call.js
import { star } from './star.js';

// Load all celestial bodies the current avatar has access to
const { result: bodies } = await star.celestialBodies.getAll();
console.log('Celestial bodies:', bodies.length);
bodies.forEach(b => console.log(`  ${b.name}  type=${b.celestialBodyType}  owner=${b.createdByAvatarId}`));

// Get the active avatar's cross-game inventory
const { avatarId } = oasis4.auth.getSession();
const { result: items } = await star.inventory.getItems({ avatarId });
console.log('Inventory items:', items.length);
🌟
WEB5 is how Our World, ODOOM and OQuake are built

The OASIS's flagship apps — Our World AR, ODOOM and OQuake — all use the WEB5 STAR API for missions, cross-game inventory, and GeoNFTs. Reading their case studies is the fastest way to see WEB5 in production.