SDK Reference
Group
GroupClient allows you to create groups and add IP Assets to them.
GroupClient
Methods
- registerGroup
- mintAndRegisterIpAndAttachLicenseAndAddToGroup
- registerIpAndAttachLicenseAndAddToGroup
- registerGroupAndAttachLicense
- registerGroupAndAttachLicenseAndAddIps
- collectAndDistributeGroupRoyalties
registerGroup
Registers a Group IPA.
Method | Type |
---|---|
registerGroup | (request: RegisterGroupRequest) => Promise<RegisterGroupResponse> |
Parameters:
request.groupPool
: The address specifying how royalty will be split amongst the pool of IPs in the group.request.txOptions
: [Optional] The transaction options.
Response Type
mintAndRegisterIpAndAttachLicenseAndAddToGroup
Mint an NFT from a SPGNFT collection, register it with metadata as an IP, attach license terms to the registered IP, and add it to a group IP.
Method | Type |
---|---|
mintAndRegisterIpAndAttachLicenseAndAddToGroup | (request: MintAndRegisterIpAndAttachLicenseAndAddToGroupRequest) => Promise<MintAndRegisterIpAndAttachLicenseAndAddToGroupResponse> |
Parameters:
request.nftContract
: The address of the NFT collection.request.groupId
: The ID of the group IP to add the newly registered IP.request.licenseTermsId
: The ID of the registered license terms that will be attached to the new IP.request.recipient
: [Optional] The address of the recipient of the minted NFT,default value is your wallet address.request.licenseTemplate
: [Optional] The address of the license template to be attached to the new group IP,default value is Programmable IP License.request.deadline
: [Optional] The deadline for the signature in milliseconds,default value is 1000ms.request.ipMetadata
: [Optional] The desired metadata for the newly minted NFT and newly registered IP.request.ipMetadata.ipMetadataURI
[Optional] The URI of the metadata for the IP.request.ipMetadata.ipMetadataHash
[Optional] The hash of the metadata for the IP.request.ipMetadata.nftMetadataURI
[Optional] The URI of the metadata for the NFT.request.ipMetadata.nftMetadataHash
[Optional] The hash of the metadata for the IP NFT.
request.txOptions
: [Optional] The transaction options.
Response Type
registerIpAndAttachLicenseAndAddToGroup
Register an NFT as IP with metadata, attach license terms to the registered IP, and add it to a group IP.
Method | Type |
---|---|
registerIpAndAttachLicenseAndAddToGroup | (request: RegisterIpAndAttachLicenseAndAddToGroupRequest) => Promise<RegisterIpAndAttachLicenseAndAddToGroupResponse> |
Parameters:
request.spgNftContract
: The address of the NFT collection.request.tokenId
: The ID of the NFT.request.groupId
: The ID of the group IP to add the newly registered IP.request.licenseTermsId
: The ID of the registered license terms that will be attached to the new IP.request.licenseTemplate
: [Optional] The address of the license template to be attached to the new group IP, default value is Programmable IP License.request.deadline
: [Optional] The deadline for the signature in milliseconds, default is 1000ms.request.ipMetadata
: [Optional] The desired metadata for the newly minted NFT and newly registered IP.request.ipMetadata.ipMetadataURI
[Optional] The URI of the metadata for the IP.request.ipMetadata.ipMetadataHash
[Optional] The hash of the metadata for the IP.request.ipMetadata.nftMetadataURI
[Optional] The URI of the metadata for the NFT.request.ipMetadata.nftMetadataHash
[Optional] The hash of the metadata for the IP NFT.
request.txOptions
: [Optional] The transaction options.
Response Type
registerGroupAndAttachLicense
Register a group IP with a group reward pool and attach license terms to the group IP.
Method | Type |
---|---|
registerGroupAndAttachLicense | (request: RegisterGroupAndAttachLicenseRequest) => Promise<RegisterGroupAndAttachLicenseResponse> |
Parameters:
request.groupPool
: The address specifying how royalty will be split amongst the pool of IPs in the group.request.licenseTermsId
: The ID of the registered license terms that will be attached to the new group IP.request.licenseTemplate
: [Optional] The address of the license template to be attached to the new group IP, default value is Programmable IP License.request.txOptions
: [Optional] The transaction options.
Response Type
registerGroupAndAttachLicenseAndAddIps
Register a group IP with a group reward pool, attach license terms to the group IP, and add individual IPs to the group IP.
Method | Type |
---|---|
registerGroupAndAttachLicenseAndAddIps | (request: RegisterGroupAndAttachLicenseAndAddIpsRequest) => Promise<RegisterGroupAndAttachLicenseAndAddIpsResponse> |
Parameters:
request.ipIds
: The IP IDs of the IPs to be added to the group.request.groupPool
: The address specifying how royalty will be split amongst the pool of IPs in the group.request.maxAllowedRevShare
: The maximum reward share percentage that can be allocated to each member IP.request.licenseData
: The data of the license and its configuration to be attached to the new group IP.request.licenseData.licenseTermsId
: The ID of the registered license terms that will be attached to the new group IP.request.licenseData.licensingConfig
: [Optional] See the LicensingConfig type. If none provided, it will default to the one shown here.request.licenseData.licenseTemplate
: [Optional] The address of the license template to be attached to the new group IP, default value is Programmable IP License.
request.txOptions
: [Optional] The transaction options.
collectAndDistributeGroupRoyalties
Collect royalties for the entire group and distribute the rewards to each member IP’s royalty vault.
Method | Type |
---|---|
collectAndDistributeGroupRoyalties | (request: CollectAndDistributeGroupRoyaltiesRequest) => Promise<CollectAndDistributeGroupRoyaltiesResponse> |
Parameters:
request.groupIpId
: The IP ID of the group.request.currencyTokens
: The addresses of the currency (revenue) tokens to claim.request.memberIpIds
: The IDs of the member IPs to distribute the rewards to.request.txOptions
: [Optional] The transaction options.