Skip to main content

HCS‑3 API Reference

Sources

Import PathsDirect link to Import Paths

import { HCS } from '@hashgraphonline/standards-sdk';

TypesDirect link to Types

type LoadType = 'script' | 'image' | 'video' | 'audio' | 'glb' | 'css';

interface HCSConfig {
cdnUrl: string; // default 'https://kiloscribe.com/api/inscription-cdn/'
network: string; // 'mainnet' | 'testnet'
retryAttempts?: number; // default 3
retryBackoff?: number; // default 300ms
debug?: boolean; // default false
showLoadingIndicator?: boolean;
loadingCallbackName?: string | null; // window[callback](id, status)
}

interface HCSConfigMapping {
hcsCdnUrl: 'cdnUrl';
hcsNetwork: 'network';
hcsRetryAttempts: 'retryAttempts';
hcsRetryBackoff: 'retryBackoff';
hcsDebug: 'debug';
hcsShowLoadingIndicator: 'showLoadingIndicator';
hcsLoadingCallbackName: 'loadingCallbackName';
}

Class: HCSDirect link to Class: HCS

constructor();

// Logging
log(...args: any[]): void;
error(...args: any[]): void;

// Config
loadConfigFromHTML(): void; // reads <script data-hcs-config .../>
sleep(ms: number): Promise<void>;

// Duplicate detection
isDuplicate(topicId: string): boolean;

// CDN fetch with retries
fetchWithRetry(url: string, retries?: number, backoff?: number): Promise<Response>;

// Hedera Reference Link (HRL) data
retrieveHCS1Data(topicId: string, cdnUrl?: string, network?: string): Promise<Blob>;

// Loaders (dom‑oriented)
loadScript(el: HTMLElement): Promise<void>;
loadImage(el: HTMLElement): Promise<void>;
loadStylesheet(el: HTMLElement): Promise<void>;
loadMedia(el: HTMLElement, mediaType: 'video' | 'audio'): Promise<void>;
loadGLB(el: HTMLElement): Promise<void>;
loadResource(el: HTMLElement, type: LoadType, order: number): Promise<void>;
loadModuleExports(scriptId: string): Promise<any>;

// Queue (batch loading)
processQueue(): Promise<void>;

Notes

  • Internally tracks loaded resources (scripts/wasm/images/videos/audios/glbs) and emits HCSScriptLoaded events.
  • For legacy pages, the loader can display simple console indicators or call a window callback.

ExamplesDirect link to Examples

const h = new HCS();
h.loadConfigFromHTML(); // reads defaults from DOM
const blob = await h.retrieveHCS1Data('0.0.123', h.config.cdnUrl, h.config.network);