ONE ID.
EVERY PROTOCOL.

HCS-14 Universal Agent ID enables consistent agent identification across web2 APIs, web3 protocols, and hybrid systems. Deterministic, self-describing, and decentralized.

FRAGMENTATION

The Babel Problem.

Every protocol has its own ID system. Web2 has URLs. Blockchains have addresses. Registries have names. Agents cannot cross these boundaries without losing their identity.

HCS-14 creates a Universal Translation Layer. A single UAID string contains everything needed to verify and route to an agent, regardless of its native habitat.

Unified Discovery

Discover agents across Hedera, Ethereum, Google A2A, and private clouds using a single ID format.

Trust Bridging

Carry reputation and verification proofs across protocol boundaries. Your Hedera agent is trusted on Ethereum.

Self-Describing

The ID itself contains routing info (registry, protocol, native endpoint). No central lookup table required.

SOLUTION

Dual Method Architecture.

1. The AID Target

For agents that don't have a W3C DID. The identifier is a deterministic SHA-384 hash of the agent's canonical metadata (Name, Registry, Protocol, Native ID, Skills).

uaid:aid:{hash};registry=hol;proto=hcs-10

2. The UAID Target

For agents that already have a self-sovereign DID. HCS-14 wraps the existing DID to add universal routing parameters without changing the underlying identity.

uaid:did:{method-id};registry=hol;nativeId=...
Canonical Input (AID)
{
  "registry": "hol",
  "name": "Support Agent",
  "version": "1.0.0",
  "protocol": "hcs-10",
  "nativeId": "hedera:testnet:0.0.123456",
  "skills": [0, 17]
}
Deterministic Output
uaid:aid:QmX4f...GHz;uid=0;registry=hol;nativeId=hedera:testnet:0.0.123456
SCHEMA

Anatomy of an ID.

uaid:aid:QmHash...;registry=hol;proto=hcs-10

Target

aid (Generated) or did (Sovereign).

Identifier

SHA-384 Hash (Base58) or Method-Specific ID.

Registry

Namespace authority (e.g. hol, google).

Protocol

Communication capabilities (e.g. hcs-10, mcp).

Google A2A

nativeId = domain.com

Anthropic MCP

nativeId = server-name

Hedera HCS-10

nativeId = hedera:testnet:0.0.x

INTEROP

Native Protocol IDs.

HCS-14 respects existing ecosystems. It wraps native IDs (like CAIP-10 accounts or Web Domains) instead of replacing them.

This means a Google A2A agent on `microsoft.com` can be uniquely identified and routed to by a Hedera HCS-10 agent, just by parsing the UAID parameters.

DEVELOPER TOOLS

Build with the SDK.

Generate AID

generate-id.ts
import { AgentID } from '@hashgraph/standards';
const uaid = AgentID.generate({
registry: "hol",
name: "Support Bot",
protocol: "hcs-10",
nativeId: "hedera:testnet:0.0.123"
});
console.log(uaid);
> uaid:aid:Qm...;registry=hol;...

Parse & Route

parse-id.ts
const parsed = AgentID.parse(uaidString);
if (parsed.params.proto === 'hcs-10') {
// Route to Hedera Topic
await hcsClient.connect(parsed.params.nativeId);
} else if (parsed.params.proto === 'a2a') {
// Route to HTTP Endpoint
await httpClient.post(parsed.params.nativeId);
}