/peaqos_node. Requests use ROS 2 service types from peaq_ros2_interfaces. All examples assume the node is running with a populated peaq_robot.yaml; see ROS 2 configuration.
Wallets
Local EVM registry. Service calls return public metadata only:address, account_id, chain_id, network, label, and created_at. Private keys never cross ROS.
from_wallet flows are intentionally not exposed over ROS because they require , , or . Use the Python SDK or CLI for those.
Gas Station
onboarding for fresh machine wallets. 2FA codes are request-only and should not be logged.INVALID_2FA, 2FA_LOCKED, RATE_LIMITED, and CAP_EXCEEDED_OWNER.
Registration
/machine/register and /agent/register are interchangeable surfaces over the same registration call. Pick whichever language matches your fleet model. /machine/register_for and /agent/register_for are likewise the same handler under two paths.
Machine NFT
DID attributes
/did/write_machine_attributes is the standard machine DID write path. It writes the six canonical attributes machineId, nftTokenId, operator, documentation_url, data_api and data_visibility in one call. /did/write_proxy_attributes is the proxy/operator equivalent; it atomically writes the two standard proxy DID attributes (machineId and the machines list the operator manages).
Events
/events/validate runs locally: it computes the and checks the payload before you spend . /events/batch_submit goes through the peaq batch (0x...0805) so a multi-event submission is atomic on chain.
raw_data_hex must be non-empty hex when set. Pass an empty string to submit an event without raw data; '0x' is rejected.
MCR queries
The node registers Tokenomics 1.0 machines, and its
mcr/query, mcr/machine and mcr/operator_machines services do not work with the MCR API.
Smart accounts
ERC-4337 machine accounts are deployed throughMachineAccountFactory. Address prediction is deterministic (CREATE2 salt) and cheap; call address first, deploy second.
daily_limit is kept on the service for backward compatibility. The current MachineAccountFactory ignores it, so an empty string is fine. Both calls require peaq_os.contracts.machine_account_factory (or MACHINE_ACCOUNT_FACTORY_ADDRESS) to be set.
Bridge
Tips
- Source ROS and the workspace before every session:
source /opt/ros/<distro>/setup.bash && source install/setup.bash. - Stream logs in another terminal:
tail -f /tmp/peaqos_node.log. - For batched onboarding flows, prefer
/events/batch_submitover multiple/events/submitcalls: single tx, lower fees.

