ts-sdk-types

TypeScript SDK: Types (Move ↔ TypeScript)

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "ts-sdk-types" with this command: npx skills add iskysun96/aptos-agent-skills/iskysun96-aptos-agent-skills-ts-sdk-types

TypeScript SDK: Types (Move ↔ TypeScript)

Purpose

Guide type mapping between Move and TypeScript when using @aptos-labs/ts-sdk : numeric types (especially u128/u256), address, TypeTag, and functionArguments / typeArguments .

ALWAYS

  • Use bigint for u128 and u256 – in both view results and functionArguments ; JavaScript number loses precision above 2^53.

  • Use string for address in payloads – e.g. "0x1" or accountAddress.toString() ; SDK accepts AccountAddressInput (string or AccountAddress).

  • Use typeArguments for generic Move functions – e.g. coin type ["0x1::aptos_coin::AptosCoin"] for coin::balance or coin::transfer .

  • Cast view results explicitly when you know the Move return type – e.g. BigInt(result[0] as string) for u128.

NEVER

  • Do not use number for u128/u256 – precision loss; use bigint .

  • Do not pass raw number for large u64 in entry/view – use bigint if value can exceed Number.MAX_SAFE_INTEGER.

  • Do not omit typeArguments when the Move function has type parameters (e.g. balance<CoinType> ).

Move → TypeScript (summary)

Move type TypeScript type Example

u8, u16, u32 number 255 , 65535

u64 number | bigint Prefer bigint for large values

u128, u256 bigint BigInt("340282366920938463463374607431768211455")

i8..i64 (Move 2.3+) number | bigint Use bigint for i64 when large

i128, i256 bigint BigInt("-...")

bool boolean true

address string "0x1"

signer — Not passed from TS; signer is the transaction sender

vector Uint8Array | string (hex) new Uint8Array([1,2,3]) or hex

vector T[] [1, 2, 3]

String string "hello"

Object string (object address) objectAddress.toString()

Option T | null Value or null

functionArguments

Order and types must match the Move entry/view function parameters:

// Move: public fun transfer<CoinType>(to: address, amount: u64) await aptos.transaction.build.simple({ sender: account.accountAddress, data: { function: "0x1::coin::transfer", typeArguments: ["0x1::aptos_coin::AptosCoin"], functionArguments: [ "0xrecipient...", // address as string 1000n // u64 as bigint (or number if small) ] } });

typeArguments

For generic Move functions, pass full type strings (address::module::StructName ):

// Move: balance<CoinType>(addr): u64 typeArguments: ["0x1::aptos_coin::AptosCoin"];

// Move: transfer<CoinType>(to, amount) typeArguments: ["0x1::aptos_coin::AptosCoin"];

View return types

const result = await aptos.view({ payload: { function: "0x1::coin::balance", typeArguments: ["0x1::aptos_coin::AptosCoin"], functionArguments: [accountAddress] } }); // result is an array; u128 often returned as string in JSON const balance = BigInt(result[0] as string);

TypeTag (advanced)

When building payloads programmatically or parsing type strings:

import { TypeTag } from "@aptos-labs/ts-sdk";

// Parser for type tag strings import { parseTypeTag } from "@aptos-labs/ts-sdk"; const tag = parseTypeTag("0x1::aptos_coin::AptosCoin");

Use typeArguments as string array in simple cases; use TypeTag when the SDK API expects it.

Object / resource address in arguments

Pass object address as string (LONG or SHORT per AIP-40):

functionArguments: [ nftObjectAddress.toString(), // or "0x..." price ];

Common mistakes

Mistake Correct approach

Passing number for u128 amount Use 1000000n or BigInt("...")

Omitting typeArguments for coin::balance Add typeArguments: ["0x1::aptos_coin::AptosCoin"]

Using result[0] as number for u128 Use BigInt(result[0] as string)

Wrong order of functionArguments Match Move parameter order exactly

References

  • SDK: src/transactions/typeTag/ , src/transactions/instances/transactionArgument.ts , view and build APIs

  • Pattern: TYPESCRIPT_SDK.md

  • Related: ts-sdk-view-and-query, ts-sdk-transactions, use-ts-sdk

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

use-aptos-cli

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

use-typescript-sdk

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

ts-sdk-client

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

generate-tests

No summary provided by upstream source.

Repository SourceNeeds Review