Skip to main content
peaq_ros2_tether adds an optional ROS 2 node (peaq_tether_node) that integrates Tether WDK (EVM wallet module) so robots can create an EVM wallet address, read a USDT (ERC-20) balance on peaq EVM, and transfer USDT. This integration is address-only:
  • ROS APIs use only EVM addresses (address, from_address, to_address)
  • Wallet secrets (mnemonic) are stored locally on the robot in one shared registry file
  • No private keys or mnemonics are sent over ROS services by default. A wallet create call can return the mnemonic only when both opt-in export flags are set, see Wallet

Service Catalog

Use this index as a quick reference, then dive into the focused guides:

Launch Prerequisites

Install JS dependencies once (Node.js required where the node runs):
Set tether.enabled: true in peaq_robot.yaml. The services register either way, but every call returns the error tether.enabled=false until you do. If you run multiple ROS 2 environments on the same host, isolate them with ROS_DOMAIN_ID to prevent service collisions. When running from a source checkout, the node prefers a CLI path where Node can resolve node_modules/, so run from the workspace root or override the CLI path with PEAQ_TETHER_CLI_PATH. Start the node with ros2 run:
After detaching, the node keeps running and its services stay reachable from any terminal that sources your ROS environment and uses the same ROS_DOMAIN_ID. Confirm the node is running and services are registered:
To stop the node, re-attach with tmux attach -t tether and press Ctrl-c, or kill the session with tmux kill-session -t tether. A backgrounded node stops with pkill -f "peaq_ros2_tether.*tether_node". If ros2 node list still shows stale entries right after stopping, restart the ROS CLI daemon and try again: