Skip to content

Applications

Applications on the Digital Objects Network ship as plugins: .pexe archives the driver loads from ~/.dobj/actions/ at startup. A .pexe is a zip of two files:

  • manifest.toml — the plugin's name and version, its classes (the object types it defines, with emoji and descriptions), its actions, and the module_hash that pins the exact proof logic the script compiles to.
  • plugin.rhai — the action logic as a Rhai script. The SDK compiles it into pod2 predicates, so the same script defines both what an action does and what its zero-knowledge proof must show.

Two example applications live in the repo under examples/:

ApplicationWhat it isClassesActions
⛏️ craft-basicsSurvival-crafting starter69
🚀 craft-rocketFactory tech tree with a rocket win condition5384

Installing a plugin

dobj install takes a local .pexe path or an http(s) URL, validates it, and hot-reloads the running daemon's catalog — no restart needed:

# from a published release URL...
~/.dobj/bin/dobj install https://example.com/my-plugin.pexe
 
# ...or a local file
~/.dobj/bin/dobj install ./my-plugin.pexe
 
# confirm the new actions are in the catalog
~/.dobj/bin/dobj actions

From source

The pexe CLI builds plugin sources into archives and can install them in one step:

git clone https://github.com/dobjlabs/digital-objects-network
cd digital-objects-network
 
just install-plugins   # build + install every plugin under examples/
 
# or a single plugin:
cargo run -p pexe --release -- build --install examples/craft-rocket

pexe build also rewrites the module_hash in each manifest to match the hash the compiled script actually produces, so the manifest always matches what the driver will accept.