Skip to main content
This flow outlines the steps involved when a creator mints a completely new digital asset (not derived from another) using the Cultura SDK. This typically involves preparing metadata, uploading it to IPFS, and then calling the SDK’s minting function.

Flow Diagram

Explanation

  1. User Initiates: The user interacts with the dApp, providing details like the asset’s name, description, and optionally an image file or URL.
  2. SDK Call (Dapp): The dApp calls the SDK’s mintDigitalAsset function. It passes:
    • The recipient address (to).
    • Asset name and description.
    • An empty array ([]) for parentDigitalAssets (indicating it’s an original asset).
    • A terms object containing asset-specific terms or extended metadata (e.g., { creatorTerms: "...", usageRights: "..." }). This is distinct from the standard ERC721 metadata.
    • A tokenURI object containing standard ERC721 metadata (e.g., { name, description, image: imageUrl }).
  3. Metadata Upload (SDK): If objects were passed for terms and tokenURI, the SDK uploads them to IPFS automatically, obtaining termsURI and tokenURI CIDs. If strings (pre-existing URIs) were passed, the SDK uses them directly.
  4. Contract Interaction (SDK): The SDK calls the safeMint function on the CulturaDigitalAsset contract, passing the recipient, name, description, empty parentDigitalAssets array, and the final termsURI and tokenURI.
  5. Minting (Contract): The CulturaDigitalAsset contract performs the mint operation:
    • Creates a new token.
    • Assigns ownership to the recipient (to).
    • Stores the provided digitalAssetName, digitalAssetDescription, parentDigitalAssets (empty), termsURI (intended for specific terms/metadata), and tokenURI (standard ERC721 metadata URI) within its internal data structures.
    • Emits a standard ERC721 Transfer event indicating the creation of the new token ID.
  6. Result (SDK/Dapp): The SDK waits for the transaction receipt, extracts the tokenId from the Transfer event log, and returns it to the dApp. The dApp then notifies the user of the successful minting.
  7. Post-Minting: The asset now exists on-chain at Level 0. The next step to make it licensable is the Verification & Attestation Flow.

SDK Snippet Example