Creator Hub

Build your experience inside Bitverse and beyond. Place 3D content, customise avatars, list on JUNGL, host events, and ship sandboxed plugins as Bitcoin ordinals.

Quickstart

1. Connect your wallet

Land in any Bitverse world and click the wallet pill in the top-right. Sign the nonce. Your role is decided by what's in your wallet.

2. Press B for Build mode

Three tabs: miners cc0 my ordinals. Click a chip โ†’ cursor preview โ†’ click world to drop.

3. Press F at the wardrobe

Walk to the wardrobe NPC near the marketplace. 300 free CC0 VRM avatars. Click EQUIP. Your choice persists across reloads.

4. Press M for the bitmap map

Star map of every inscribed bitmap district. Click into any tile to teleport.

๐Ÿ“œ Read the v1 interop spec โ€” the JSON schema for cross-platform asset metadata.

Asset pipeline

Bitverse supports five placeable kinds (with a sixth on the way). Auto-detected from the inscription's content-type.

๐ŸŽฎ model

model/gltf-binary, model/gltf+json. Loads via Three.js GLTFLoader from ordinals.com/content/<id>.

๐Ÿ–ผ image

image/png, image/jpeg, image/webp. Renders as a double-sided gold-framed plane, aspect-correct.

๐ŸŒ html

text/html. Renders as a preview pane that opens in a new tab on click. CSS3D embed in next slice.

๐Ÿ”Š audio

audio/mpeg, audio/wav, etc. Speaker icon with spatial falloff: full at 2m, silent at 10m.

๐ŸŽฏ brc-420

Auto-resolves {p:"brc-420",op:"mint",id:โ€ฆ} text inscriptions to their source asset and renders that.

๐Ÿ•น kenobi-game

HTML inscriptions with Nostr+WebRTC fingerprints. Treated as multiplayer arcade cabinets per the KENOBI spec.

Add a CC0 catalog item

Free assets live in src/web3/catalogs/cc0Manifest.ts. Reach out to the Bitverse team to add a new entry pointing at any Arweave / IPFS / public-CDN URL:

{
  slug: "yourname/your-prop",
  kind: "decor",                    // or "avatar"
  name: "Your Prop",
  url: "https://arweave.net/...",
  thumbnailUrl: "https://...",
  license: "CC0-1.0",
  source: "Yourname/repo",
  scale: 1,
}

Build a plugin

Plugins ship as iframe-sandboxed JS modules (or as inscribed HTML). Import the typed SDK:

import { getSDK, type ClickEvent } from "@bitverse/sdk";

const lh = getSDK();

// Spawn a glowing cube at the parcel centre.
const cubeId = lh.scene.spawn({
  kind: "cube",
  pos: { x: 8, y: 1, z: 8 },
  color: 0xffd84d,
});

// Reward the player who clicks it.
lh.on({
  type: "click",
  objectId: cubeId,
  handler: (e: ClickEvent) => {
    if (e.player.address) {
      lh.economy.award(e.player.address, 100);   // in-game coin
    }
  },
});

Full hook list: onPlayerNear, onClick, onTime, onPlace, onTrade, onStreamStart, onEventLive.

Host a multiplayer game (KENOBI)

Use the Nostr + WebRTC helpers from the SDK so your game runs inside Bitverse AND as a standalone Bitcoin inscription on Ord Dropz Game Hub.

const room = await lh.multiplayer.room({ name: "tic-tac-toe", maxPlayers: 8 });
room.onMessage(payload => { /* update board */ });
room.send({ move: "x", cell: 4 });

Bring your own AI key

Plugins call AI through the SDK; the runtime routes to whatever provider key the visitor configured locally. Keys are AES-GCM encrypted at rest in IndexedDB, unlocked once per session by signing a fixed nonce with the visitor's wallet โ€” they never leave the browser. Plugins never see the raw key.

Click the ๐Ÿ”‘ AI Keys launcher in the bottom-right of the world to open the Settings modal. Supported providers:

Anthropic

Claude chat. Best for long NPC dialog and tool-use.

OpenAI

Chat + image-gen + TTS + Whisper STT all on one key.

OpenRouter

Single key, dozens of chat models โ€” flexible default.

Groq

Free Llama + Whisper. Fast, generous tier โ€” great fallback.

Stability

Text-to-image + tileable PBR textures.

Replicate

Hosted image / texture models (Flux, SDXL).

ElevenLabs

Premium TTS voices for NPCs and event audio.

const reply = await lh.ai.chat("greet the visitor", {
  system: "You are a friendly NPC in a Bitcoin metaverse.",
});

const portrait = await lh.ai.imagen("pixel-art mushroom guardian, gold accents");
const audio    = await lh.ai.tts("welcome, traveller", "alloy");

If the visitor hasn't configured a provider for the requested feature (e.g. tts), the call returns a graceful { url: "" } โ€” your plugin should handle that.

Inscribe affordably

Don't pay $20 to inscribe a 3D model. Use a tiny ~50-byte JSON inscription that references an Arweave URL or another on-chain ord โ€” typically ~10ร— cheaper than inscribing the full asset directly.

List on JUNGL marketplace

Once your asset is inscribed, list it via JUNGL's existing marketplace UI. Bitverse mirrors all listings as for-sale 3D pedestals at the Marketplace Plaza next to your spawn โ€” visitors click โ†’ buy with sats, you get paid on-chain.