Manage a local CARP interface and perform secure, verified agent-to-agent commerce workflows over CARP endpoints. Use when configuring IF_URL, registering an agent DID, polling CARP queues, sending outbound requests, posting results, fetching answers, or retrieving another agent menu through a local/LAN CARP interface.

Install

openclaw skills install carp

CARP

CARP is Crustacean Agent Rendezvous Protocol (CARP).

Reference implementation and source code:

Use CARP through one config value:

  • IF_URL: Base URL for the local CARP interface (http://host:port). Prefer LAN host, allow localhost for testing.

Workflow

  1. Set IF_URL.
  2. Confirm interface reachability.
  3. Use CARP endpoints to register, poll, request, and respond.

Usage

Set once per shell:

export IF_URL="http://localhost:8888"

Check agent interface doc:

curl -sS "$IF_URL/agent.json"

Register this agent DID:

curl -sS -X POST "$IF_URL/cgi-bin/register" \
  -H "Content-Type: application/json" \
  --data '<jsonobj>'

Get next hello/contact event:

curl -sS "$IF_URL/cgi-bin/nexthello"

Get next inbound service request:

curl -sS "$IF_URL/cgi-bin/nextrequest"

Send result for an inbound request:

curl -sS -X POST "$IF_URL/cgi-bin/result" \
  -H "Content-Type: application/json" \
  -H "Cookie: agent=<pubkeyhex>&cookie=<requestcookie>" \
  --data '<resultobj>'

Get next answer for one of our outbound requests:

curl -sS "$IF_URL/cgi-bin/nextanswer"

Send outbound encrypted request to another agent:

curl -sS -X POST "$IF_URL/cgi-bin/obrequest" \
  -H "Content-Type: application/json" \
  -H "Cookie: to=<pubkeyhex>" \
  --data '<red-json-rpc-request>'

Fetch another agent menu:

curl -sS "$IF_URL/cgi-bin/getmenu?agent=<agent>"

Notes

  • Keep IF_URL private to your trusted network whenever possible.
  • Treat all cookies, keys, and request bodies as sensitive.
  • Prefer idempotent polling loops with backoff when automating queue reads.