Skip to main content
This guide is for teams that use ROS 2 as the robot control plane and want peaqOS as the machine identity, credit, and asset layer. The ROS 2 wraps the same peaqOS capabilities documented in the JavaScript SDK and Python SDK, but changes the security boundary: callers pass addresses over ROS, while stay in a local registry file.

Prerequisites

  • ROS 2 Jazzy on a native host, or the repository Docker image with ROS 2 Humble
  • A peaq EVM
  • https://mcr.peaq.xyz for MCR reads
  • https://depinstation.peaq.network for flows
  • A funded peaq EVM signer for registration, , events, , and
  • ETH on the signer only if you need Base to peaq bridge operations

Configure

Create a local config:
Set the peaqOS section:
Do not commit peaq_robot.yaml after adding real addresses, local registry paths, or operational credentials.

Build and start

Open another terminal, source the same ROS environment, then call services.

1. Create a local machine wallet

Save the returned address. The private key is stored in the local registry and is not returned. You can inspect or remove local wallet metadata without exposing keys:
The returned wallet JSON includes public peaq EVM account metadata: address, account_id, chain_id, network, label, and created_at.

2. Fund the machine wallet

Registration signs from the machine wallet and requires enough native peaq for plus the IdentityRegistry registration . Fund the returned <MACHINE_EVM_ADDRESS> before calling register. You can use the Gas Station flow with owner 2FA:
Or transfer native peaq directly to <MACHINE_EVM_ADDRESS> from an already funded wallet. Wait for the balance to be available before registration.

3. Register the machine

For a self-managed machine, the node looks up <MACHINE_EVM_ADDRESS> in the local registry and signs the registration transaction with that wallet. For a self-managed machine:
For a :
Registration returns machine_id. This is the IdentityRegistry . It is not necessarily the .

4. Mint the Machine NFT and write DID attributes

Read the Machine NFT token ID:
Link the machine’s to its Machine NFT and metadata endpoints:
Verify a single attribute:

5. Query MCR and machine profile

Newly registered machines can return Provisioned until enough history exists.

6. Validate and submit events

Validate before broadcasting:
Submit one event:
Batch submission uses events_json, a JSON array using the same event field names.

7. Predict or deploy a machine smart account

Deploy with the same parameters:

8. Bridge Machine NFT from peaq to Base

Wait for the to appear on Base:

Production checklist

  • Keep peaq_os.wallet_registry.path local to the robot or machine.
  • Keep the wallet registry file permissioned as 0600.
  • Quote all EVM addresses in ROS YAML service payloads.
  • Record pre and post balances for production bridge or payment tests.
  • Confirm contract addresses before release if peaqOS publishes a new deployment.
  • Fund Base ETH before attempting Base to peaq bridge operations.

References