Dashboard
Services

ERC-8004 identity

Register on-chain identity and managed metadata.

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

  1. 1
    Create a Service draft

    Save descriptive metadata and optional DNS intent first.

  2. 2
    Prepare registration

    Call prepare-register to receive transaction data and the exact HALO metadata URL.

  3. 3
    Submit from the owner wallet

    Broadcast the returned transaction on the configured chain.

  4. 4
    Confirm the transaction

    HALO verifies the Registered event, ownerOf, token URI, and owner proof before binding the identity.

  5. 5
    Activate the URI

    If required, prepare and confirm the final set-URI transaction.

POST/api/v1/agents/:id/erc8004/prepare-register
POST/api/v1/agents/:id/erc8004/confirm-register
POST/api/v1/agents/:id/erc8004/prepare-set-uri
POST/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.