HCS‑5 API Reference
Sources
Import PathsDirect link to Import Paths
import {
HCS5Client,
HCS5BrowserClient,
type HCS5ClientConfig,
type HCS5MintOptions,
type HCS5CreateHashinalOptions,
type HCS5MintResponse,
buildHcs1Hrl,
} from '@hashgraphonline/standards-sdk/hcs-5';
TypesDirect link to Types
interface HCS5ClientConfig {
network: 'mainnet' | 'testnet';
operatorId: string; // Node only
operatorKey: string | import('@hashgraph/sdk').PrivateKey; // Node only
logLevel?: 'debug' | 'info' | 'warn' | 'error';
silent?: boolean;
mirrorNodeUrl?: string;
logger?: any;
}
interface HCS5MintOptions {
tokenId: string;
metadataTopicId: string; // HCS‑1/12 content topic
supplyKey?: string | import('@hashgraph/sdk').PrivateKey;
memo?: string;
}
interface HCS5CreateHashinalOptions {
tokenId: string;
inscriptionInput: import('../inscribe/inscriber').InscriptionInput; // file/buffer/url/topic
inscriptionOptions?: import('../inscribe/inscriber').InscriptionOptions;
supplyKey?: string | import('@hashgraph/sdk').PrivateKey;
memo?: string;
}
interface HCS5MintResponse {
success: boolean;
serialNumber?: number;
transactionId?: string;
metadata?: string; // HRL used as NFT metadata
error?: string;
}
Node Client (HCS5Client)Direct link to Node Client (HCS5Client)
constructor(config: HCS5ClientConfig)
mint(options: HCS5MintOptions): Promise<HCS5MintResponse>
createHashinal(options: HCS5CreateHashinalOptions): Promise<HCS5MintResponse>
Notes
createHashinalinscribes content first (waits for confirmation) and reuses the resulting topic as metadata for minting.- If a raw
supplyKeyis a string, it may be resolved via Mirror Node to the correct curve using NodeOperatorResolver.
Browser Client (HCS5BrowserClient)Direct link to Browser Client (HCS5BrowserClient)
Mirrors Node flows but uses wallet signing for inscription and mint. Returns similar responses.
HelperDirect link to Helper
function buildHcs1Hrl(topicId: string): string; // e.g., hcs://1/<topicId>
Builders (tx.ts)Direct link to Builders (tx.ts)
function buildHcs5MintTx(params: { tokenId: string; metadata: string; transactionMemo?: string }): import('@hashgraph/sdk').TokenMintTransaction;
function buildHcs5MintWithHrlTx(params: { tokenId: string; metadataTopicId: string; transactionMemo?: string }): import('@hashgraph/sdk').TokenMintTransaction;
Throws / ErrorsDirect link to Throws / Errors
Failed to mint HCS-5 Hashinal: …Failed to inscribe and mint HCS-5 Hashinal: …
ExampleDirect link to Example
const c = new HCS5Client({ network: 'testnet', operatorId, operatorKey });
const hr = await c.createHashinal({ tokenId, inscriptionInput: { type: 'url', url: 'https://…' } });