The Service Registry can bind a HALO record to ERC-8004 identity. HALO prepares transaction data, verifies the confirmed chain result, and serves a stable metadata document.
#Registration flow
- 1Create a Service draft
Save descriptive metadata and optional DNS intent first.
- 2Prepare registration
Call
prepare-registerto receive transaction data and the exact HALO metadata URL. - 3Submit from the owner wallet
Broadcast the returned transaction on the configured chain.
- 4Confirm the transaction
HALO verifies the Registered event,
ownerOf, token URI, and owner proof before binding the identity. - 5Activate the URI
If required, prepare and confirm the final set-URI transaction.
/api/v1/agents/:id/erc8004/prepare-register/api/v1/agents/:id/erc8004/confirm-register/api/v1/agents/:id/erc8004/prepare-set-uri/api/v1/agents/:id/erc8004/confirm-uri#Owner proof
Confirmation operations require a signature from the current on-chain owner. HALO returns the exact owner-proof message in the record or in a 401 response when the signature is missing.
#Managed metadata
{
"type": "https://eips.ethereum.org/EIPS/eip-8004#registration-v1",
"name": "Schedule Service",
"services": [
{
"name": "Schedule",
"endpoint": "https://service.example.com/runtime",
"version": "v1"
}
],
"x402Support": true,
"active": true,
"registrations": [
{
"agentRegistry": "eip155:{chainId}:{registryAddress}",
"agentId": "{tokenId}"
}
],
"supportedTrust": ["identity-reference"],
"halo": {
"canonicalAgentId": "eip155:{chainId}:{registryAddress}:{tokenId}",
"metadataHost": {
"provider": "agihalo",
"managed": true,
"contentHash": "sha256:..."
}
}
}#DNS verification
With dnsDomain configured, HALO expects a TXT record like_agihalo.example.comcontaining the service's assigned proof value. Verification updates the managed metadata but does not replace wallet ownership.