Skip to main content

Solidity API

Contract: IRoyaltyInfo

External Functions

getRoyaltyInfo

function getRoyaltyInfofunction getRoyaltyInfo(uint256 rightsId) external view returns (address[] parents, uint256[] percentages)
Returns the royalty splits for the rights.

Parameters

NameDescription
rightsIdThe rights token ID.

Return Values

Description
An array of beneficiary addresses.
An array of their corresponding split percentages (in basis points, e.g. 10000 = 100%).

Contract: CulturaRightsBoundAccount

This contract is “bound” to a specific rights. There are two main functions:
  1. setPaymentInfo
    • Intended to be called by a royalty module.
    • Requires a valid EIP‑712 signature from the rights holder.
    • Accepts payment data (beneficiaries and ERC20 token amounts) for a given payment period, representing 75% of the total payment.
    • Pulls ERC20 tokens from the rights holder into the contract.
    • Then appends the mandatory splits (Cultura Treasury and Verifier Module) so that the total payment is divided as: • Provided splits: 75% • Cultura Treasury: 5% • Verifier Module: 20%
  2. claim
    • Each beneficiary can claim their individual share for a given period.

setPaymentInfo

function setPaymentInfofunction setPaymentInfo(struct ICulturaRightsBoundAccount.PaymentInput input) external
Sets the payment info for the current period.

Parameters

NameDescription
inputPaymentInput containing participants, amounts, totalAmount, signature and signer.
The function sets individual claimable amounts for each beneficiary in a mapping, combines the copying and summing loops for gas efficiency, and emits an event with all assigned values for transparency. |

claim

function claimfunction claim(uint256 period) external
Allows individual beneficiaries to claim their share for a given payment period.

Parameters

NameDescription
periodThe payment period identifier.
Each beneficiary can claim only once per period. On a successful claim, their allocated amount is set to zero to prevent re-claims. |

claimForVerifierModule

function claimForVerifierModulefunction claimForVerifierModule(uint256 period) external
Allows the verifier module to claim its share for a given payment period

Parameters

NameDescription
periodThe payment period identifier

getPaymentAmount

function getPaymentAmountfunction getPaymentAmount(uint256 period, address beneficiary) external view returns (uint256 amount)
Gets the payment info for a given period and beneficiary

Parameters

NameDescription
periodThe payment period
beneficiaryThe address of the beneficiary

Return Values

Description
The amount allocated to the beneficiary

Public Functions

constructor

function constructorconstructor(address _rightsContract, uint256 _rightsId, address _tokenAddress, address _culturaTreasury, address _verifierModule) public
Initialize the contract with the rights and ERC20 token addresses, plus the fixed addresses for Cultura Treasury and Verifier Module. The EIP‑712 domain is set with name “RightsControlledClaim” and version “1”.

Parameters

NameDescription
_rightsContractThe address of the rights contract.
_rightsIdThe rights’s token ID.
_tokenAddressThe ERC20 token address used for royalty payments.
_culturaTreasuryThe address that always receives 5% of the total.
_verifierModuleThe address that always receives 20% of the total.

Events

PaymentInfoSet

event PaymentInfoSetevent PaymentInfoSet(uint256 period, address[] beneficiaries, uint256[] amounts, uint256 totalAmount)
Emitted when the payment info for a period has been set.

Claimed

event Claimedevent Claimed(uint256 period, address beneficiary, uint256 amount)
Emitted when a beneficiary successfully claims their share for a payment period.

Custom Errors

ZeroAddressNotAllowed

error ZeroAddressNotAllowederror ZeroAddressNotAllowed(string paramName)

InvalidSignature

error InvalidSignatureerror InvalidSignature(string reason)

ArrayLengthMismatch

error ArrayLengthMismatcherror ArrayLengthMismatch()

PaymentInfoAlreadySet

error PaymentInfoAlreadySeterror PaymentInfoAlreadySet()

InvalidProvidedAmount

error InvalidProvidedAmounterror InvalidProvidedAmount()

NoPaymentInfoForPeriod

error NoPaymentInfoForPerioderror NoPaymentInfoForPeriod()

NothingToClaim

error NothingToClaimerror NothingToClaim()

VerifiersShouldClaimThroughModule

error VerifiersShouldClaimThroughModuleerror VerifiersShouldClaimThroughModule()

OnlyVerifierModuleCanCall

error OnlyVerifierModuleCanCallerror OnlyVerifierModuleCanCall()

VerifierModuleNotEnabled

error VerifierModuleNotEnablederror VerifierModuleNotEnabled()