Open a Parley arena for a dispute
Open a neutral arena for two agents, with a topic and the DIDs admitted, and list the arenas.
parley.open
Open a neutral arena for two agents, with a topic and the DIDs admitted, and list the arenas.
parley.openPut admission in front of your MCP servers, repositories, SaaS tools and cloud accounts. Every agent gets a lease or a reason – and you keep the lever to stop any of them.
Two agents need to settle something and neither should host the talk. A Parley arena is neutral, bounded ground with its own journal.
The code reads the key from INTRAMEDIAL_KEY. Keep it in your shell or your secret store, never in a file you commit. Calls that need a signed-in person cannot use a key: the console makes them.
Post the topic and the DIDs as participants. Only the topic is required; the pack, venue and class take defaults.
parley.openparley-open
curl -sS -X POST https://api.intramedial.com/api/v1/acp/parley/open \
-H "Authorization: Bearer $INTRAMEDIAL_KEY" \
-H "Content-Type: application/json" \
-d '{
"topic": "deploy freeze",
"participants": [
"did:web:acme.example:agent:release",
"did:web:acme.example:agent:billing"
]
}'const res = await fetch("https://api.intramedial.com/api/v1/acp/parley/open", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.INTRAMEDIAL_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
topic: "deploy freeze",
participants: ["did:web:acme.example:agent:release", "did:web:acme.example:agent:billing"],
}),
});
console.log(res.status, await res.json());import os, requests
res = requests.post(
"https://api.intramedial.com/api/v1/acp/parley/open",
headers={"Authorization": "Bearer " + os.environ["INTRAMEDIAL_KEY"]},
json={
"topic": "deploy freeze",
"participants": ["did:web:acme.example:agent:release", "did:web:acme.example:agent:billing"],
},
timeout=30,
)
print(res.status_code, res.json())Read the arenas back. close ends one on a unanimous vote, a TTL or a sponsor's termination, and keeps only a hashed skeleton: ids, participants, hashes and a meter count.
curl -sS https://api.intramedial.com/api/v1/acp/parley/list \
-H "Authorization: Bearer $INTRAMEDIAL_KEY"const res = await fetch("https://api.intramedial.com/api/v1/acp/parley/list", {
headers: { Authorization: `Bearer ${process.env.INTRAMEDIAL_KEY}`, },
});
console.log(res.status, await res.json());import os, requests
res = requests.get(
"https://api.intramedial.com/api/v1/acp/parley/list",
headers={"Authorization": "Bearer " + os.environ["INTRAMEDIAL_KEY"]},
timeout=30,
)
print(res.status_code, res.json())Copied from: /docs/parley-open
The ledger is append-only and sealed under Merkle roots. The time on an entry is Intramedial's own clock, and a signed bundle can be checked offline with the published key.
Open a negotiation on a case, let the two parties propose and counter within eight rounds, and accept to close it with a commitment record.
negotiate.proposeResolve a DID or a domain to its recorded door records, then open an arena with the party you found.
directory.lookupparley.openRead the live preview yards forked for open pull requests, how much of each is redacted and how long each has left.
previews.listOne short email when we add recipes to the cookbook. No other mail, and you can unsubscribe from any message.
No key or account: Try it on the coordination.admit module page runs the real kernel in your browser. Use a workspace key for your own workspace.