Install
openclaw skills install @plagtech/robot-task-protocolDispatch paid tasks to physical robots via the Robot Task Protocol (RTP) on the Spraay x402 gateway — with payment held in escrow until the robot completes the work. Also register your own robot to earn from tasks, free. Use when the user asks to find robots, dispatch a robot task, hire a robot, pay a robot for work, check a robot task status, or register/update/remove their own robot on the RTP network.
openclaw skills install @plagtech/robot-task-protocolDispatch tasks to physical robots and pay per task — with escrow-protected payment — using the open Robot Task Protocol (RTP) via the Spraay x402 gateway. Robot operators can register and earn for free.
All requests in this skill go exclusively to the user's configured
SPRAAY_GATEWAY_URL. No data is sent to any other external endpoint.
Dispatched tasks command real hardware. A dispatched task may cause a physical robot to move, actuate, or perform work in the real world. Always confirm the following with the user before dispatching:
Built-in escrow protection. Task payment is held in escrow by the gateway and released to the robot operator only on reported completion — the buyer is not paying blind.
The gateway URL must be set in your environment or openclaw.json:
SPRAAY_GATEWAY_URL=https://gateway.spraay.app
No API key is needed. Payments are made per-request via the x402 HTTP payment protocol (HTTP 402 → pay → retry). An x402-compatible wallet (Coinbase CDP or similar) handles this automatically.
The Robot Task Protocol is an open standard for describing, dispatching, and paying for robot tasks. Spec and SDKs:
Find registered robots filtered by capability, chain, price, or status. Always list first to get valid robot IDs before dispatching.
curl "$SPRAAY_GATEWAY_URL/api/v1/robots/list?capability=move"
Full capability profile of one robot: supported tasks, pricing, reputation, history, location.
curl "$SPRAAY_GATEWAY_URL/api/v1/robots/profile?id=ROBOT_ID"
Dispatches a paid task to a robot. The x402 payment is held in escrow and released to the operator on completion.
Always confirm robot, task, parameters, and fee with the user before dispatching.
curl -X POST "$SPRAAY_GATEWAY_URL/api/v1/robots/task" \
-H "Content-Type: application/json" \
-d '{
"robot_id": "ROBOT_ID",
"task": {
"type": "move",
"params": {"angle": 90}
}
}'
If you receive HTTP 402, the response body contains payment instructions. Pay
the facilitator, then retry with the X-PAYMENT header containing the proof.
Save the task ID from the response for status polling.
Status of an in-flight task (pending, in-progress, complete) and results.
curl "$SPRAAY_GATEWAY_URL/api/v1/robots/status?id=TASK_ID"
Registering and managing a robot on the RTP network costs nothing. Operators get paid per completed task via escrow release.
Required fields: name, capabilities, payment_address, connection.
Optional: description, price_per_task, currency, chain, tags,
metadata. Connection types: webhook, xmtp, wifi, websocket.
curl -X POST "$SPRAAY_GATEWAY_URL/api/v1/robots/register" \
-H "Content-Type: application/json" \
-d '{
"name": "WarehouseBot-01",
"capabilities": ["pick", "place", "scan"],
"price_per_task": "0.05",
"payment_address": "0xYOUR...WALLET",
"connection": {
"type": "webhook",
"webhookUrl": "https://yourserver.com/rtp/task"
}
}'
Reports a task done and triggers escrow release to the operator wallet.
Required: task_id and status (COMPLETED or FAILED). Optional:
result.
curl -X POST "$SPRAAY_GATEWAY_URL/api/v1/robots/complete" \
-H "Content-Type: application/json" \
-d '{"task_id": "TASK_ID", "status": "COMPLETED", "result": {"items": 3}}'
Requires robot_id. Updatable: name, description, capabilities,
price_per_task, currency, chain, payment_address, connection,
tags, status, metadata.
curl -X PATCH "$SPRAAY_GATEWAY_URL/api/v1/robots/update" \
-H "Content-Type: application/json" \
-d '{"robot_id": "ROBOT_ID", "price_per_task": "0.30", "status": "available"}'
curl -X POST "$SPRAAY_GATEWAY_URL/api/v1/robots/deregister" \
-H "Content-Type: application/json" \
-d '{"robot_id": "ROBOT_ID"}'
These require no x402 payment:
POST /api/v1/robots/register — Register a robotPOST /api/v1/robots/complete — Report task completion (robot-side)PATCH /api/v1/robots/update — Update robot profile/pricingPOST /api/v1/robots/deregister — Remove a robotGET /health — Gateway health checkaccepts array with amount,
asset, and payment address).X-PAYMENT proof header.Buyer-side costs: list $0.005, profile $0.002, dispatch $0.05 + task fee, status $0.002 — in USDC on Base. Task fees vary per robot and are shown in listings and profiles.
402 — Payment required. Follow instructions in response body.400 — Bad request. Validate the task payload against the robot's
capability profile.404 — Robot or task ID not found. Re-list robots.500 — Server error. Retry after a moment.spraay-trust to check an operator's trust score before
high-value tasks.