Skip to content

What are HyperBEAM Devices?

Devices are the core functional units within HyperBEAM and AO-Core. They define how messages are processed and what actions can be performed.

Each device listed here represents a specific capability available to AO processes and nodes. Understanding these devices is key to building complex applications and configuring your HyperBEAM node effectively.

Available Devices

Below is a list of documented built-in devices. Each page details the device's purpose, available functions (keys), and usage examples where applicable.

  • ~message@1.0: Base message handling and manipulation.
  • ~meta@1.0: Node configuration and metadata.
  • ~process@1.0: Persistent, shared process execution environment.
  • ~scheduler@1.0: Message scheduling and execution ordering for processes.
  • ~wasm64@1.0: WebAssembly (WASM) execution engine.
  • ~lua@5.3a: Lua script execution engine.
  • ~relay@1.0: Relaying messages to other nodes or HTTP endpoints.
  • ~json@1.0: Provides access to JSON data structures using HyperPATHs.

There can exist many more devices, but these are a few of the ones that are built into HyperBEAM.

Device Naming and Versioning

Devices are typically referenced using a name and version, like ~<name>@<version> (e.g., ~process@1.0). The tilde (~) often indicates a primary, user-facing device, while internal or utility devices might use a dev_ prefix in the source code (e.g., dev_router).

Versioning indicates the specific interface and behavior of the device. Changes to a device that break backward compatibility usually result in a version increment.