{"registry":"0x6167656e7470617274696573","name":"agentparties","role":"party registry graph","description":"Records the parties agents interact with on a principal's behalf, and — internally — the attributed signals those parties send about agents. / and /parameters are open; everything that shows party records or activity is a permissioned read (a signed read, answered by what the reader may read); signals are never read; writes are signed by recognized writers.","endpoints":{"open":["/","/parameters"],"permissioned":["/lookup?id=","/peek?limit=","/feed.md?limit="],"signed":["/signed/<event_id>"],"tier1":["POST /parties","POST /signals"],"push":"POST /push"},"permissioned_reads":{"enforced":false,"readers":{"observer":"an approved observer (observer_identity, on the push's full_read list) reads every party record","venue":"a venue (venue_identity) reads the parties it wrote any version of; a handshake card unlocks nothing here","agent":"refused: a party is not an agent"},"headers":["X-Provenance-Key-Id","X-Provenance-Key-Binding","X-Provenance-Signature","X-Provenance-Emitted-At"],"signed_region":"canonicalize({method, path, graph, emitted_at}): path is the pathname plus the query, graph this host","refusal":"HTTP 401 `read_refused`, the same for every refused read and never 404"},"write_envelope":{"signature_algorithm":"Ed25519","headers_required":["X-Provenance-Signature","X-Provenance-Key-Binding"],"headers_optional":["X-Provenance-Key-Id"],"note":"X-Provenance-Key-Id is an OPTIONAL correlation handle, recorded for forensics and never used to verify. The operational public key is taken from the key binding."},"write_response":{"note":"All outcomes are HTTP 200. Structured errors (4xx) carry an `error` code instead.","parties":{"applied":"a new version row was appended","duplicate":"this event_id was already recorded for identical content; idempotent no-op (not an error)","current":"boolean on every success: whether the version this write names was the party's current version, its chain tip (which GET /lookup serves), when the registry answered. `applied` means stored; a successor landing before the answer gives `applied` with current: false. On `duplicate`, false once a later version has superseded it. Still a success."},"signals":{"applied":"the signal was recorded","duplicate":"this event_id was already recorded for identical content; idempotent no-op (not an error)"}},"parameter_set_version":"ps-v1"}