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:
- Registers a sequential agent name -- For example,
agent-15.sep.xid.eth - 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 Sepoliacoder.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_KEYset in your.envfile (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
| Field | Description |
|---|---|
chainId | EVM chain ID (e.g., 11155111 for Sepolia) |
registryAddress | Agent registry contract address |
registrarAddress | Registrar contract address for registration |
register | Default 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.ethinstead of0x1234.... - 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