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.

RESOLUTION

Profiles & Adapters.

HCS-14 uses a pluggable adapter architecture. Profiles define how to discover agent endpoints; adapters implement the resolution logic.

ans-resolver

ANS Resolver

Agent Name Service (ANS) for human-readable agent resolution via DNS.

did-resolver

DID Resolver

Resolves W3C DIDs to DID Documents. Handles any DID method.

did-profile-resolver

DID Profile Resolver

Enriches DID resolution with HCS-11 profile data.

uaid-profile-resolver

UAID Profile Resolver

Resolves UAIDs to endpoints via DNS, ANS, or custom profiles.

DISCOVERY

Built-in Profiles.

hcs-14.profile.uaid-dns-web

DNS TXT resolution at _uaid.<nativeId>. Supports DNSSEC.

hcs-14.profile.aid-dns-web

DNS TXT resolution at _agent.<nativeId>. PKA cryptographic binding.

hcs-14.profile.uaid-did-resolution

Protocol-neutral DID resolution. Works with any W3C DID.

hcs-14.profile.ans-dns-web

ANS resolution via DNS and Agent Card document.

HOW IT WORKS

Resolution Flow.

Auto Select

Resolver automatically chooses the best profile based on UAID parameters.

auto-resolve.ts
const client = new HCS14Client();Click to copy
const profile = await client.resolveUaidProfile(uaid);Click to copy
> { service: [...], metadata: {...} }Click to copy

Forced ProfileId

Explicitly request a specific profile by its profileId.

explicit-resolve.ts
const client = new HCS14Client();Click to copy
const profile = await client.resolveUaidProfile(uaid, {Click to copy
profileId: UAID_DNS_WEB_PROFILE_IDClick to copy
});Click to copy
> { service: {...} }Click to copy

Unify your agents with HCS-14.

Give your agents a universal identity across all protocols.