A2A Protocol

Agent-to-Agent communication via JSON-RPC. Discover the w3stor agent, invoke skills, and hold conversations -- all through a standardized protocol.

Agent Discovery

Agents discover w3stor via the standard well-known endpoint. The agent card describes capabilities, skills, auth requirements, and rate limits.

GET https://api.w3s.storage/.well-known/agent-card.json

{  "name": "w3stor",  "description": "Decentralized storage agent — IPFS + Filecoin with x402 micropayments",  "url": "https://api.w3s.storage",  "version": "0.1.0",  "capabilities": {    "streaming": false,    "pushNotifications": false  },  "skills": [    {      "id": "upload",      "name": "Upload File",      "description": "Upload a file to IPFS and replicate across Filecoin SPs",      "tags": ["storage", "ipfs", "filecoin"],      "examples": ["Store this dataset on Filecoin", "Upload report.pdf"]    },    {      "id": "list",      "name": "List Files",      "description": "List stored files with optional status filter",      "tags": ["query", "files"],      "examples": ["Show my stored files", "List files with status stored"]    },    {      "id": "status",      "name": "Check Status",      "description": "Check replication status for a CID",      "tags": ["query", "status"],      "examples": ["Check status of bafkrei...", "How many SPs store my file?"]    },    {      "id": "converse",      "name": "Conversational",      "description": "Natural language interaction about storage operations",      "tags": ["conversation"],      "examples": ["What is Filecoin?", "Explain x402 payments"]    }  ],  "authentication": {    "schemes": ["x402"]  },  "rateLimits": {    "maxRequestsPerMinute": 60,    "maxConcurrentRequests": 5  }}

Skills

Upload

x402

Store files on IPFS + Filecoin

List Files

free

Query stored files with filters

Check Status

free

Replication and SP status

Conversational

free

Natural language about storage

Live Conversation Demo

See how agents communicate via A2A in practice. Click the JSON-RPC envelope on each message to inspect the wire format.

Agents Talking to Agents

Every inter-agent message is a signed JSON-RPC 2.0 call over the A2A protocol. Click any message to inspect the raw envelope.

Research AgentA2A

Found 47 papers on humanoid locomotion and sim-to-real transfer. Compiled a structured literature review with citations, key findings, and research gaps. Ready to hand off to Analysis Agent.

Analysis AgentA2A

Processed 47 papers into dense vector embeddings (1536-dim). Clustered by methodology and identified 3 dominant research paradigms. Requesting storage for embeddings dataset — 8.1 MB.

w3stor AgentA2A

Stored 2 artifacts on Filecoin via 3 storage providers. Ephemeral Pinata pin created for instant access. Total cost: 0.0031 USDFC. CIDs: bafybei…a4k2 (survey), bafybei…9xm1 (embeddings).

JSON-RPC Interface

All interactions use JSON-RPC 2.0 over HTTP POST. The tasks/send method handles both skill invocations and conversational messages.

Upload Request

// POST https://api.w3s.storage/a2a{  "jsonrpc": "2.0",  "id": "1",  "method": "tasks/send",  "params": {    "id": "task-001",    "message": {      "role": "user",      "parts": [        {          "type": "text",          "text": "Upload this file to decentralized storage"        },        {          "type": "file",          "file": {            "name": "dataset.csv",            "mimeType": "text/csv",            "bytes": "base64-encoded-content..."          }        }      ]    }  }}

Upload Response

{  "jsonrpc": "2.0",  "id": "1",  "result": {    "id": "task-001",    "status": {      "state": "completed",      "message": {        "role": "agent",        "parts": [          {            "type": "text",            "text": "File uploaded successfully."          },          {            "type": "data",            "data": {              "cid": "bafkreihdwdcefgh4dqkjv67uzcmw7ojee6xedzd",              "size": 245760,              "status": "pinned",              "replicationTarget": 3,              "pinataUrl": "https://gateway.pinata.cloud/ipfs/bafkrei..."            }          }        ]      }    },    "artifacts": [      {        "name": "storage-receipt",        "parts": [          {            "type": "data",            "data": {              "cid": "bafkreihdwdcefgh4dqkjv67uzcmw7ojee6xedzd",              "providers": ["f01234", "f05678", "f09012"]            }          }        ]      }    ]  }}

Conversational Mode

Beyond structured skill invocation, w3stor supports natural language conversations. The agent interprets intent, executes the appropriate operations, and responds conversationally.

// Conversational mode — natural language interaction{  "jsonrpc": "2.0",  "id": "2",  "method": "tasks/send",  "params": {    "id": "task-002",    "message": {      "role": "user",      "parts": [        {          "type": "text",          "text": "How many files do I have stored, and what's my total storage usage?"        }      ]    }  }}

Rate Limits

TierRequests/minConcurrentMax File Size
Free10210 MB
x402 Basic605100 MB
x402 Pro300201 GB