Skip to main content

SDK Reference

Complete reference for the Asset Tokenization Studio SDK request classes and operations.

Overview​

The ATS SDK provides TypeScript request classes to interact with smart contracts. All request classes are located in:

packages/ats/sdk/src/port/in/request/

All requests extend ValidatedRequest and include built-in validation for parameters.

Network Operations​

InitializationRequest​

Initialize the SDK with network configuration.

Location: request/network/InitializationRequest.ts

Parameters:

  • network: string - Network environment ("testnet", "mainnet")
  • mirrorNode: object - Mirror node configuration
  • rpcNode: object - RPC node configuration
  • configuration: object - Resolver and factory addresses
  • mirrorNodes: object - Array of mirror nodes
  • jsonRpcRelays: object - Array of JSON-RPC relays
  • factories: object - Array of factory addresses
  • resolvers: object - Array of resolver addresses
  • events?: Partial<WalletEvent> - Optional event handlers

Usage:

import { Network, InitializationRequest } from "@hashgraph/asset-tokenization-sdk";

const request = new InitializationRequest({
network: "testnet",
mirrorNode: { baseUrl: "...", apiKey: "", headerName: "" },
rpcNode: { baseUrl: "...", apiKey: "", headerName: "" },
configuration: { resolverAddress: "0.0.xxxx", factoryAddress: "0.0.yyyy" },
// ...
});

await Network.init(request);

ConnectRequest​

Connect a wallet to the SDK.

Location: request/network/ConnectRequest.ts

Parameters:

  • network: string - Network environment
  • mirrorNode: object - Mirror node configuration
  • rpcNode: object - RPC node configuration
  • wallet: SupportedWallets - Wallet type (HASHPACK, BLADE, METAMASK, HWALLETCONNECT)
  • hwcSettings?: object - WalletConnect settings (optional)

Usage:

import { Network, ConnectRequest, SupportedWallets } from "@hashgraph/asset-tokenization-sdk";

const request = new ConnectRequest({
network: "testnet",
mirrorNode: { baseUrl: "...", apiKey: "", headerName: "" },
rpcNode: { baseUrl: "...", apiKey: "", headerName: "" },
wallet: SupportedWallets.HASHPACK,
});

await Network.connect(request);

Security Operations​

TransferRequest​

Transfer tokens between accounts.

Location: request/security/operations/transfer/TransferRequest.ts

Parameters:

  • securityId: string - Token ID
  • targetId: string - Recipient account ID
  • amount: string - Amount to transfer

Usage:

import { Security, TransferRequest } from "@hashgraph/asset-tokenization-sdk";

const request = new TransferRequest({
securityId: "0.0.1234567",
targetId: "0.0.7654321",
amount: "100",
});

const success = await Security.transfer(request);

IssueRequest​

Mint new tokens (requires ISSUER_ROLE).

Location: request/security/operations/issue/IssueRequest.ts

Parameters:

  • securityId: string - Token ID
  • targetId: string - Recipient account ID
  • amount: string - Amount to mint

RedeemRequest​

Burn tokens.

Location: request/security/operations/redeem/RedeemRequest.ts

Parameters:

  • securityId: string - Token ID
  • amount: string - Amount to burn

GetAccountBalanceRequest​

Get token balance for an account.

Location: request/account/GetAccountBalanceRequest.ts

Parameters:

  • tokenId: string - Token ID
  • targetId: string - Account ID

Usage:

import { Security, GetAccountBalanceRequest } from "@hashgraph/asset-tokenization-sdk";

const request = new GetAccountBalanceRequest({
tokenId: "0.0.1234567",
targetId: "0.0.7654321",
});

const balance = await Security.getBalanceOf(request);
console.log(balance.amount);

Equity Operations​

SetDividendsRequest​

Schedule a dividend distribution.

Location: request/equity/SetDividendsRequest.ts

Parameters:

  • securityId: string - Token ID
  • amount: string - Dividend amount per share
  • recordTimestamp: string - Snapshot date timestamp
  • executionTimestamp: string - Execution date timestamp

Usage:

import { Equity, SetDividendsRequest } from "@hashgraph/asset-tokenization-sdk";

const request = new SetDividendsRequest({
securityId: "0.0.1234567",
amount: "5.00",
recordTimestamp: "1734825600",
executionTimestamp: "1735430400",
});

