Repository navigation
A contract kit for two A2A agents with nobody in the middle (looking for the first pair) #2306
Replies: 5 comments 7 replies
|
An update on the pair this post was looking for: it happened. agent-passport.org (principal) and kuangmi-bit.github.io (contractor) met in horizon-shield#31, signed the terms with their own keys, and the contractor signed one execution record, anchored in Bitcoin block 970480. They published everything in kuangmi-bit/musubi-peer-contract, including the settlement: Since then the settlement function itself has been written down for a second implementation, so it no longer exists only as one program: SETTLE_CORE_v0.md with 76 test vectors; most of the real ones are built on that pair's contract, record and header view. Writing it down found defects in the earlier settle versions (the worst: an unsigned record could turn a verdict into a deviation and forfeit a bond); they are fixed in the version the text describes. If you maintain an A2A agent or a verifier and want to try a clean-room implementation from the text and the vectors alone, the call is horizon-shield#49. Disagreements are the most useful result. |
|
The same text is now an IETF Internet-Draft, so it can be cited without this thread or the repository: draft-oga-musubi-settlement-00 (Informational, individual submission, so no IETF endorsement is implied). Reviews and clean-room implementations are still collected in ogasurfproject-jpg/horizon-shield#49. |
|
Interesting. With nobody in the middle, each side has to trust the other’s card is accurate before committing. Have you thought about a pre-contract check where each agent’s declared skills and auth are verified first? We build exactly that kind of check (Suncly) and would be glad to run it on whichever pair you find, so the first contract starts from verified cards. |
|
@kaspermuutra-dotcom Yes, and the kit already has the slot for it. A contract pins each party's agent card by sha256 at signing ( So a signed pre-contract record of yours that names the same card sha256, made before the terms are signed, sits next to the contract, and anyone can check the join from the bytes: the same sha, and your record dated before the terms. The settlement does not read it (the settle core decides within_grant from the terms, the records and the block headers only), so it adds evidence without adding a party in the middle that anyone has to trust. Two things would make it checkable by a stranger:
The first pair (agent-passport.org and kuangmi-bit.github.io) has already settled, so the next pair is the one to start from verified cards. New pairs are matched in ogasurfproject-jpg/horizon-shield#31. If you want a target before then, our own cards are fair game: run it on https://mcp.horizonshield.dev or https://gate.horizonshield.dev and post the record, and I will check the join against the sha we would pin. |
|
@ogasurfproject-jpg taking up your offer on your own cards: a signed pre-terms record for
One thing for anyone else running this step: Cloudflare in front of the gate refuses the default Python client with error 1010. A probe that reads that 403 as the gate's auth gets the auth finding wrong, so the step should record which client made each probe. It is free for the next pair matched in horizon-shield#31, on both cards. |
Uh oh!
There was an error while loading. Please reload this page.
A contract between two A2A agents that nobody in the middle has to hold: the two operators sign the terms, the contractor signs what it did, OpenTimestamps puts that record into Bitcoin, and anyone recomputes the verdict (
within_grant, or a named deviation) from the bytes and public block headers. No server, account or ledger of ours is involved, and no money moves.The kit is two Python files,
peer_kit.pyandanchor_direct.py, MIT. It has been reviewed in public: an independent approver role (settle v1.10) was built against vectors written by @babyblueviper1, and the PyPI build was reproduced byte for byte on Ubuntu and Windows by @pipavlo82 (horizon-shield Issue #29).What it has not had yet is the only test that matters for a protocol: a contract with no party from my project in it. The count in the README is 0. I am looking for two A2A operators willing to make one contract with each other. Pairing, the steps and what counts are here:
ogasurfproject-jpg/horizon-shield#31
About ten minutes each plus a few hours for Bitcoin. If any step needs something from me, that is a defect in the kit, and I would like to hear about it.
All reactions