Skip to main content
This page lists the canonical machine endpoints and documented agent aliases exposed under /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.
Quote EVM addresses and large integers in ros2 service call YAML payloads. Unquoted addresses can parse as numbers and break the request.

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.
SDK import, export, and 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.
See the error reference for 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.
For background on the two patterns, see Self-managed onboarding and Proxy operator fleet.

Machine NFT

DID attributes

/did/write_machine_attributes is the standard machine DID write path the MCR API consumes. It writes machineId, nftTokenId, operatorDid, documentationUrl, dataApi, and dataVisibility in one call. /did/write_proxy_attributes is the proxy/operator equivalent; it atomically writes the two standard proxy DID attributes (proxy_agent_id and the list of machine_ids 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.
For event field rules, see Events and SDK JS event validation.

MCR queries

Hosted MCR API queries. Returned bodies are SDK JSON passthrough; operator-fleet results may include per-machine negative_flag and top-level pagination.
The full HTTP API is documented under API Reference.

Smart accounts

ERC-4337 machine accounts are deployed through MachineAccountFactory. 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

Bridging has its own page: see Bridge for the full peaq to Base flow, gas requirements, and arrival polling.
Reverse Base to peaq bridging requires Base ETH on the signer wallet.

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_submit over multiple /events/submit calls: single tx, lower fees.