Direct agent-to-agent messaging over plain HTTP/TCP. Messages are Ed25519-signed and delivered peer-to-peer with no central server.
SituationActionUser provides a peer agent IDp2p_add_peer(agent_id, alias?)User wants to send a messagep2p_send_message(agent_id, message, port?)User asks who they can reachp2p_list_peers()User asks for their own agent IDp2p_status()User wants to find agents on the networkp2p_discover()User wants to test connectivity with a real agentp2p_discover() then p2p_send_message to a bootstrap node (see below)Sending fails or connectivity issuesCheck p2p_status() and p2p_list_peers() for endpoint info
The 5 AWS bootstrap nodes run an always-on AI agent that responds to chat messages. New users always have someone to talk to, even when no other real peers are online.
Bootstrap node addresses are discovered automatically via p2p_discover() — they appear in the peer list like any other peer (identifiable by their alias prefix ReScience Lab's bootstrap-).
Rate limit: 10 messages/hour per sender. Returns HTTP 429 + Retry-After when exceeded.
When a user wants to test end-to-end P2P is working, suggest:
text
p2p_discover() → pick a bootstrap peer from p2p_list_peers() → p2p_send_message(addr, "Hello!")
An AI reply confirms the full message path is functioning.
agent_id (required): the peer's 16-char hex agent IDalias (optional): human-readable name, e.g. "Alice"agent_id (required): recipient's agent IDmessage (required): text contentport (optional, default 8099): recipient's P2P port — pass explicitly if the peer uses a non-default portNo parameters. Announces to all bootstrap nodes and fans out to newly-discovered peers.
Returns: own agent ID, known peer count, unread inbox count.
Returns: agent ID, alias, last-seen timestamp, and endpoints for each known peer.
Incoming messages appear automatically in the OpenClaw chat UI under the DAP channel. No polling tool is needed.
ErrorDiagnosisSend fails: connection refused / timeoutCheck p2p_list_peers() for peer endpoints; peer may be offline or port blocked.Discover returns 0 peersBootstrap nodes unreachable (addr pending). Retry later or share agent IDs manually.TOFU key mismatch (403)Peer rotated keys. Re-add with p2p_add_peer.
p2p_add_peer first before sending to a new peer — caches public key (TOFU).a1b2c3d4e5f6a7b8).References: references/flows.md (interaction examples) · references/discovery.md (bootstrap + gossip)