AgentRegistry (MRC-58)
Two deployed versions: v1 (free) and v2 (1 MOR paid). Both implement the MRC-58 Agent Registry standard.
Source: registry-contracts/contracts/agent/
Deployments
| Variant | Arbitrum One | Base mainnet |
|---|---|---|
| v1 (free) | 0xCC258a…454F | 0xd4D014…5ca4 |
| v2 (1 MOR fee) | 0x5563Be…3625B | 0x191630…2697 |
v1 vs v2
| v1 | v2 | |
|---|---|---|
| Registration fee | 0 | 1 MOR |
| Fee recipient | n/a | Hypnex treasury |
| Spam resistance | low | high |
| Use case | hobby agents | production agents |
Both are usable simultaneously. The hypnex-registry SDK defaults to v2 since 0.3.0.
Functions (both versions)
register
solidity
function register(bytes32 agentId, string calldata manifestUri) external;v2 additionally pulls 1 MOR via transferFrom. The fee transfer is atomic with the registration — if approval fails, the whole tx reverts.
agents(bytes32 agentId)
solidity
function agents(bytes32 agentId) external view returns (AgentRecord memory);Returns { owner, manifestUri, registeredAt }.
updateManifest
solidity
function updateManifest(bytes32 agentId, string calldata newUri) external;Owner-only. Manifest URI is mutable; the agentId itself is permanently bound to the registering address.
Events
solidity
event AgentRegistered(bytes32 indexed agentId, address indexed owner);
event ManifestUpdated(bytes32 indexed agentId, string newUri);SDK
See hypnex-registry for TypeScript and Python wrappers.
See also
hypnex-registrySDK reference- MRC-58 spec — upstream Morpheus standard