resources/assets.AssetClient

The AssetClient is used to manage digital assets within the Spaceport ecosystem. Assets are the core digital items, such as 3D models, audio files, or other creative works, that can be licensed and monetized. This client handles creating and managing the metadata and files associated with these assets.

Table of contents

Methods

constructor

new AssetClient(client): AssetClient

Parameters

NameType
clientSpaceportSDK

Returns

AssetClient

Methods

create

create(params): Promise<CreateAssetResponse>

Creates an asset record. This method creates the asset metadata and returns the full asset data that can be used for listings and other operations.

Parameters

NameTypeDescription
paramsCreateAssetParamsParameters for creating the asset record.

Returns

Promise<CreateAssetResponse>

Object containing success status, the created asset ID, and full asset data.

Example

// Create asset record with file uploads
const mediaFile = new File([...], 'artwork.jpg', { type: 'image/jpeg' });
const thumbnailFile = new File([...], 'thumbnail.jpg', { type: 'image/jpeg' });

const result = await sdk.assets.create({
  name: 'Digital Artwork #1',
  title: 'Digital Artwork #1',
  userId: 'user-uuid',
  storageAccess: 'public',
  description: 'A beautiful digital artwork',
  tags: ['art', 'digital', 'nft'],
  mediaFile: mediaFile,
  thumbnailFile: thumbnailFile
});

if (result.success) {
  console.log('Asset created with ID:', result.assetId);
  console.log('Full asset data:', result.asset);
}

batchCreate

batchCreate(params): Promise<BatchCreateAssetsResponse>

Creates multiple asset records. This method creates multiple asset metadata records and returns the full asset data for each successfully created asset.

Supports both JSON-only requests and file uploads.

Parameters

NameTypeDescription
paramsBatchCreateAssetsParamsParameters for batch creating asset records.

Returns

Promise<BatchCreateAssetsResponse>

Object containing success status, created assets data, and any errors.

Example

// JSON-only batch creation (no files)
const result = await sdk.assets.batchCreate({
  assets: [
    {
      name: 'Digital Artwork #1',
      title: 'Digital Artwork #1',
      userId: 'user-uuid',
      description: 'First artwork',
      tags: ['art', 'digital']
    },
    {
      name: 'Digital Artwork #2',
      title: 'Digital Artwork #2',
      userId: 'user-uuid',
      description: 'Second artwork',
      tags: ['art', 'digital']
    }
  ]
});

// Batch creation with files
const mediaFile1 = new File([...], 'artwork1.jpg', { type: 'image/jpeg' });
const mediaFile2 = new File([...], 'artwork2.jpg', { type: 'image/jpeg' });

const resultWithFiles = await sdk.assets.batchCreate({
  assets: [
    {
      name: 'Digital Artwork #1',
      title: 'Digital Artwork #1',
      userId: 'user-uuid',
      description: 'First artwork',
      mediaFile: mediaFile1
    },
    {
      name: 'Digital Artwork #2',
      title: 'Digital Artwork #2',
      userId: 'user-uuid',
      description: 'Second artwork',
      mediaFile: mediaFile2
    }
  ]
});

if (result.success) {
  console.log(`Created ${result.assets.length} assets`);
  result.assets.forEach(asset => {
    console.log('Asset:', asset.assetId, asset.asset.name);
  });
}