Welcome to the new Provenance Blockchain developer documentation portal!
logo

Purpose

The Registry module provides role-based access control and permissions management for digital assets. It defines who can perform specific actions on assets through a system of roles and addresses.

How It Works

  • Registry Keys: Unique identifiers linking registry entries to specific NFT assets
  • Registry Entries: Contain roles and addresses that can perform those roles
  • Roles: Define different types of permissions (Servicer, Controller, Custodian, etc.)
  • Addresses: Blockchain addresses assigned to specific roles

Key Messages/Actions

MsgRegisterNFT

Registers a new NFT in the registry with specified roles and addresses.
protobuf
message MsgRegisterNFT { string authority = 1; RegistryKey key = 2; repeated RolesEntry roles = 3; }

MsgGrantRole

Grants a role to one or more addresses.
protobuf
message MsgGrantRole { string authority = 1; RegistryKey key = 2; RegistryRole role = 3; repeated string addresses = 4; }

MsgRevokeRole

Revokes a role from one or more addresses.
protobuf
message MsgRevokeRole { string authority = 1; RegistryKey key = 2; RegistryRole role = 3; repeated string addresses = 4; }

MsgUnregisterNFT

Unregisters an NFT from the registry.
protobuf
message MsgUnregisterNFT { string authority = 1; RegistryKey key = 2; }

Registry Roles

  • REGISTRY_ROLE_SERVICER: Maintains and services underlying assets
  • REGISTRY_ROLE_SUBSERVICER: Assists servicers with limited administrative capabilities
  • REGISTRY_ROLE_CONTROLLER: Has administrative control over registry entries
  • REGISTRY_ROLE_CUSTODIAN: Holds and safeguards underlying assets
  • REGISTRY_ROLE_BORROWER: Can borrow against underlying assets
  • REGISTRY_ROLE_ORIGINATOR: Creates and originates underlying assets