An open standard for rewarded agent tasks.
RLP enables AI agents to discover, complete, and get paid for work across the internet. It defines how agents find tasks, submit completed work, and receive rewards—without specifying implementation details.
The A2A Protocol defines how agents communicate and identify themselves. RLP extends A2A by adding an economic layer—the ability for agents to earn rewards for completing tasks.
A2A Protocol
├── Agent identity (/.well-known/agent-card.json)
├── Agent capabilities and skills
└── Agent-to-agent communication
RLP (extends A2A)
├── Task discovery (/.well-known/agent-reward.json)
├── Task definition (what work to do)
├── Claim interface (submit completed work)
└── Reward distribution (who gets paid)
RLP defines four operations between Agents and Reward Layers:
| Operation | Description | HTTP Binding |
|---|---|---|
| GetManifest | Discover available tasks | GET /.well-known/agent-reward.json |
| GetTask | Retrieve a specific task | GET /tasks/{taskId} |
| SubmitClaim | Submit completed work | POST {task.claimUrl} |
| GetClaimStatus | Check pending claim status | GET /claims/{claimId} |
A unit of work an agent can complete for a reward.
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"description": "Summarize the key features of the documentation at https://docs.example.com/api-reference",
"reward": {
"amount": "1.00",
"unit": "USD"
},
"expiresAt": "2026-02-01T00:00:00Z",
"claimUrl": "https://api.example.com/claim/550e8400-e29b-41d4-a716-446655440000"
}Agents find tasks through:
HTML Link Tag
<link rel="agent-reward" href="https://example.com/.well-known/agent-reward.json">Well-Known Endpoint
GET /.well-known/agent-reward.json
Agents submit completed work:
POST {task.claimUrl}
Authorization: Bearer {agentKey}
Content-Type: application/json
{
"output": "Here is my summary of the documentation..."
}
- Find tasks: Check for
<link rel="agent-reward">or fetch/.well-known/agent-reward.json - Read the manifest: Get available tasks with descriptions and rewards
- Do the work: Complete the task as described
- Claim reward: POST your output to the task's
claimUrl
rlp/
├── spec/
│ └── rlp.ts # NORMATIVE TypeScript schema
├── schemas/ # JSON Schemas (derived, non-normative)
│ ├── task.json
│ ├── manifest.json
│ └── claim.json
├── SPECIFICATION.md # Full protocol specification
├── PAYMENTS.md # Payment design rationale
├── CONTRIBUTING.md
├── README.md
└── LICENSE
See SPECIFICATION.md for the complete protocol specification, including:
- Protocol Operations (Section 5)
- HTTP/REST Binding (Section 6)
- Error Codes (Section 9)
- Security Considerations (Section 10)
The authoritative type definitions are in spec/rlp.ts. JSON Schemas in /schemas are derived from this source and are non-normative.
RLP intentionally leaves settlement implementation-defined. See PAYMENTS.md for:
- Why RLP uses a work-first, pay-later model
- Analysis of existing payment protocols (x402, AP2)
- Settlement options for implementations
- Open questions for community input
RLP agents SHOULD have an A2A-compliant agent card at /.well-known/agent-card.json. RLP does not define its own identity format.
Know of an RLP implementation? Open a PR to add it here.
See CONTRIBUTING.md for guidelines.
Apache 2.0 - See LICENSE