CIS-8004: Agent Registry#
CIS-8004 is the Concordium Agent Registry standard. It mints each registered AI agent as a non-fungible CIS-2 token, giving it a stable on-chain identity that is discoverable, transferable, and interoperable with the broader multi-chain agent ecosystem.
The standard is designed to be compatible with ERC-8004 (the Ethereum trustless agent standard), so agents registered on Concordium are addressable from Ethereum tooling and vice versa. Concordium extends the baseline specification with support for the CIS-8 External Key Registry cross-chain key bindings and Concordium’s own verified-identity layer.
Mainnet contract: index 10082, subindex 0. The contract advertises support for CIS-0, CIS-2, and CIS-8004.
Agent token#
Each registered agent is represented as a CIS-2 non-fungible token with a unique token_id (a u64 integer). All standard CIS-2 operations apply: agents can be transferred, burned, and queried using any CIS-2-compatible tool.
The canonical address of an agent token is expressed as a Base58Check-encoded CIS-2 token address derived from the tuple (contract_index=10082, subindex=0, token_id). This address uniquely identifies the agent across tooling that understands Concordium CIS-2 addressing.
On-chain agent state#
Field |
Type |
Description |
|---|---|---|
|
u64 |
Sequentially assigned on registration. Immutable. |
|
AccountAddress |
The Concordium account that currently owns the agent NFT. Changes on transfer. |
|
string (optional) |
Public URL where the Agent Card JSON is hosted. |
|
bytes32 (optional) |
SHA-256 hash of the Agent Card bytes at |
|
ExternalReference (optional) |
A |
|
map<string, bytes> |
Arbitrary on-chain key-value store. The reserved key |
|
Active | Revoked |
Registration status. Revoked agents remain queryable but are treated as inactive. |
External references#
An agent can carry one optional external_reference that links it to a cross-chain or cross-platform identity:
Cis8 reference — Points to a binding in the CIS-8 External Key Registry. Use this to attach an Ethereum, Solana, Cosmos, or Fetch.ai public key to the agent. The CIS-8 binding must exist before it can be set as a reference.
Cis10 reference — Points to a binding in the CIS-10 External Identifier Registry. Use this to attach a platform handle (Moltbook, X, GitHub, etc.) to the agent. Note that the CIS-10 contract integration is not yet active on the mainnet deployment.
Native vs. external agent ownership#
Concordium uses Base58-encoded native accounts as the primary owner type for CIS-8004 agents. This is the default for any wallet or application operating natively on Concordium.
For users and systems that operate primarily on Ethereum or another external chain, the recommended path is:
Create a Concordium account to act as the on-chain owner. This is the account that signs the
registertransaction.Register the external key with CIS-8 by calling
build_cis8_canonical_bytesto derive the canonical bytes, signing them with the Ethereum private key, then submittingbuild_cis8_registerfrom the Concordium account.Register the agent in CIS-8004 with a
Cis8external reference pointing at the CIS-8 binding. This permanently links the agent’s NFT to the Ethereum address.
Once the link exists, any tooling that knows the Ethereum address can resolve the Concordium account via the CIS-8 contract, then find the agent via the CIS-8004 external reference. The Agent Card’s concordium extension block surfaces the token_address and contract references so that external registries can do this lookup without chain-specific knowledge.
Contract entrypoints#
Entrypoint |
Description |
|---|---|
|
Mints a new agent NFT to the caller. Optional: |
|
Marks the agent as Revoked. Only the current owner or an approved operator can revoke. |
|
Updates |
|
Sets one or more key-value pairs in the agent’s on-chain metadata store. |
|
Convenience entrypoint for the reserved |
|
Transfers ownership of the agent NFT to a new address. Transferring automatically clears the |
|
Grants or revokes an operator’s permission to manage the agent on the owner’s behalf. |
|
Admin-only: upgrades the contract module. Does not affect stored agent data. |
|
Admin-only: updates the linked CIS-8 and CIS-10 contract addresses. |
Token address encoding#
The MCP tool token_address computes the Base58Check token address for a given (contract_index, subindex, token_id) triple. The complementary tool parse_token_address decodes a token address back into its component fields. These operations are purely off-chain and require no network round-trip.