Skip to main content
Client for interacting with the Cultura Rights Bound Account contract Handles payment distributions, royalty claims, and account management These accounts manage digital asset-related functions and handle royalty distributions to various stakeholders including attesters, Cultura Treasury, and parent digital asset owners. They are automatically deployed during the attestation process.

new RightsBoundAccountClient()

new RightsBoundAccountClient(publicClient, walletClient, contractAddress): RightsBoundAccountClient

Parameters

publicClient
walletClient
contractAddress
`0x${string}`

Returns

RightsBoundAccountClient

Methods

claim()

claim(period): Promise<`0x${string}`>
Claim rewards for a period

Parameters

period
bigint The period to claim rewards for

Returns

Promise<`0x${string}`> Transaction hash

Remarks

Allows stakeholders to claim their share of royalties for a specific period.

Example

// Stakeholders can claim their share
await rightsBoundAccount.claim(currentPeriod);

setPaymentInfo()

setPaymentInfo(info): Promise<`0x${string}`>
Set payment info for a period

Parameters

info
Payment information including participants, amounts, and authorization signature
participants
readonly `0x${string}`[]
amounts
readonly bigint[]
totalAmount
bigint
signature
`0x${string}`
signer
`0x${string}`

Returns

Promise<`0x${string}`> Transaction hash

Remarks

Important Notes:
  • Cannot override fixed distributions to:
    • Attester module (for endorsers who helped achieve Verified Rights status)
    • Cultura Treasury
  • Used by protocols to define custom royalty distribution logic
  • Must include parent digital asset owners if the digital asset is a derivative work

Example

// Set payment distribution for a period
await rightsBoundAccount.setPaymentInfo({
  participants: [parentDigitalAsset1, parentDigitalAsset2],
  amounts: [share1, share2],
  totalAmount: totalRoyalty,
  signature: distributionSignature,
  signer: authorizedSigner
});

getCurrentPeriod()

getCurrentPeriod(): Promise<bigint>
Get current period

Returns

Promise<bigint> The current period as a bigint

getPaymentAmount()

getPaymentAmount(period, beneficiary): Promise<bigint>
Get payment amount for a beneficiary in a specific period This can be used to determine if a royalty has been claimed

Parameters

period
bigint The payment period
beneficiary
`0x${string}` The address of the beneficiary

Returns

Promise<bigint> The payment amount for the beneficiary in the specified period

getVerifierModule()

getVerifierModule(): Promise<`0x${string}`>
Get verifier module address

Returns

Promise<`0x${string}`> The address of the verifier module contract

getCulturaTreasury()

getCulturaTreasury(): Promise<`0x${string}`>
Get Cultura treasury address

Returns

Promise<`0x${string}`> The address of the Cultura treasury