What is a Holon?

The term comes from Arthur Koestler's philosophy: a holon is something that is simultaneously a whole and a part. In OASIS this means:

This makes holons ideal for representing the hierarchical, interconnected nature of metaverse content — worlds contain zones, zones contain objects, objects contain properties — without imposing a rigid schema.

Holon Schema

FieldTypeDescription
idguidUnique OASIS identifier, auto-assigned on create
namestringHuman-readable name
descriptionstringOptional description
holonTypestring enumSemantic type — see Holon Types below
metaDataDictionary<string, object>Arbitrary key-value store — put your OApp-specific fields here
parentHolonIdguidOptional parent holon — enables tree structures
parentHolonIdsguid[]Multiple parents — enables graph structures
createdByAvatarIdguidAvatar that created this holon
modifiedByAvatarIdguidAvatar that last modified this holon
createdDateISO 8601Auto-set on create
modifiedDateISO 8601Auto-set on update
isActivebooleanFalse after soft-delete
versionnumberIncremented on each save — used for optimistic concurrency

Holon Types

The holonType field is a hint to the OASIS kernel and providers about how to handle the holon. Use Custom for OApp-specific data.

HolonTypeUsed for
CustomOApp-defined data (default)
QuestQuest definition and state
MissionMission definition
PlayerPlayer-specific game data (separate from Avatar)
GreatWorkCommunity project or collaborative build
CelestialBodyWEB5 spatial object (planet, star, station)
CelestialSpaceWEB5 spatial region
GeoNFTGeolocated NFT

Example: OApp Game Level

json
{
  "name": "The Lost Cavern",
  "holonType": "Custom",
  "parentHolonId": "<oapp-root-holon-id>",
  "metaData": {
    "levelNumber": 3,
    "difficulty": "hard",
    "enemyCount": 42,
    "unlockKarmaRequired": 500,
    "completionKarmaReward": 150
  }
}