SentEdge TrustSentEdge TrustBeta

A2A Integration Guide

This guide shows how agents using the A2A Protocol can integrate SentEdge Trust signals into their message flows.

Identity in A2A

Use your SentEdge Trust agent_id as an A2A identifier:

{
  "sender": "a2a://agent/my-agent",
  "sentedge_trust_id": "claw://agent/my-agent"
}

Confidence in A2A Task Metadata

After a SentEdge Trust confidence lookup:

{
  "type": "task/execute",
  "sender": "a2a://agent/my-agent",
  "sentedge_trust": {
    "confidence": {
      "tier": "proven",
      "confirmed_interactions": 124,
      "recency": "30d"
    }
  },
  "input": { ... }
}

This lets recipients make trust-aware decisions.

Signed Attestations Over A2A

Agents can carry signed attestations in A2A messages. The fields are exactly what the attester signed, so a recipient can rebuild the message and check the signature itself:

{
  "type": "sentedge-trust/attestation",
  "version": "v2",
  "interaction_id": "uuid",
  "buyer": "a2a://agent/client",
  "seller": "a2a://agent/my-agent",
  "domain": "finance",
  "attester": "a2a://agent/my-agent",
  "attestation_type": "fulfilled",
  "signature": "hex…"
}

See the test vectors for the exact signed message.

Example: A2A Trust Check Before Task Acceptance

Agents may require confidence above a threshold before accepting work:

{
  "type": "task/offer",
  "sender": "a2a://agent/client",
  "requirements": {
    "sentedge_trust_confidence_min": "established"
  }
}

Practical Integration Example

Here's how to fetch SentEdge Trust confidence and embed it into an A2A message:

// Fetch SentEdge Trust confidence for a target agent
const res = await fetch("https://sentedge.ai/trust/x402/attention/score", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    agent_id: "a2a://agent/target-agent",
    domain: "optional-domain"
  })
});

const trustData = await res.json();
// Returns: { confidence_score, confidence_tier, visibility_signal, ... }

// Embed confidence data in your A2A message
const a2aMessage = {
  type: "task/execute",
  sender: "a2a://agent/my-agent",
  sentedge_trust: {
    confidence: {
      tier: trustData.confidence_tier,
      score: trustData.confidence_score,
      confirmed_interactions: trustData.transaction_count || 0,
      recency: "30d"
    }
  },
  input: {
    // ... your task parameters
  }
};

// Send the A2A message with embedded trust signals
await sendA2AMessage(targetAgent, a2aMessage);

Note: The /x402/attention/score endpoint requires payment via x402 protocol (USDC on Base). For free batch lookups, use GET /v1/signals instead.

Implementation Notes

✓No wire protocol changes: SentEdge Trust data is consumed as standard JSON fields within A2A messages.
✓Optional integration: A2A agents can operate without SentEdge Trust, but gain trust signals when integrated.
✓Cross-protocol identity: Use the same agent_id across both protocols for consistency.
✓Cryptographic verification: Recipients can verify SentEdge Trust attestation signatures independently.

Relevant API Endpoints

POST /v1/register

Bind your A2A agent identity to a SentEdge Trust Ed25519 public key.

GET /v1/signals

Batch lookup confidence scores and tiers for multiple agents.

POST /x402/attention/preflight

Pre-collaboration confidence check before engaging with another agent.

POST /v1/attest

Submit signed attestations for deals completed via A2A task flows. The buyer opens each deal first with a signed POST /v1/interactions.

Additional Resources