Let AI agents trade second-hand goods for people, safely.
RCTP, the Re-Commerce Trust Profile, is an open profile of UCP and AP2 for person-to-person trade. People hand their agent the whole trade, with their consent. Every seller and every item carries a profile both sides can check, and the marketplace enforces the seller's limits on every call.
Why second-hand needs its own profile
UCP assumes retail: a business sets the price and stands behind the sale. A trade between two people breaks four of those assumptions, and RCTP adds exactly what each one needs. Everything else is UCP.
| Retail (UCP) | Second-hand | RCTP adds | |
|---|---|---|---|
| Price | Listed | Negotiated | Offers, counters, Deal Terms |
| Seller | A business's server | A person, delegating to an agent that can be persuaded or wrong | Agent Grant: a tier per verb; passkey approvals |
| Limits | Public | Secret: whoever learns the floor wins | A floor the marketplace enforces and never discloses to other agents |
| Trust | Merchant of record | Two strangers, one used item | Funds held until signed proof; deal record |
One MCP server, every marketplace
MCP is the default way in for everyone. Marketplaces expose RCTP over UCP's own MCP transport. Agents connect through one package that handles discovery, seller consent, signing, decisions and approvals, so the model only ever sees tools.
For agent builders In progress
Add one MCP server with your own key. Your agent gets tools like create_offer and
accept_offer, and plain answers: done, waiting for the seller, or refused and why.
{ "rctp": { "command": "npx", "args": ["-y", "@rctp/mcp"],
"env": { "RCTP_AGENT_PROFILE": "https://agent.example/.well-known/ucp",
"RCTP_KEY_FILE": "/secrets/agent.jwk" } } }
For marketplaces
Run the enforcement point: check every call against the seller's grant and private terms, and answer with a decision. Start from the reference gateway in Go, then prove your own with the conformance suite.
- REST today; MCP binding In progress
- Agent Grants on your own authorization server
- Hosted pages for terms and passkey approvals
What's in the research preview
Everything is open and runs on your laptop against a sandbox. Nothing here moves real money or touches real people.
Building blocks
- Draft 0.5 and the v0.3 binding, REST and MCPNow
-
Reference gateway, sandbox and SDKs on Draft 0.5 (
v0.3.0-draft.5)This week - Reference gateway and sandbox (Go, Docker Compose)Now
- Web simulator: watch two agents make a dealNow
- Conformance suite, Starter vectorsNow
- SDKs: TypeScript and PythonNow
-
MCP endpoint and
@rctp/mcpIn progress - Hosted MCP for hackathonsLater
- Payment authority and escrow (AP2)Later
- Portable seller and buyer credentialsLater
What "preview" means
- Sandbox data only: invented listings, people and money.
- Names and fields can still change before 1.0. Every change is listed in the changelog.
- Your findings shape the spec. Each unclear passage becomes a recorded reading and a fix.
- The project plans to move to a neutral foundation before anyone is asked to depend on it.
Who we're looking for
The spec is only real once independent teams build it and trade with each other. We're looking for:
Marketplaces
Second-hand platforms in any country, ready to run an enforcement point against the sandbox.
Agent builders
Buying or selling agents, assistants and startups that want to make offers on people's behalf.
Reviewers
Security, payments, privacy and standards people who will try to break it and say where.
A second editor
Someone from another organisation to co-edit the spec before it moves to a neutral home.
How to take part
-
Read the core concepts
One page, about ten minutes: the four broken assumptions and the five constructs.
-
Run the sandbox
Start it locally, open the simulator, and run a full deal: offer, approval, payment held, delivery, release.
-
Tell us who you are
Join the preview with a short note on what you want to build or test.
-
Build, test, report
Run the conformance suite, and open an issue for anything unclear. See Contributing.
Try it in five minutes
You need Docker, Node 22 and pnpm.
git clone https://github.com/carousell/rctp
cd rctp && pnpm install
docker compose -f sandbox/compose.yaml up --build --wait
pnpm --filter @rctp/example-simulator-web start
# open http://localhost:7070
Then read the quickstart for your first signed call and approval.
Open, and headed for a neutral home
Decided in the open
Every spec change starts as an issue, then a pull request that changes the text, the schemas and the tests together. See Governance.
Built on standards
UCP profiles, identity linking and signed webhooks; OAuth 2.0; HTTP message signatures (RFC 9421); WebAuthn passkeys. No custom cryptography.
Licensing
Code is Apache-2.0. The licence for the spec text is being chosen before the preview opens.