Cryptographic audit layer for A2A: hash-chained, signed blocks with equivocation detection.
blocklace-a2a is an early-stage Python project in the AI payments / x402 ecosystem, focused on a2a, agent-to-agent, audit-trail, blockchain. It currently has 0 GitHub stars and 0 forks, and sits alongside related tools like blocklace-a2a, SDAP, a2a-secure, voidly-pay, Antigravity-Super-Skill-Architecture, beam-protocol.
A2A secures the transport layer (TLS, OAuth). It does not secure the message layer:
Blocklace adds message-level cryptographic guarantees on top of A2A:
| Capability | A2A | + Blocklace |
|---|---|---|
| Transport encryption | Yes | — |
| Authentication | Yes | — |
| Per-message signatures | — | Yes |
| Hash-chained history | — | Yes |
| Tamper detection | — | Yes |
| Equivocation detection | — | Yes |
| Causal ordering | — | Yes |
Blocklace complements A2A. It does not replace TLS/OAuth.
Each message becomes a signed block in a DAG:
Block {
author: "org-a"
content: "Approved: $100"
parents: ["67a3e7bf"] ← hash pointers to prior blocks
hash: sha256(above)
signature: ed25519(hash)
}
Equivocation is detected when the same author creates two blocks where neither is an ancestor of the other.
$ python demo.py
Registering agents...
[OK] org-a (pk: 4a4ccb1f...)
[OK] org-b (pk: 3aff0ee5...)
[OK] org-c (pk: 736199f4...)
Appending blocks...
[84c7b686] author=org-a parents=[] content="Hello from A"
[44ed8588] author=org-b parents=[84c7b686] content="Hello from B"
[67a3e7bf] author=org-a parents=[44ed8588] content="Reply from A"
Simulating equivocation (org-c sends conflicting messages)...
[63eb9c6b] author=org-c parents=[67a3e7bf] content="Approved: $100"
[35331451] author=org-c parents=[67a3e7bf] content="Approved: $999"
Equivocation detected:
author: org-c
block_1: 63eb9c6b (content="Approved: $100")
block_2: 35331451 (content="Approved: $999")
evidence: Blocks share parent [67a3e7bf] with no causal relationship
pip install git+https://github.com/en-yao/blocklace-a2a.git
Requires Python 3.10+.
from blocklace_a2a import Blocklace, AgentId
lace = Blocklace()
keys = lace.register_agent(AgentId("org-a"))
result = lace.append(keys, "Hello from A")
print(result.block.short_hash) # "84c7b686"
Wrap A2A message passing with middleware:
from blocklace_a2a import Blocklace, create_middleware
lace = Blocklace()
middleware = create_middleware(lace, "my-agent")
# Outgoing
envelope = middleware.wrap_outgoing({"task": "process", "data": "..."})
payload = envelope.to_dict() # JSON-serializable
# Incoming
result = middleware.verify_incoming(received_envelope)
if not result.valid:
raise SecurityError(result.errors)
See examples/a2a_integration.py for a complete example.
| Limitation | Explanation |
|---|---|
| Proves provenance, not correctness | Proves who said what, not whether it's true |
| Detection, not prevention | Detects Byzantine behavior after the fact |
| Append-only | No rollback; history is immutable |
| Requires key isolation | Shared private keys defeat the purpose |
| In-memory only | This implementation is for demonstration |
Proof of concept. Suitable for experimentation and learning. Not production-ready.
MIT
🔒 Enhance message security with Blocklace, a cryptographic audit layer that adds tamper detection and audit trails to the A2A protocol.
Secure Digital Agent Protocol — HTTPS for AI agent communication. Cryptographic identity, mutual authentication, encrypted payloads, trust delegation, and audit trails for multi-provider agent ecosystems. Works with A2A, MCP, and any agent-to-agent protocol.
End-to-end encrypted communication for AI agents. The security layer that Google A2A forgot.
Off-chain credit ledger + hire marketplace for AI agents. Ed25519-signed envelopes, atomic settlement, hire-and-release escrow. https://voidly.ai/pay
A Federated Multi-Agent System (MAS) architecture for Google Antigravity. Orchestrates specialized AI Skills (Backend, DevOps, Frontend) using the Google ADK and A2A Protocol.
SMTP for AI agents. The open communication protocol for agent-to-agent communication. 🌊
A local-first AI agent with persistent memory, emotional intelligence, and a peer-to-peer skills economy.
The trust layer for agent-to-agent commerce — natural-language mandates, ERC-7710 delegated permissions, x402 payments, escrow, and dispute resolution as one open, catch-all Agent Skill / Claude Code plugin.
Agent behavior that compiles
The A2A x402 Extension brings cryptocurrency payments to the Agent-to-Agent (A2A) protocol, enabling agents to monetize their services through on-chain payments. This extension revives the spirit of HTTP 402 "Payment Required" for the decentralized agent ecosystem.
Aser is a lightweight, self-assembling AI Agent frame.
Golang SDK for A2A Protocol