You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Extensions: VE (Viz Events) for mutable state; V (Voice) for social layer
Protocol description: Open protocol for back-linked JSON objects in VIZ blockchain, created for deterministic RPG game actions recorded as on-chain inscriptions.
Account creates a custom protocol operation and writes a JSON object with a back-link to the previous object in history. Each inscription references the previous block containing a VM operation from the same account, forming a backward-linked chain of all game actions. This chain can be traversed using the custom_protocol_api plugin.
Example: Account A performed VM operations in blocks: 1000, 1500, 2000. The blockchain stores that account A's last custom operation is in block 2000. We extract operations from block 2000, find the VM inscription, which references block 1500 as the previous link. Block 1500 in turn references block 1000. This allows full reconstruction of any account's game history.
URL Scheme
Using the VIZ URL scheme:
viz://@account/block-number/*VM/
Provides direct access to a specific game inscription from an account at a given block number.
Object structure
Custom protocol operations contain JSON data. Short attribute names minimize operation size. Version is incremented when backward compatibility is broken. Attributes marked with * are optional.
Attribute short
Attribute long
Description
p
protocol
Protocol identifier. Value: VM
v*
version
Protocol version. Default: 1. Increase if backward compatibility is broken.
b
back-link
Block number of the previous VM operation from this account.
name — location name, zone — zone ID, type — location type
Quests
Action type
Description
Data fields
quest.accept
Accept a quest
quest — quest ID
quest.complete
Complete a quest
quest — quest ID, proof — completion proof data
World bosses
Action type
Description
Data fields
boss.attack
Attack a world boss
boss — boss ID, spell — spell used
Grimoire (Character Data)
Character data is stored in the account's json_metadata under the key vm. This is the public character sheet (Grimoire), readable by any client. It is updated client-side and written to the blockchain via the account_metadata operation.
Deterministic randomness for hunt outcomes, craft quality, loot
Block number
Aetheric Tick
Game time unit (1 tick ≈ 3 seconds)
Delegation
Patron Bond
Lending power to another player
Beneficiaries
Ritual Circles
Splitting rewards among group members
Outcome Determination
All random-seeming outcomes (hunt success, loot drops, crafting quality) are derived deterministically from the block hash of the block containing the action. This ensures:
No server-side randomness is needed.
All clients independently compute the same result.
Results are verifiable by anyone with access to the blockchain.
The formula combines the block hash with action-specific parameters (creature type, spell used, character stats) to produce outcome values.