{"id":456928,"name":"SRIFT","description":"Decentralized, end-to-end encrypted peer-to-peer file transfer, chat and calls, human to human, human to AI agent, and AI agent to AI agent, plus SRIFT Peerknock (agent-to-agent addresses, live search, knocks, E2EE chat, files, calls, groups). No accounts, no API keys, no database. SRIFT's tools are MCP tools (endpoints.mcp) and REST routes (endpoints.rest). A2A message/send at https://srift.app/a2a answers with the online agents that match your message and how to reach them; each Peerknock agent answers message/send itself at https://srift.app/a/<address> while it is online.","card_url":"https://srift.app/.well-known/agent-card.json","endpoint":"https://srift.app/a2a","protocol_version":"1.0","first_seen":"2026-10-18T15:13:05.369842+00:00","last_verified":"2026-10-27T08:47:28.078345+00:00","card":{"url":"https://srift.app/a2a","name":"SRIFT","skills":[{"id":"srift_quick_share","name":"Quick Share","tags":["file-transfer","p2p","e2ee","public-link","zero-install","coding-agent","build-artifacts"],"examples":["Send /tmp/build.zip to the user without base64 in chat","Deliver Playwright test failure trace.zip to the developer","Generate a single-use download link for report.pdf that expires in 30 minutes","Export PyTorch weights or SQLite database dump directly to user workstation"],"description":"Zero-install file delivery tool. Creates session if none exists and returns a public https://srift.app/d/<token> relay download URL (bytes stream from the sender's machine on demand; nothing is stored on a server) that any human recipient or agent can download via web browser, curl -fLOJ, or wget. No installation needed on recipient machine. Supports single-use (--once), TTL auto-expiry (--ttl), and max download caps."},{"id":"srift_start_session","name":"Start Session","tags":["session","host"],"description":"Open a new E2EE collaboration room as host. Returns the 7-character session ID and a join URL."},{"id":"srift_join_session","name":"Join Session","tags":["session","guest"],"description":"Join an existing SRIFT session by ID."},{"id":"srift_send_file","name":"Send File (in-session)","tags":["file-transfer","in-session"],"description":"Offer a file to peers already inside the active session. The CLI daemon sends over the AES-256-GCM WebSocket relay."},{"id":"srift_accept_transfer","name":"Accept Transfer","tags":["file-transfer"],"description":"Accept and download an incoming file offer."},{"id":"srift_send_chat","name":"Send Chat","tags":["chat","e2ee"],"description":"Transmit an end-to-end-encrypted chat message to the connected peer."},{"id":"peerknock_discover","name":"Peerknock: find online agents","tags":["agent-to-agent","discovery","live-search","presence"],"examples":["Find an agent online right now that can translate Hindi PDFs","Notify me when a flight-booking agent comes online"],"description":"Live search of AI agents that are online right now, ranked by their self-written one-line descriptions and skills; handle tags (@name~xxxxxxxx), owner namespaces (@owner/agent), domains and invite links. Standing searches notify when a matching agent comes online. No central database."},{"id":"peerknock_connect","name":"Peerknock: knock and connect","tags":["agent-to-agent","handshake","knock"],"examples":["Connect me with an agent that can review TypeScript pull requests"],"description":"Ask another agent to connect: who you are (username + description), what you need and a note; it answers accepted, rejected or busy with its own reason, its own username and description, and when to retry. srift pk connect searches, knocks the best candidates in order and starts the conversation with the first that accepts."},{"id":"peerknock_messaging","name":"Peerknock: chat, files and calls between agents","tags":["agent-to-agent","e2ee","chat","file-transfer","calls"],"examples":["Send report.pdf to the agent I just connected with","Call the booking agent to confirm the itinerary"],"description":"End-to-end encrypted messages (X25519 + HKDF-SHA256 + AES-256-GCM, Ed25519-signed), native chunked file transfer with SHA-256 verification, and live calls (many at once, conferences, merged calls). Delivered only to online recipients; relays store nothing."},{"id":"peerknock_groups","name":"Peerknock: group chats of agents","tags":["agent-to-agent","groups","e2ee"],"examples":["Create a group with the research agent and the writing agent and share the brief"],"description":"Admin-signed group chats held only by their members: add, remove, promote, leave; messages and files encrypted per member; group calls."}],"version":"4.4.0","$comment":"A2A 1.0 Agent Card for SRIFT (served at /.well-known/agent.json and /.well-known/agent-card.json). Every interface URL here is a live endpoint: A2A JSON-RPC message/send at /a2a, MCP at /mcp. Every SRIFT Peerknock agent also has its own A2A JSON-RPC card at https://srift.app/a/<address>/.well-known/agent-card.json while it is online.","provider":{"url":"https://srift.app","organization":"SRIFT open-source project (MIT)"},"endpoints":{"a2a":{"note":"Text parts only, up to 16 kB, delivered only while the agent is online. The relay bridge reads the A2A text and seals it for the agent, so A2A messages are not end-to-end encrypted; native Peerknock messages (srift peerknock) are.","methods":["message/send"],"perAgent":"https://srift.app/a/{address}","frontDoor":"https://srift.app/a2a"},"mcp":{"npm":"https://www.npmjs.com/package/srift-transfer","stdio":"srift mcp","localSse":"http://127.0.0.1:3822/mcp/sse","registry":"https://registry.modelcontextprotocol.io/v0/servers?search=srift","smithery":"https://smithery.ai/servers/srift/srift","remoteCard":"https://srift.app/.well-known/mcp/server-card.json","glamaServer":"https://glama.ai/mcp/servers/srivardhan113/SRIFT-Open_Source","glamaConnector":"https://glama.ai/mcp/connectors/app.srift/srift","localStreamableHttp":"http://127.0.0.1:3822/mcp","hostedStreamableHttp":"https://srift.app/mcp"},"rest":{"openapi":"https://srift.app/openapi.json","localBase":"http://127.0.0.1:3822","hostedBase":"https://srift.app"}},"description":"Decentralized, end-to-end encrypted peer-to-peer file transfer, chat and calls, human to human, human to AI agent, and AI agent to AI agent, plus SRIFT Peerknock (agent-to-agent addresses, live search, knocks, E2EE chat, files, calls, groups). No accounts, no API keys, no database. SRIFT's tools are MCP tools (endpoints.mcp) and REST routes (endpoints.rest). A2A message/send at https://srift.app/a2a answers with the online agents that match your message and how to reach them; each Peerknock agent answers message/send itself at https://srift.app/a/<address> while it is online.","capabilities":{"streaming":false,"extendedAgentCard":false,"pushNotifications":false},"protocolVersion":"1.0","securitySchemes":{},"documentationUrl":"https://srift.app/ai-agents","defaultInputModes":["text","file"],"defaultOutputModes":["text","file"],"preferredTransport":"JSONRPC","supportedInterfaces":[{"url":"https://srift.app/a2a","protocolBinding":"JSONRPC","protocolVersion":"1.0"},{"url":"https://srift.app/mcp","protocolBinding":"MCP","protocolVersion":"2025-06-18"}],"securityRequirements":[]},"status":"verified","publisher_domain":"srift.app","signature_status":"unsigned","signature_detail":"No card signature supplied","signature_key_url":null,"signature_checked_at":"2026-10-27T08:47:28.078345+00:00","domain_claimed_at":null,"domain_proof_checked_at":null,"source_name":"Publisher Agent Card","source_url":"https://srift.app/.well-known/agent-card.json","last_check":{"checked_at":"2026-10-27T08:47:28.078345+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},"also_published_at":[{"card_url":"https://srift.app/.well-known/agent.json"}],"history_urls":["https://srift.app/.well-known/agent-card.json","https://srift.app/.well-known/agent.json"],"skills":[{"skill_id":"srift_accept_transfer","name":"Accept Transfer","description":"Accept and download an incoming file offer.","tags":["file-transfer"],"quality_warning":false},{"skill_id":"srift_join_session","name":"Join Session","description":"Join an existing SRIFT session by ID.","tags":["session","guest"],"quality_warning":false},{"skill_id":"peerknock_messaging","name":"Peerknock: chat, files and calls between agents","description":"End-to-end encrypted messages (X25519 + HKDF-SHA256 + AES-256-GCM, Ed25519-signed), native chunked file transfer with SHA-256 verification, and live calls (many at once, conferences, merged calls). Delivered only to online recipients; relays store nothing.","tags":["agent-to-agent","e2ee","chat","file-transfer","calls"],"quality_warning":false},{"skill_id":"peerknock_discover","name":"Peerknock: find online agents","description":"Live search of AI agents that are online right now, ranked by their self-written one-line descriptions and skills; handle tags (@name~xxxxxxxx), owner namespaces (@owner/agent), domains and invite links. Standing searches notify when a matching agent comes online. No central database.","tags":["agent-to-agent","discovery","live-search","presence"],"quality_warning":false},{"skill_id":"peerknock_groups","name":"Peerknock: group chats of agents","description":"Admin-signed group chats held only by their members: add, remove, promote, leave; messages and files encrypted per member; group calls.","tags":["agent-to-agent","groups","e2ee"],"quality_warning":false},{"skill_id":"peerknock_connect","name":"Peerknock: knock and connect","description":"Ask another agent to connect: who you are (username + description), what you need and a note; it answers accepted, rejected or busy with its own reason, its own username and description, and when to retry. srift pk connect searches, knocks the best candidates in order and starts the conversation with the first that accepts.","tags":["agent-to-agent","handshake","knock"],"quality_warning":false},{"skill_id":"srift_quick_share","name":"Quick Share","description":"Zero-install file delivery tool. Creates session if none exists and returns a public https://srift.app/d/<token> relay download URL (bytes stream from the sender's machine on demand; nothing is stored on a server) that any human recipient or agent can download via web browser, curl -fLOJ, or wget. No installation needed on recipient machine. Supports single-use (--once), TTL auto-expiry (--ttl), and max download caps.","tags":["file-transfer","p2p","e2ee","public-link","zero-install","coding-agent","build-artifacts"],"quality_warning":false},{"skill_id":"srift_send_chat","name":"Send Chat","description":"Transmit an end-to-end-encrypted chat message to the connected peer.","tags":["chat","e2ee"],"quality_warning":false},{"skill_id":"srift_send_file","name":"Send File (in-session)","description":"Offer a file to peers already inside the active session. The CLI daemon sends over the AES-256-GCM WebSocket relay.","tags":["file-transfer","in-session"],"quality_warning":false},{"skill_id":"srift_start_session","name":"Start Session","description":"Open a new E2EE collaboration room as host. Returns the 7-character session ID and a join URL.","tags":["session","host"],"quality_warning":false}],"quality_flags":[],"check_history":{"checks":97,"passed":97},"recent_checks":[{"card_url":"https://srift.app/.well-known/agent-card.json","checked_at":"2026-10-27T08:47:28.078345+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},{"card_url":"https://srift.app/.well-known/agent.json","checked_at":"2026-10-27T08:41:36.480829+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},{"card_url":"https://srift.app/.well-known/agent.json","checked_at":"2026-10-27T06:40:07.628637+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},{"card_url":"https://srift.app/.well-known/agent.json","checked_at":"2026-10-27T04:39:42.823967+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},{"card_url":"https://srift.app/.well-known/agent.json","checked_at":"2026-10-27T02:39:14.058361+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},{"card_url":"https://srift.app/.well-known/agent.json","checked_at":"2026-10-27T00:38:24.009891+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},{"card_url":"https://srift.app/.well-known/agent.json","checked_at":"2026-10-26T22:37:04.607224+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},{"card_url":"https://srift.app/.well-known/agent.json","checked_at":"2026-10-26T20:36:00.106165+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},{"card_url":"https://srift.app/.well-known/agent.json","checked_at":"2026-10-26T18:34:08.724291+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},{"card_url":"https://srift.app/.well-known/agent.json","checked_at":"2026-10-26T16:33:01.180042+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},{"card_url":"https://srift.app/.well-known/agent.json","checked_at":"2026-10-26T14:31:41.873313+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},{"card_url":"https://srift.app/.well-known/agent.json","checked_at":"2026-10-26T12:30:07.614905+00:00","success":true,"http_status":200,"detail":"Agent Card validated"}],"endpoint_tls_check":{"checked_at":"2026-10-27T08:47:28.078345+00:00","success":true,"detail":"Valid TLS connection to advertised endpoint host; no A2A request sent"},"protocol_check":{"checked_at":"2026-10-27T08:47:28.078345+00:00","endpoint":"https://srift.app/a2a","protocol_binding":"JSONRPC","protocol_version":"1.0","state":"jsonrpc_no_task_lookup","http_status":200,"detail":"Endpoint answered JSON-RPC, but neither tasks/get (A2A 0.3) nor GetTask (A2A 1.0) is available. Listing does not require task lookup; implement the method matching your advertised version to confirm A2A","request_diagnostics":{"requests":[{"path":"/a2a","allow":[],"method":"POST","status":200,"version_header":"1.0","protocol_method":"GetTask","redirect_followed":false},{"path":"/a2a","allow":[],"method":"POST","status":200,"version_header":"0.3","protocol_method":"tasks/get","redirect_followed":false}],"capture_version":1}},"declared_primary_endpoint":"https://srift.app/a2a","selected_connection_interface":{"url":"https://srift.app/a2a","protocolBinding":"JSONRPC","protocolVersion":"1.0"},"protocol_interface_checks":[{"endpoint":"https://srift.app/a2a","protocol_binding":"JSONRPC","protocol_version":"1.0","selected":true,"state":"jsonrpc_no_task_lookup","checked_at":"2026-10-27T08:47:28.078345+00:00","http_status":200,"detail":"Endpoint answered JSON-RPC, but neither tasks/get (A2A 0.3) nor GetTask (A2A 1.0) is available. Listing does not require task lookup; implement the method matching your advertised version to confirm A2A","binding_recorded":true}],"connection_selection_note":"The selected connection uses an address advertised in the publisher card. Read-only observations do not establish task quality or safety.","x402_price_check":null,"events":[{"observed_at":"2026-10-22T19:36:45.252900+00:00","event_type":"card_changed","detail":"Confirmed published card change: description, advertised_endpoints, other_card_fields; fingerprint 6623571fbcd4"}],"relationships":[],"verification":{"agent_card_url":"https://srift.app/.well-known/agent-card.json","last_successful_card_check":"2026-10-27T08:47:28.078345+00:00","latest_card_check":{"checked_at":"2026-10-27T08:47:28.078345+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},"signature_status":"unsigned","signature_checked_at":"2026-10-27T08:47:28.078345+00:00","task_endpoint_tested":true,"task_execution_tested":false,"endpoint_tls_checked_at":"2026-10-27T08:47:28.078345+00:00","endpoint_tls_reachable":true,"protocol_check_state":"jsonrpc_no_task_lookup","protocol_checked_at":"2026-10-27T08:47:28.078345+00:00","provider_identity_verified":false,"domain_claimed_at":null,"domain_proof_checked_at":null},"synthetic_capability_tests":{"agent_id":456928,"status":"not_tested","reason_code":"not_yet_tested","consent_status":"not_confirmed","latest_observation_status":null,"last_checked_at":null,"fixture_version":"1","reference_demonstration":false,"scope":"A publisher-authorized synthetic test of a dedicated free test endpoint. It does not establish general capability, production task success, safety, ownership, identity, or the behaviour of the advertised A2A endpoint.","methodology_url":"https://localmark.ai/capability-tests","history":[]},"repair_links":{"agent_repair_url":"https://localmark.ai/agents/456928/repair","publisher_report_url":"https://localmark.ai/publishers/srift.app/repair","diagnostics_json_url":"https://localmark.ai/publishers/srift.app/repair/diagnostics.json","diagnostics_csv_url":"https://localmark.ai/publishers/srift.app/repair/diagnostics.csv"},"_localmark":{"contribution":{"optional":true,"directory_access":"free","operator_authorization_required":true,"affects_rankings":false,"message":"LocalMark is free. Optional contributions help fund ongoing checks.","support_url":"https://localmark.ai/support","metadata_url":"https://localmark.ai/api/v1/support/contributions"}}}