const dividendId = await Equity.setDividend(request);

SetVotingRightsRequest​

Schedule a voting event.

Location: request/equity/SetVotingRightsRequest.ts

Parameters:

  • securityId: string - Token ID
  • name: string - Voting event name
  • executionTimestamp: string - Voting date timestamp

SetScheduledBalanceAdjustmentRequest​

Schedule a stock split or reverse split.

Location: request/equity/SetScheduledBalanceAdjustmentRequest.ts

Parameters:

  • securityId: string - Token ID
  • executionTimestamp: string - Execution date timestamp
  • factor: string - Adjustment factor (e.g., "2" for 2:1 split)

CancelDividendRequest​

Cancel a scheduled dividend.

Location: request/equity/CancelDividendRequest.ts

Parameters:

  • securityId: string - Token ID
  • dividendId: number - ID of the dividend to cancel

Usage:

import { Equity, CancelDividendRequest } from "@hashgraph/asset-tokenization-sdk";

const request = new CancelDividendRequest({
securityId: "0.0.1234567",
dividendId: 1,
});

const result = await Equity.cancelDividend(request);

CancelVotingRequest​

Cancel a scheduled voting event.

Location: request/equity/CancelVotingRequest.ts

Parameters:

  • securityId: string - Token ID
  • votingId: number - ID of the voting event to cancel

Usage:

import { Equity, CancelVotingRequest } from "@hashgraph/asset-tokenization-sdk";

const request = new CancelVotingRequest({
securityId: "0.0.1234567",
votingId: 1,
});

const result = await Equity.cancelVoting(request);

CancelScheduledBalanceAdjustmentRequest​

Cancel a scheduled balance adjustment.

Location: request/equity/CancelScheduledBalanceAdjustmentRequest.ts

Parameters:

  • securityId: string - Token ID
  • balanceAdjustmentId: number - ID of the balance adjustment to cancel

Usage:

import { Equity, CancelScheduledBalanceAdjustmentRequest } from "@hashgraph/asset-tokenization-sdk";

const request = new CancelScheduledBalanceAdjustmentRequest({
securityId: "0.0.1234567",
balanceAdjustmentId: 1,
});

const result = await Equity.cancelScheduledBalanceAdjustment(request);

GetDividendAmountForRequest​

Get the dividend payment amount calculation for a specific holder.

Location: request/equity/GetDividendsForRequest.ts

Parameters:

  • securityId: string - Token ID
  • dividendId: number - Dividend ID
  • targetId: string - Account ID to query

Response (DividendAmountForViewModel):

  • numerator: string - Numerator of the dividend amount calculation
  • denominator: string - Denominator of the dividend amount calculation
  • recordDateReached: boolean - Whether the record date has been reached

Usage:

import { Equity, GetDividendsForRequest } from "@hashgraph/asset-tokenization-sdk";

const request = new GetDividendsForRequest({
securityId: "0.0.1234567",
dividendId: 1,
targetId: "0.0.7654321",
});

const dividendAmountFor = await Equity.getDividendAmountFor(request);
console.log("Numerator:", dividendAmountFor.numerator);
console.log("Denominator:", dividendAmountFor.denominator);
console.log("Record Date Reached:", dividendAmountFor.recordDateReached);

Bond Operations​

SetCouponRequest​

Schedule a coupon payment.

Location: request/bond/SetCouponRequest.ts

Parameters:

  • securityId: string - Token ID
  • rate: string - Coupon rate
  • recordTimestamp: string - Record date timestamp
  • executionTimestamp: string - Execution date timestamp
  • startTimestamp: string - Coupon period start timestamp
  • endTimestamp: string - Coupon period end timestamp
  • fixingTimestamp: string - Rate fixing timestamp (for floating rate bonds)
  • rateStatus: number - Rate status (0 = Fixed, 1 = Floating)

Usage:

import { Bond, SetCouponRequest } from "@hashgraph/asset-tokenization-sdk";

const request = new SetCouponRequest({
securityId: "0.0.1234567",
rate: "5.0",
recordTimestamp: "1734825600",
executionTimestamp: "1735430400",
startTimestamp: "1727049600",
endTimestamp: "1734825600",
fixingTimestamp: "1727049600",
rateStatus: 0, // Fixed rate
});

