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):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:
ROS_DOMAIN_ID.
Confirm the node is running and services are registered:
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:

