What is A2A — the open standard NVIDIA pushes heavily
A2A (Agent-to-Agent) is an open protocol — originally authored at Google, now actively advanced by NVIDIA — that standardises how autonomous AI agents discover each other, exchange messages, and delegate tasks. The A2A project on GitHub defines the canonical Task and Message types, a gRPC/HTTP service, and a streaming interface for real-time agent coordination.
NVIDIA has adopted A2A as the coordination layer across its AI Blueprint reference implementations — including the AI Virtual Assistant, RAG blueprint, and Retail Agentic Commerce blueprint. When one NVIDIA blueprint agent sends a Task to another, A2A is the wire format. The gap A2A leaves open: there is no signed receipt. An agent can lie about what it sent, when it sent it, or whether it sent it at all.
The NVIDIA A2A blueprint specifies how agents talk. It does not specify what can be proved later. Hive adds a signed receipt — Ed25519 (RFC 8032) + ML-DSA-65 (NIST FIPS 204) — anchored on Base 8453, attributed to the NVIDIA blueprint by ID. The proof travels with every message, verifiable offline against published issuer keys.
| A2A layer | What NVIDIA blueprints define | What Hive adds |
|---|---|---|
| Task dispatch | SendMessage / Task object types | Pre-call Hive receipt anchored before forwarding |
| Message exchange | Message parts (text, data, mime) | Per-message dual-signed envelope with blueprint attribution |
| Agent identity | Agent card / endpoint advertisement | did:hive DID bound to every receipt (W3C DID Core 1.0) |
| Settlement | Not specified in A2A core | USDC on Base 8453 via x402 at $0.0096/receipt |
NVIDIA A2A blueprint reference implementations
Hive ships drop-in adapters for three NVIDIA blueprint repos. Each adapter is a single @hive_signed decorator placed on the agent's primary method.
POST /generate — Message[] → ChainResponse. The most widely deployed NVIDIA A2A blueprint.POST /generate — Prompt → ChainResponse. Receipt wraps the retrieval + generation step.register_function components with process() semantics. Receipt wraps every NAT workflow step.How Hive plugs in — the @hive_signed decorator
The @hive_signed decorator wraps any NVIDIA blueprint agent method. It hashes the input payload (SHA-256), mints a pre-call Hive receipt via POST https://thehiveryiq.com/api/receipts, waits for the receipt to be anchored on Base 8453, then proceeds with the original method call. The receipt ID and Base explorer URL are attached to the response.
# Original NVIDIA RAG blueprint — src/nvidia_rag/rag_server/server.py from fastapi import APIRouter from nvidia_rag.rag_server.main import NvidiaRAG +from nvidia_blueprint_adapter import hive_signed # ← line 1 @router.post("/generate") +@hive_signed( # ← line 2 + blueprint_id="nvidia-rag", # ← line 3 + agent_id="did:hive:agent:rag-retriever", # ← line 4 +) # ← line 5 async def generate(request: RagRequest, rag: NvidiaRAG): return await rag.aquery(request.messages, request.use_knowledge_base)
The same 5-line pattern applies to the AI Virtual Assistant blueprint's /generate handler and to Retail Agentic Commerce's NAT @register_function components. See nvidia_blueprint_adapter.py for all three diffs.
The middleware approach
For deeper integration — where you want receipt-gating at the task level before any agent call is forwarded — use HiveA2AMiddleware. The middleware wraps A2A's canonical Task and Message types with Hive receipt fields, mints the receipt, and only yields the signed task to the receiving agent after the anchor is confirmed.
from hive_a2a_middleware import HiveA2AMiddleware, A2ATask, A2AMessage # Initialise once — pick your NVIDIA blueprint ID middleware = HiveA2AMiddleware(blueprint_id="nvidia-rag") # Every send is gated on a Hive receipt async with middleware.send( task=my_task, sender_id="did:hive:agent:pricing-001", receiver_id="did:hive:agent:rag-retriever-001", ) as signed_task: response = await nvidia_rag_agent.process(signed_task) await middleware.verify_inbound_task(response)
Live demo
See two NVIDIA-style agents — Pricing and Inventory — exchange A2A messages, each producing a Hive receipt with Base 8453 anchor. The demo runs in your browser against live Hive endpoints.
What an NVIDIA A2A blueprint receipt looks like
Every receipt carries NVIDIA blueprint attribution in the nvidia_blueprint_id field. The envelope is CBOR-canonical, JSON-rendered here for inspection.
k1:8c2a…kq:b71d…nvidia-rag bound to receiptPricing — NVIDIA A2A blueprint tier
One price across every NVIDIA A2A blueprint integration. Settlement is USDC on Base 8453 via x402. Treasury 0x15184bf50b3d3f52b60434f8942b7d52f2eb436e is on-chain.
Full pricing ladder on the pricing page including monthly flat tiers for high-volume NVIDIA blueprint deployments.
Integration steps for any NVIDIA blueprint engineer
Install the adapter
pip install httpx pydantic then copy hive_a2a_middleware.py and nvidia_blueprint_adapter.py into your NVIDIA blueprint's src/ directory.
Add @hive_signed to your blueprint's generate/process method
5-line change per blueprint. Import hive_signed from nvidia_blueprint_adapter, add the decorator above your handler with your blueprint ID.
Set environment variables
HIVE_API_KEY (get one at sales@thehiveryiq.com) · NVIDIA_BLUEPRINT_ID (your repo slug) · HIVE_API_URL (default is production). Without HIVE_API_KEY the adapter runs in placeholder mode — useful for dev/test.
Run the demo to verify receipts
python example_signed_a2a_demo.py — outputs two agents exchanging A2A messages, receipt IDs, and Base explorer URLs. Works fully offline with placeholder receipts.
Wrap your NVIDIA blueprint in 5 lines
If you are shipping an NVIDIA A2A blueprint and need every agent message signed and anchored on Base, the fastest path is a direct conversation.