Nova is Sigil’s native metaverse primitive set. The chain stores parcel ownership, world records, presence commitments, and cross-zone trade settlement. Rendering, simulation, and high-frequency interaction stay off-chain; Sigil records only the consensus-critical state.

Model

ObjectDescription
ParcelA bounded coordinate region within a world. Owned by a DID; transferable.
WorldA named, governed collection of parcels with shared rules.
PresenceA signed commitment that a DID is “present” in a parcel at a given height.
World recordA typed record under a world’s namespace (event, achievement, score, etc.).

Parcels

Parcels are non-fungible tokens with explicit coordinate metadata. Each parcel record holds:
  • World id.
  • Coordinate region (axis-aligned box with integer corners).
  • Owner DID.
  • Optional Weave CID for the parcel’s content.
  • Trade history.
Parcel coordinates are scoped per world; two worlds may have overlapping coordinate spaces.

Worlds

A world is a governed namespace. The world record holds:
  • World name.
  • Owner DID (often an MHR).
  • Genesis parcel partition.
  • World-level governance policy.
  • Allowed parcel sizes.
World owners set rules through SetWorldRecord transactions. Records can encode things like seasonal events, leaderboards, world-wide bans, or content moderation decisions.

Presence

A presence commitment is a signed record proving a DID was in a parcel at a specific height. Presence is voluntary; users opt in for rewards, attendance proofs, or social features.
pub struct PresenceCommitment {
    pub did: Did,
    pub parcel_id: [u8; 32],
    pub committed_at_height: u64,
    pub duration_blocks: u64,
    pub signature: Signature,
}
The chain stores the commitment; the off-chain client maintains the actual world state. The commitment is sufficient for time-bounded rewards, raffle participation, and verified attendance.

Transactions

VariantPurpose
RegisterWorldCreate a world.
RegisterParcelRegister a parcel in a world.
TransferParcelMove a parcel between DIDs.
BurnParcelDestroy a parcel.
SetWorldRecordSet or update a typed world record.
CommitPresenceCommit a presence record.

Cross-zone trades

Parcels can be traded across organisation zones using CZAC channels (see CZAC channels). The cross-zone capability proof ensures that ownership transfers atomically and that the parcel cannot exist in two zones simultaneously.

RPC

MethodReturns
sigil_getWorldWorld record.
sigil_listWorldsAll worlds.
sigil_getParcelParcel record.
sigil_listParcelsByOwnerParcels owned by a DID.
sigil_listParcelsByWorldParcels in a world.
sigil_getPresencePresence commitment.
sigil_listPresenceByParcelPresence commitments for a parcel.
sigil_getWorldRecordWorld record by id.

Implementation

  • Types: node/sigil-core/src/nova.rs.
  • Executor: node/sigil-node/src/executor_nova.rs.
  • Durable state: node/sigil-node/src/nova_durable.rs.

See also