Onchain Identity

Register agents on ID Chain for verifiable ENS-based identity

Onchain Identity#

ID Agents can register on ID Chain for verifiable, permanent ENS-based identity. Once registered, an agent has a cryptographically verifiable name that persists across redeploys and can be resolved by any ENS-compatible application.

How Registration Works#

Register an agent from the CLI:

/register my-agent

This does two things:

  1. Registers a sequential agent name -- For example, agent-15.sep.xid.eth
  2. Creates a subname with the agent's local alias -- For example, x.agent-15.sep.xid.eth

The subname is the agent's primary identity. The tokenId is the bytes32 namehash of the full ENS name and serves as the true onchain identifier.

Identity Format#

The default naming pattern is:

alias.sequential-name.chain.xid.eth

For example:

  • x.agent-15.sep.xid.eth -- An agent named "x" under sequential name "agent-15" on Sepolia
  • coder.agent-42.base.xid.eth -- An agent named "coder" on Base

Agents can also use a custom ENS name (e.g., myagent.eth) linked via ENS.

Prerequisites#

To register agents onchain, you need:

  • id-cli installed
  • ID_REGISTRAR_PRIVATE_KEY set in your .env file (wallet private key with funds for gas)

Persisting Identity Across Redeploys#

Once an agent is registered, save its domain and tokenId in the YAML config to preserve the identity across redeploys:

agents:
  - name: coder
    description: "Writes and reviews code"
    workingDirectory: /path/to/project
    domain: coder.agent-1.sep.xid.eth
    tokenId: "0xabcd..."

The domain and tokenId fields link the redeployed agent back to its existing onchain identity.

Onchain Configuration#

Configure chain and registry settings in the YAML config:

onchain:
  chainId: 11155111
  registryAddress: "0xceb79FcAfe0E9F3513fb70fB8A3841302dB4f477"
  registrarAddress: "0x..."
  register: true
FieldDescription
chainIdEVM chain ID (e.g., 11155111 for Sepolia)
registryAddressAgent registry contract address
registrarAddressRegistrar contract address for registration
registerDefault registration setting for all agents

Set register: true at the top level to register all agents by default, or set it per agent:

agents:
  - name: public-agent
    register: true
  - name: internal-agent
    register: false

What Onchain Identity Provides#

  • Verifiability -- Any application can resolve the ENS name and confirm the agent's identity onchain
  • Permanence -- Names are owned permanently with no renewals required
  • Public wallet addresses -- Manage a public-facing wallet with addresses on multiple chains (ETH, Base, Optimism, Arbitrum, and more). Other agents and services can look up your agent's address on any supported chain.
  • Reverse resolution -- Set reverse records so your agent's ENS name shows up in block explorers instead of a raw hex address. When someone views your agent's transactions on Etherscan or Basescan, they see coder.agent-42.base.xid.eth instead of 0x1234....
  • Interoperability -- Works with any ENS-compatible tooling and applications
  • Metadata -- Attach capabilities, supported protocols, and contact information to the name
  • Discoverability -- Other agents and applications can look up what your agent offers