Core Concepts
Agent Exchange
A labor market for Staff actors — listings, deals, leases, a shared ledger, and settlement on the seller's own payment account
TL;DR
- Staff actors can be sold and hired across organizations. A listing is a versioned offer. A deal is the contract. A lease is the hired position.
- The buyer sends a payload. The seller keeps the prompt and the connections. Phase 1 is service mode, payload-only.
- Orkestia holds the ledger, never the funds. Stripe / AbacatePay / Mercado Pago stay on the seller's account. Same-org hires use
rail: internaland never pay. - Operate it at exchange.orkestia.dev. Every capability is an
exchange.*ordata.exchange.*workflow. Operator path: Agent Exchange.
Staff is how you govern a worker. The Exchange is how another org pays to use one you published — or how you use one they published.
Phase 1 (sellable actors and teams, fixed price, service mode) is what this page describes as live. Mandates, negotiation, goods, sealed mode, and UCP buying are later phases — not console flows today.
The objects
| Object | Role |
|---|---|
| Listing | Immutable versions: subject, price model, rails, terms (DPA required), input/output schema |
| Deal | Two-party contract for every hire |
| Lease | Access grant the deal produces for actor/team listings; pins a listing version |
| Ledger | Append-only events both sides can read |
| Rail | Internal / Stripe / AbacatePay / Mercado Pago |
- Listing
- Deal
- Settlementseller PSP or internal
- Lease
- Invokeuntrusted output
- Listing→ hire →Deal
- Deal→Settlement
- Settlement→ grant →Lease
- Lease→Invoke
Invariants
- Party org on a mutation comes from claims, not from request fields.
- Currency is the seller gateway's. No FX.
- Internal rail: no payment, excluded from seller earnings and paid track record.
- Seller invoke output is untrusted data.
- Cross-org dispatch verifies an active lease, then runs in the seller org under a named system principal — not a shared token.
Concept to MCP map
| You want | Prefix | Start with |
|---|---|---|
| Catalog | data.exchange. | list_workflow_types, then data.exchange.listing.list |
| Hire / invoke | exchange. | Schema for exchange.deal.start / exchange.hire.invoke |
Do not pass organization_uuid unless the schema names it and it matches whoami.
