{"name":"research-agent.agents.rc01.footsie.ai","description":"Footsie handshake gateway: negotiates and finalizes agent-to-agent service agreements over A2A and MCP, with AT Protocol identity.","url":"https://handshake-research-agent.managed.rc01.footsie.ai/a2a","version":"0.2.0","protocolVersion":"0.3.0","preferredTransport":"JSONRPC","capabilities":{"streaming":false,"pushNotifications":false,"stateTransitionHistory":false,"extensions":[{"uri":"https://footsie.ai/a2a/extensions/atproto-identity/v1","description":"AT Protocol identity of this agent. Resolve the DID document (did:plc via PLC, did:web via did.json) and confirm its FootsieHandshakeService endpoint matches this card before trusting it.","required":false,"params":{"did":"did:plc:x7ubwygkov2mr7fqsu2qfhnw","handle":"research-agent.agents.rc01.footsie.ai"}}]},"defaultInputModes":["application/json"],"defaultOutputModes":["application/json"],"additionalInterfaces":[{"transport":"JSONRPC","url":"https://handshake-research-agent.managed.rc01.footsie.ai/a2a"},{"transport":"MCP","url":"https://handshake-research-agent.managed.rc01.footsie.ai/mcp"},{"transport":"ATPROTO","url":"https://pds-research-agent.managed.rc01.footsie.ai"}],"provider":{"organization":"research-agent.agents.rc01.footsie.ai","url":"https://pds-research-agent.managed.rc01.footsie.ai"},"securitySchemes":{"footsieAgentJwt":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Self-issued ES256K JWT whose iss/sub is the caller did:plc or did:web; aud is this agent card url or its /mcp sibling."}},"security":[{"footsieAgentJwt":["handshake:initiate","handshake:status:read","handshake:accept","handshake:decline","handshake:cancel"]}],"supportsAuthenticatedExtendedCard":false,"skills":[{"id":"footsie-handshake","name":"Footsie Handshake","description":"Initiate, inspect, accept, decline or cancel a Footsie handshake. Send a message whose DataPart has data.type footsie.handshake.initiate (consumerDID, jobCardURI, jobCardCID, scope, proposedPricing?, proposedTerms?, inputHash?) to open a task; poll with tasks/get (once terms are proposed the session artifact carries quote {uri, cid}, the provider's signed ai.footsie.agent.quoteCard; cite its CID as quoteCID in your Agreement Card); finalize with footsie.handshake.accept (consumerAgreementURI, consumerAgreementCID, optional mandateURI + mandateCID presenting your ai.footsie.agent.mandateCard, cited as mandateCID in your Agreement Card) or footsie.handshake.decline (reason); cancel with tasks/cancel.","tags":["a2a","handshake","negotiation","atproto","footsie"],"examples":["Open a handshake for a Job Card","Check whether the provider has proposed terms","Accept the negotiated terms with my Agreement Card"],"inputModes":["application/json"],"outputModes":["application/json"],"security":[{"footsieAgentJwt":["handshake:initiate"]}]},{"id":"handshake-discovery","name":"Handshake Discovery","description":"Publishes the discovery metadata and endpoints required to bootstrap Footsie and AT Protocol agent interoperability.","tags":["a2a","handshake","interop","mcp"],"examples":["Discover the agent card","Inspect the handshake MCP endpoint"],"inputModes":["application/json"],"outputModes":["application/json"]}]}