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 configurationrpcNode: object- RPC node configurationconfiguration: object- Resolver and factory addressesmirrorNodes: object- Array of mirror nodesjsonRpcRelays: object- Array of JSON-RPC relaysfactories: object- Array of factory addressesresolvers: object- Array of resolver addressesevents?: 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 environmentmirrorNode: object- Mirror node configurationrpcNode: object- RPC node configurationwallet: 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 IDtargetId: string- Recipient account IDamount: 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 IDtargetId: string- Recipient account IDamount: string- Amount to mint
RedeemRequest
Burn tokens.
Location: request/security/operations/redeem/RedeemRequest.ts
Parameters:
securityId: string- Token IDamount: string- Amount to burn
GetAccountBalanceRequest
Get token balance for an account.
Location: request/account/GetAccountBalanceRequest.ts
Parameters:
tokenId: string- Token IDtargetId: 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 IDamount: string- Dividend amount per sharerecordTimestamp: string- Snapshot date timestampexecutionTimestamp: 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 IDname: string- Voting event nameexecutionTimestamp: string- Voting date timestamp
SetScheduledBalanceAdjustmentRequest
Schedule a stock split or reverse split.
Location: request/equity/SetScheduledBalanceAdjustmentRequest.ts
Parameters:
securityId: string- Token IDexecutionTimestamp: string- Execution date timestampfactor: string- Adjustment factor (e.g., "2" for 2:1 split)
GetDividendAmountForRequest
Get the dividend payment amount calculation for a specific holder.
Location: request/equity/GetDividendsForRequest.ts
Parameters:
securityId: string- Token IDdividendId: number- Dividend IDtargetId: string- Account ID to query
Response (DividendAmountForViewModel):
numerator: string- Numerator of the dividend amount calculationdenominator: string- Denominator of the dividend amount calculationrecordDateReached: 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 IDrate: string- Coupon raterecordTimestamp: string- Record date timestampexecutionTimestamp: string- Execution date timestampstartTimestamp: string- Coupon period start timestampendTimestamp: string- Coupon period end timestampfixingTimestamp: 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);
GetCouponAmountForRequest
Get the coupon payment amount calculation for a specific holder.
Location: request/bond/GetCouponForRequest.ts
Parameters:
securityId: string- Token IDcouponId: number- Coupon IDtargetId: string- Account ID to query
Response (CouponAmountForViewModel):
numerator: string- Numerator of the payment amount calculationdenominator: string- Denominator of the payment amount calculationrecordDateReached: 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 IDtargetId: string- Account ID to query
Response (PrincipalForViewModel):
numerator: string- Numerator of the principal calculationdenominator: 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 IDsourceId: 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 IDpartitionId: string- Partition identifiersourceId: string- Account ID to redeem tokens fromamount: 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 IDtargetId: string- Account to grant KYCvcData: 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 IDtargetId: 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 IDtargetId: 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 IDrole: 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 IDrecipient: string- Recipient account IDnotary: string- Notary account IDamount: string- Amount to holdpartition: string- Partition identifierlockTime: string- Lock time in seconds
Clearing Operations
ClearingTransferByPartitionRequest
Create a clearing transfer request.
Location: request/security/operations/clearing/ClearingTransferByPartitionRequest.ts
Parameters:
securityId: string- Token IDtargetId: string- Recipient account IDamount: string- Amount to transferpartition: string- Partition identifier
ApproveClearingOperationByPartitionRequest
Approve a clearing operation (requires CLEARING_VALIDATOR_ROLE).
Location: request/security/operations/clearing/ApproveClearingOperationByPartitionRequest.ts
Parameters:
securityId: string- Token IDclearingId: string- Clearing operation IDpartition: string- Partition identifier
Management Operations
UpdateConfigRequest
Update token configuration.
Location: request/management/UpdateConfigRequest.ts
Parameters:
securityId: string- Token IDconfigId: 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);
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.
Related Resources
- SDK Integration Guide - Getting started with the SDK
- User Guides - Detailed operation guides
- Smart Contracts API - Contract interface reference