Skip to main content

Solidity API

Contract: IRoyaltyInfo

External Functions

getRoyaltyInfo

Returns the royalty splits for the rights.

Parameters

Return Values

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

Sets the payment info for the current period.

Parameters

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

Allows individual beneficiaries to claim their share for a given payment period.

Parameters

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

claimForVerifierModule

Allows the verifier module to claim its share for a given payment period

Parameters

getPaymentAmount

Gets the payment info for a given period and beneficiary

Parameters

Return Values

Public Functions

constructor

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

Events

PaymentInfoSet

Emitted when the payment info for a period has been set.

Claimed

Emitted when a beneficiary successfully claims their share for a payment period.

Custom Errors

ZeroAddressNotAllowed

InvalidSignature

ArrayLengthMismatch

PaymentInfoAlreadySet

InvalidProvidedAmount

NoPaymentInfoForPeriod

NothingToClaim

VerifiersShouldClaimThroughModule

OnlyVerifierModuleCanCall

VerifierModuleNotEnabled