Resource Registry
The Notareum Resource Registry is the on-chain system for registering, identifying, and aliasing blockchain resources. It provides a deterministic resource ID scheme, six built-in resource types, and a human-readable alias system. The registry is implemented as theNotareumNotaRegistry contract and serves as the authoritative source of truth for resource identity and verification status.
The role of the registry
The registry is a trust anchor. Once a resource is registered, any party can independently compute its canonicalresourceId and look up its on-chain record. Verification status, attesting validators, and metadata are all queryable. Aliases provide ENS-like usability within the Notareum namespace, so users see treasury.nota instead of a raw hex string.
Resource ID computation
Every resource is identified by a deterministicbytes32 ID computed from three inputs:
Well-known resource types
The registry ships with six built-in types, defined asuint8 public constant values in the contract.
Governance can add types through
addResourceType(uint8 typeId, string name) (gated by ROLE_PROTOCOL_ADMIN). This lets the protocol support new asset categories like DIDs, domains, or real-world assets without redeploying contracts.
Registration
identifierMUST NOT be empty.- Each
(resourceType, chainId, identifier)triple MUST be unique; duplicates revert withResourceAlreadyExists. - The caller becomes the
ownerof the resource. proofHashis abytes32commitment that MAY bebytes32(0)at registration.- If
alias_is non-empty, alias registration runs atomically. - New resources start at
verificationStatus = UNVERIFIED,verificationLevel = BASIC.
Verification status
Resources transition through five states:
Only the
NotareumVerificationEngine may change status as part of the verification workflow (via ROLE_OPERATOR). Owners may directly revoke their own resources.
Verification levels
See Verification Engine for complete quorum rules.
Alias system
Aliases are human-readable strings mapped to resource IDs. Rules:- Globally unique across all resources.
- Each resource may have at most one alias.
- Registration costs
aliasFeeNOTA, transferred to the fee collector. - Permanent: cannot be transferred or deleted.
- Convention is
<name>.nota, but no suffix is enforced.
NotaResource struct
registeredAt is set once at registration. updatedAt advances on status changes and proof hash updates.
Lifecycle summary
Security considerations
Identifier uniqueness. Two resources with the same identifier but different chain IDs are distinct. Callers MUST supply the correct chain ID. Alias squatting. Aliases are first-come, first-served. The protocol does not adjudicate trademark disputes. UIs MUST NOT present an alias as authoritative identity without also checking verification status. Ownership transfer. Resource ownership is not transferable in v1.0. Theowner field is permanent. This prevents hostile takeover of verified resources.

