RegistrationModule.sol

Note

The RegistrationModule will get phased out post-beta, so we recommend using the IPAssetRegistry for registering IP assets!

The registration module is responsible for registration of IP into the protocol. During registration, this module will register an IP into the protocol, create a resolver, and bind to it any licenses and terms specified by the IP registrant (IP account owner).

name

string name

Returns the string identifier associated with the module.

ipResolver

contract IPResolver ipResolver

Returns the metadata resolver used by the registration module.

constructor

constructor(address assetRegistry, address licensingModule, address resolverAddr) public

registerRootIp

function registerRootIp(uint256 policyId, address tokenContract, uint256 tokenId, string ipName, bytes32 contentHash, string externalURL) external returns (address)

Registers a root-level IP into the protocol. Root-level IPs can be thought of as organizational hubs
for encapsulating policies that actual IPs can use to register through. As such, a root-level IP is not an
actual IP, but a container for IP policy management for their child IP assets.

Parameters

NameTypeDescription
policyIduint256The policy that identifies the licensing terms of the IP.
tokenContractaddressThe address of the NFT bound to the root-level IP.
tokenIduint256The token id of the NFT bound to the root-level IP.
ipNamestringThe name assigned to the new IP.
contentHashbytes32The content hash of the IP being registered.
externalURLstringAn external URI to link to the IP.

registerDerivativeIp

function registerDerivativeIp(uint256[] licenseIds, address tokenContract, uint256 tokenId, string ipName, bytes32 contentHash, string externalURL, bytes royaltyContext) external

Registers derivative IPs into the protocol. Derivative IPs are IP assets that inherit policies from
parent IPs by burning acquired license NFTs.

Parameters

NameTypeDescription
licenseIdsuint256[]The licenses to incorporate for the new IP.
tokenContractaddressThe address of the NFT bound to the derivative IP.
tokenIduint256The token id of the NFT bound to the derivative IP.
ipNamestringThe name assigned to the new IP.
contentHashbytes32The content hash of the IP being registered.
externalURLstringAn external URI to link to the IP.
royaltyContextbytesThe royalty context for the derivative IP. TODO: Replace all metadata with a generic bytes parameter type, and do encoding on the periphery contract level instead.