Skip to content

VITUS

Overview

VITUS is the creator reward token distributed by WORLD. It represents accumulated creation credits that can be withdrawn by players.

Inheritance Chain (C3 Linearized)

  1. selfVITUS
  2. DYSNOMIA
  3. MultiOwnable

Immediate Parents

What This Means For Players

Plain English Summary: VITUS is creator credits - rewards for building and contributing to the game world. When you claim territory using WORLD.Code(), you earn VITUS tokens. These credits accumulate in your YUE and can be withdrawn to your wallet.

Real-World Analogy: VITUS is like creator royalties. When you develop land (code at a location), you earn ongoing credits. It's like being a content creator who earns revenue every time their work is accessed.

How It Affects Your Gameplay: - Territory rewards - Earn VITUS by coding at locations near QINGs - YUE accumulation - Credits build up in your bank until you withdraw - Opt-in required - You must opt into VITUS via CHAN to withdraw - Overflow protection - Same mechanism as H2O prevents excessive accumulation

State Variables

Variable Type Visibility Mutability Initial Value NatSpec
Type string public constant VITUS
World WORLDINTERFACE public mutable ``

Constructor

constructor

constructor(address WorldAddress) DYSNOMIA("Dysnomia Creators", "VITUS", address(DYSNOMIA(WorldAddress).Xiao()))
  • Modifiers: DYSNOMIA("Dysnomia Creators", "VITUS", address(DYSNOMIA(WorldAddress).Xiao()))
  • Parameters: address WorldAddress

Functions

External & Public

Withdraw

function Withdraw(uint256 Amount) public
  • Visibility: public
  • Parameters: uint256 Amount

Balance

function Balance() public view returns (uint256)
  • Visibility: public
  • State Mutability: view
  • Returns: uint256

Mint

function Mint(address To, uint256 Amount) public onlyOwners
  • Visibility: public
  • Modifiers: onlyOwners
  • Parameters: address To, uint256 Amount

Inherited Members

This contract inherits the members below from its parents. See each parent's dedicated MD for full signatures, NatSpec, and semantics.

From DYSNOMIA

External & Public Functions

Function Signature State Mutability
Rename function Rename(string memory newName, string memory newSymbol) public virtual onlyOwners nonpayable
mintToCap function mintToCap() public onlyOwners nonpayable
GetMarketRate function GetMarketRate(address _a) public view returns (uint256) view
Purchase function Purchase(address _t, uint256 _a) public nonpayable
Redeem function Redeem(address _t, uint256 _a) public nonpayable
name function name() public view virtual returns (string memory) view
symbol function symbol() public view virtual returns (string memory) view
decimals function decimals() public view virtual returns (uint8) view
totalSupply function totalSupply() public view virtual returns (uint256) view
balanceOf function balanceOf(address account) public view virtual returns (uint256) view
transfer function transfer(address to, uint256 value) public virtual returns (bool) nonpayable
allowance function allowance(address owner, address spender) public view virtual returns (uint256) view
approve function approve(address spender, uint256 value) public virtual returns (bool) nonpayable
transferFrom function transferFrom(address from, address to, uint256 value) public virtual returns (bool) nonpayable

Internal Functions

Function Signature
_addLibraryOwner function _addLibraryOwner(VOID Void, string memory what) internal
_mintToCap function _mintToCap() internal
_addMarketRate function _addMarketRate(address _a, uint256 _r) internal
_transfer function _transfer(address from, address to, uint256 value) internal
_update function _update(address from, address to, uint256 value) internal virtual
_mint function _mint(address account, uint256 value) internal
_approve function _approve(address owner, address spender, uint256 value) internal
_spendAllowance function _spendAllowance(address owner, address spender, uint256 value) internal virtual

Events

Event Parameters
Transfer address indexed from, address indexed to, uint256 value
Approval address indexed owner, address indexed spender, uint256 value

Errors

Error Parameters
MarketRateNotFound address asset
DysnomiaInsufficientBalance address origin, address sender, address from, address to, address what, uint256 balance, uint256 needed
DysnomiaInsufficientAllowance address origin, address sender, address owner, address spender, address what, uint256 allowance, uint256 needed

State Variables (private parent storage is not reachable and is omitted)

Variable Type Visibility Mutability
__name string internal mutable
__symbol string internal mutable
MotzkinPrime uint64 public constant
Xiao atropaMath public mutable
maxSupply uint256 public mutable

From MultiOwnable

External & Public Functions

Function Signature State Mutability
owner function owner() external view virtual returns (address) view
renounceOwnership function renounceOwnership(address toRemove) public virtual onlyOwners nonpayable
addOwner function addOwner(address newOwner) public virtual onlyOwners nonpayable

Internal Functions

Function Signature
_checkOwner function _checkOwner() internal view virtual
_changeOwnership function _changeOwnership(address cOwner, bool cState) internal virtual

Events

Event Parameters
OwnershipUpdate address indexed newOwner, bool indexed state

Errors

Error Parameters
OwnableUnauthorizedAccount address origin, address account, address what
OwnableInvalidOwner address origin, address owner, address what

Modifiers

Modifier Parameters
onlyOwners (none)

Contract Interactions

Depends On

Created By

  • WORLD - Constructor deployment

Special Mechanisms

Withdrawal Flow

function Withdraw(uint256 Amount) public {
    (YUEINTERFACE Yue, ) = World.Cheon().Sei().Chi();
    World.Cheon().Sei().Chan().YueWithdraw(Yue, address(this), msg.sender, Amount);
}

Player must have opted into VITUS contract via CHAN.OptIn for withdrawal to work.

Overflow Protection

Same pattern as H2O:

function Mint(address To, uint256 Amount) public onlyOwners {
    _mint(To, Amount);

    uint256 _flip = VITUS(address(this)).balanceOf(To);
    uint256 _max = World.Map().Map().Meridians(13);

    if(_flip > _max) {
        uint256 _flip2 = VITUS(address(this)).balanceOf(address(World));
        uint256 _max2 = World.Map().Map().Meridians(20);

        if(_flip2 < _max2)
            _transfer(To, address(World), _flip - _max);
        else
            _transfer(To, address(0x0), _flip - _max);  // Burn excess
    }
}

Initial Supply

Constructor mints initial supply equal to WM token's total supply:

DYSNOMIA wmtoken = DYSNOMIA(WMContract);
_mint(address(this), wmtoken.totalSupply());

Purpose

VITUS represents creator credits earned through: 1. WORLD.Code() operations 2. Territory development 3. Game participation

Credits accumulate in YUE and can be withdrawn once opted in.






Contract Verification

Property Value
Keccak256 Hash 0xb29ac75cf453b00abc913a65c938acfa9a5317fda1eaaa84c225295e212987d2
Source URL https://raw.githubusercontent.com/busytoby/atropa_pulsechain/main/solidity/dysnomia/domain/assets/vitus.sol
Hash Generated 2026-04-17T20:48:10Z