const couponId = await Bond.setCoupon(request);

CancelCouponRequest​

Cancel a scheduled coupon payment.

Location: request/bond/CancelCouponRequest.ts

Parameters:

  • securityId: string - Token ID
  • couponId: number - ID of the coupon to cancel

Usage:

import { Bond, CancelCouponRequest } from "@hashgraph/asset-tokenization-sdk";

const request = new CancelCouponRequest({
securityId: "0.0.1234567",
couponId: 1,
});

const result = await Bond.cancelCoupon(request);

GetCouponAmountForRequest​

Get the coupon payment amount calculation for a specific holder.

Location: request/bond/GetCouponForRequest.ts

Parameters:

  • securityId: string - Token ID
  • couponId: number - Coupon ID
  • targetId: string - Account ID to query

Response (CouponAmountForViewModel):

  • numerator: string - Numerator of the payment amount calculation
  • denominator: string - Denominator of the payment amount calculation
  • recordDateReached: boolean - Whether the record date has been reached

Usage:

import { Bond, GetCouponForRequest } from "@hashgraph/asset-tokenization-sdk";

const request = new GetCouponForRequest({
securityId: "0.0.1234567",
couponId: 1,
targetId: "0.0.7654321",
});

const couponAmountFor = await Bond.getCouponAmountFor(request);
console.log("Numerator:", couponAmountFor.numerator);
console.log("Denominator:", couponAmountFor.denominator);
console.log("Record Date Reached:", couponAmountFor.recordDateReached);

GetPrincipalForRequest​

Get the principal payment calculation for a bondholder at maturity.

Location: request/bond/GetPrincipalForRequest.ts

Parameters:

  • securityId: string - Token ID
  • targetId: string - Account ID to query

Response (PrincipalForViewModel):

  • numerator: string - Numerator of the principal calculation
  • denominator: string - Denominator of the principal calculation

Usage:

import { Bond, GetPrincipalForRequest } from "@hashgraph/asset-tokenization-sdk";

const request = new GetPrincipalForRequest({
securityId: "0.0.1234567",
targetId: "0.0.7654321",
});

const principalFor = await Bond.getPrincipalFor(request);
console.log("Principal:", principalFor.numerator, "/", principalFor.denominator);

FullRedeemAtMaturityRequest​

Redeem all tokens for a specific holder when the bond reaches maturity.

Location: request/bond/FullRedeemAtMaturityRequest.ts

Parameters:

  • securityId: string - Token ID
  • sourceId: string - Account ID to redeem tokens from

Usage:

import { Bond, FullRedeemAtMaturityRequest } from "@hashgraph/asset-tokenization-sdk";

const request = new FullRedeemAtMaturityRequest({
securityId: "0.0.1234567",
sourceId: "0.0.7654321",
});

const result = await Bond.fullRedeemAtMaturity(request);
console.log("Success:", result.payload);
console.log("Transaction:", result.transactionId);

RedeemAtMaturityByPartitionRequest​

Redeem a specific amount of tokens from a partition at maturity.

Location: request/bond/RedeemAtMaturityByPartitionRequest.ts

Parameters:

  • securityId: string - Token ID
  • partitionId: string - Partition identifier
  • sourceId: string - Account ID to redeem tokens from
  • amount: string - Amount to redeem

Usage:

import { Bond, RedeemAtMaturityByPartitionRequest } from "@hashgraph/asset-tokenization-sdk";

const request = new RedeemAtMaturityByPartitionRequest({
securityId: "0.0.1234567",
partitionId: "default",
sourceId: "0.0.7654321",
amount: "1000",
});

const result = await Bond.redeemAtMaturityByPartition(request);

KYC Operations​

GrantKycRequest​

Grant KYC to an account using Verifiable Credentials.

Location: request/security/kyc/GrantKycRequest.ts

Parameters:

  • tokenId: string - Token ID
  • targetId: string - Account to grant KYC
  • vcData: string - Verifiable Credential data

Usage:

import { Kyc, GrantKycRequest } from "@hashgraph/asset-tokenization-sdk";

const request = new GrantKycRequest({
tokenId: "0.0.1234567",
targetId: "0.0.7654321",
vcData: "verifiable_credential_data",
});

