Skip to content

Reference

createTokenStandardTransfer

POST wallet token-standard transfers — tracked splice-token transfers with receiver, amount, expiry, and tracking id.

createTokenStandardTransfer persists asynchronous token-standard workflow rows distinct from legacy createTransferOffer Amulet offers—use when integrating splice transfer pipelines keyed off decimal-string amounts plus explicit expiry timestamps.

Setup

import { Canton } from '@fairmint/canton-node-sdk';

const canton = new Canton({
  network: 'devnet',
  provider: '5n',
  partyId: 'OWN_PARTY_ID',
});

Import and receiver

import { Canton } from '@fairmint/canton-node-sdk';

Receiver: canton.validator.createTokenStandardTransfer.

Minimal example

const tx = await canton.validator.createTokenStandardTransfer({
  receiver_party_id: 'Alice::1220...',
  amount: '100',
  description: 'Invoice #42',
  expires_at: Date.now() + 3_600_000,
  tracking_id: `tst-${crypto.randomUUID()}`,
});

Parameters

  • receiver_party_id (required, string) — Destination Canton party.
  • amount (required, string) — Decimal quantity expressed textually for precision safety.
  • description (required, string) — Memo surfaced downstream explorers when permitted.
  • expires_at (required, number) — Absolute expiry timestamp (milliseconds epoch convention aligned wallet OpenAPI definitions).
  • tracking_id (required, string) — Unique trace identifier correlating listTokenStandardTransfers.

Returns

Wallet JSON acknowledgement summarizing acceptance—inspect bundled wallet-internal schema describing correlation identifiers plus ledger hooks release-by-release.

Errors and pitfalls

  • Low balances fail validation server-side—preflight getWalletBalance.
  • Duplicate tracking_id collisions behave undefined—derive UUID-grade uniqueness client-side.

Auth and party

Bearer token binding signer wallet identity exercising Canton authority constraints.

See also

Source

src/clients/validator-api/operations/v0/wallet/token-standard/transfers/create.ts on GitHub.