Skip to main content
Main SDK client for interacting with the Cultura ecosystem. The SDK provides a comprehensive set of tools for interacting with the Cultura ecosystem, including Digital Asset management, attestations, and licensing.

Example

// Create SDK instance with default configuration (testnet)
const sdk = CulturaSDK.create();

// Create SDK instance with custom chain configuration
const sdk = CulturaSDK.create({ chain: 'devnet' });

// Create SDK instance with wallet connection
const sdk = CulturaSDK.createWithWallet(window.ethereum);

// Create SDK instance with wallet connection and specific chain
const sdk = CulturaSDK.createWithWallet(window.ethereum, { chain: 'devnet' });

// Create SDK instance with custom account
const sdk = CulturaSDK.createWithAccount('0x123...', { chain: 'local' });

Accessors

chain

Get Signature

get chain(): undefined | Chain
Get the current chain configuration
Returns
undefined | Chain

attestationService

Get Signature

get attestationService(): AttestationServiceClient
Access the Attestation Service client for creating and verifying attestations. The Attestation Service manages the creation and verification of attestations that prove Digital Asset ownership and rights.
Example
// Create a attestation
const attestationUID = await sdk.attestationService.attest(
  attestationRequest,
  rightsBoundAccountAddress,
  tokenId,
  assetClass,
  bondAmount
);
Returns
AttestationServiceClient The Attestation Service client instance

schemaRegistry

Get Signature

get schemaRegistry(): SchemaRegistryClient
Get the SchemaRegistry client instance
Returns
SchemaRegistryClient

culturaDigitalAsset

Get Signature

get culturaDigitalAsset(): CulturaDigitalAssetClient
Get the CulturaDigitalAsset client instance
Returns
CulturaDigitalAssetClient

digitalAsset

Get Signature

get digitalAsset(): CulturaDigitalAssetClient
Get the culturaDigitalAsset client instance (alias for culturaDigitalAsset for backward compatibility)
Deprecated
Use culturaDigitalAsset instead
Returns
CulturaDigitalAssetClient

rightsBoundAccount

Get Signature

get rightsBoundAccount(): RightsBoundAccountClient
Get the Rights Bound Account client instance This needs to be set manually using setRightsBoundAccount before use
Returns
RightsBoundAccountClient

royalty

Get Signature

get royalty(): RoyaltyClient
Get the Royalty client instance
Returns
RoyaltyClient

signatureUtils

Get Signature

get signatureUtils(): SignatureUtilsClient
Get the Signature Utils client instance
Returns
SignatureUtilsClient

verifierModule

Get Signature

get verifierModule(): VerifierModuleClient
Get the Verifier Module client instance
Returns
VerifierModuleClient

query

Get Signature

get query(): QueryClient
Get the Query client instance for querying indexed blockchain data
Returns
QueryClient

bondToken

Get Signature

get bondToken(): BondTokenClient
Get the Bond Token client instance
Returns
BondTokenClient

mockLicensingProtocol

Get Signature

get mockLicensingProtocol(): MockLicensingProtocolClient
Get the Mock Licensing Protocol client instance
Returns
MockLicensingProtocolClient

pop

Get Signature

get pop(): POPModuleClient
Get the POP Module client instance
Returns
POPModuleClient

Methods

setRightsBoundAccount()

setRightsBoundAccount(rightsBoundAccountAddress): void
Set the rights bound account address for the rightsBoundAccount client This is needed when working with licensedAssets created via mockLicenseRight

Parameters

rightsBoundAccountAddress
`0x${string}` The address of the Rights Bound Account

Returns

void

create()

static create(config): CulturaSDK
Create a new SDK instance

Parameters

config
CulturaConfig = {} SDK configuration

Returns

CulturaSDK

createWithWallet()

static createWithWallet(ethereum, config): CulturaSDK
Create a new SDK instance with a wallet

Parameters

ethereum
any Ethereum provider (e.g., window.ethereum)
config
Omit<CulturaConfig, "wallet"> = {} Additional SDK configuration

Returns

CulturaSDK

createWithAccount()

static createWithAccount(account, config): CulturaSDK
Create a new SDK instance with a specific account

Parameters

account
Ethereum account address or Viem Account object created with privateKeyToAccount() undefined | `0x${string}` | Account
config
Omit<CulturaConfig, "account"> = {} Additional SDK configuration

Returns

CulturaSDK

Example

// With an address (limited signing capability)
const sdk = CulturaSDK.createWithAccount('0x123...');

// With a private key (full signing capability)
import { privateKeyToAccount } from 'viem/accounts';
const account = privateKeyToAccount('0xYourPrivateKeyHere');
const sdk = CulturaSDK.createWithAccount(account);

createWithSmartWalletClient()

static createWithSmartWalletClient(privyClient, config): CulturaSDK
Create a new SDK instance with a Privy Smart Wallet Client

Parameters

privyClient
any The Privy SmartWalletClientType instance
config
Omit<CulturaConfig, "account" | "wallet"> = {} Additional SDK configuration

Returns

CulturaSDK

getWalletBalance()

getWalletBalance(): Promise<bigint>
Get the balance of the connected wallet

Returns

Promise<bigint>

getBalance()

getBalance(address): Promise<bigint>
Get the balance of any address

Parameters

address
string Ethereum address

Returns

Promise<bigint>

Properties

config

readonly config: CulturaConfig

publicClient

readonly publicClient: object

walletClient?

readonly optional walletClient: object