const success = await Kyc.grantKyc(request);

RevokeKycRequest​

Revoke KYC from an account.

Location: request/security/kyc/RevokeKycRequest.ts

Parameters:

  • tokenId: string - Token ID
  • targetId: string - Account to revoke KYC

SSI Management Operations​

AddIssuerRequest​

Add an account as a credential issuer.

Location: request/security/ssi/AddIssuerRequest.ts

Parameters:

  • securityId: string - Token ID
  • targetId: string - Account to add as issuer

Usage:

import { SsiManagement, AddIssuerRequest } from "@hashgraph/asset-tokenization-sdk";

const request = new AddIssuerRequest({
securityId: "0.0.1234567",
targetId: "0.0.7654321",
});

const success = await SsiManagement.addIssuer(request);

Role Management Operations​

RoleRequest​

Grant or revoke roles.

Location: request/security/role/RoleRequest.ts

Parameters:

  • securityId: string - Token ID
  • role: string - Role identifier (e.g., "ISSUER_ROLE")
  • targetId: string - Account to grant/revoke role

Usage:

import { Role, RoleRequest } from "@hashgraph/asset-tokenization-sdk";

const request = new RoleRequest({
securityId: "0.0.1234567",
role: "ISSUER_ROLE",
targetId: "0.0.7654321",
});

await Role.grantRole(request);

Hold Operations​

CreateHoldByPartitionRequest​

Create a hold on tokens.

Location: request/security/operations/hold/CreateHoldByPartitionRequest.ts

Parameters:

  • securityId: string - Token ID
  • recipient: string - Recipient account ID
  • notary: string - Notary account ID
  • amount: string - Amount to hold
  • partition: string - Partition identifier
  • lockTime: string - Lock time in seconds

Clearing Operations​

ClearingTransferByPartitionRequest​

Create a clearing transfer request.

Location: request/security/operations/clearing/ClearingTransferByPartitionRequest.ts

Parameters:

  • securityId: string - Token ID
  • targetId: string - Recipient account ID
  • amount: string - Amount to transfer
  • partition: string - Partition identifier

ApproveClearingOperationByPartitionRequest​

Approve a clearing operation (requires CLEARING_VALIDATOR_ROLE).

Location: request/security/operations/clearing/ApproveClearingOperationByPartitionRequest.ts

Parameters:

  • securityId: string - Token ID
  • clearingId: string - Clearing operation ID
  • partition: string - Partition identifier

Management Operations​

UpdateConfigRequest​

Update token configuration.

Location: request/management/UpdateConfigRequest.ts

Parameters:

  • securityId: string - Token ID
  • configId: string - Configuration ID (32-byte hex)
  • configVersion: string - Configuration version

Usage:

import { Management, UpdateConfigRequest } from "@hashgraph/asset-tokenization-sdk";

const request = new UpdateConfigRequest({
securityId: "0.0.1234567",
configId: "0x0000000000000000000000000000000000000000000000000000000000000001",
configVersion: "0",
});

const success = await Management.updateConfig(request);

Snapshot Operations​

BalancesOfAtSnapshotRequest​

Query holder balances at a specific snapshot with pagination support.

Location: request/snapshots/BalancesOfAtSnapshotRequest.ts

Parameters:

  • securityId: string - Token ID (Hedera ID or EVM address)
  • snapshotId: number - Snapshot ID to query (min: 0)
  • pageIndex: number - Page index for pagination (min: 0)
  • pageLength: number - Number of results per page (min: 1)

Response: Array<{ holder: string; balance: bigint }>

Usage:

import { Snapshot, BalancesOfAtSnapshotRequest } from "@hashgraph/asset-tokenization-sdk";

const request = new BalancesOfAtSnapshotRequest({
securityId: "0.0.1234567",
snapshotId: 1,
pageIndex: 0,
pageLength: 50,
});

const balances = await Snapshot.balancesOfAtSnapshot(request);
balances.forEach((entry) => {
console.log(`Holder: ${entry.holder}, Balance: ${entry.balance}`);
});

Source Code Reference​

All request classes are available in the SDK source code:

GitHub: packages/ats/sdk/src/port/in/request/

You can view the complete implementation and parameter validation logic in the source files.