Trust Stack Docs
Reference

Limits and errors

Product bounds and the Move abort families surfaced by Trust Stack.

Trust Stack validates user-facing bounds before the wallet opens. The Move modules repeat critical checks because the chain—not the browser—is the security boundary.

Common limits

InputBound
Token name32 UTF-8 bytes
Token symbol10 letters/numbers
Token decimals0–18
Token icon/project URI512 bytes; HTTPS or IPFS
Multi-send recipients1–100 unique addresses
Merkle root/nodeexactly 32 bytes
Merkle proof depthat most 64 nodes
Digital Asset mediaat most 20 MiB; approved image/GLB/glTF types
On-chain token amountspositive integer base units that fit u64
Addressescanonicalizable, non-zero where ownership is assigned

Abort families

Abort codes are module-local. Always interpret the code together with the package and module name.

ModuleCodesMeaning
token_factory1–7zero supply, invalid cap/fixed supply, wrong creator, disabled mint/burn, zero recipient
fixed_lock1–7zero amount, invalid time/beneficiary, wrong signer, locked/already claimed, dispatchable asset
vesting1–8zero input, invalid curve/schedule/steps, wrong beneficiary, nothing claimable, dispatchable asset
batch_distribution1–8empty/mismatched/oversized batch, invalid recipient/amount, duplicate, overflow, dispatchable asset
merkle_airdrop1–15invalid funding/root/seed/times/proof, inactive or repeated claim/reclaim, allocation overflow
digital_asset_factory1–5invalid recipient/name/collection/URI or final owner mismatch
digital_asset_lock1–8invalid time/beneficiary/ownership, locked/already claimed, transfer/custody failure
payment_stream1–10invalid funding/schedule, wrong authority, no claim, cancellation/completion state, dispatchable asset
staking_pool1–4, 6–12invalid amount/schedule/asset/address, lifecycle/authority/claim/recovery failure
dexlyn_lp_lock1–7invalid amount/beneficiary/time/pool, wrong beneficiary, locked/already claimed

Handling a failure

  1. Preserve the transaction hash if one exists.
  2. Read the VM status and exact module/code in SupraScan.
  3. Re-read the current object and vault state.
  4. Correct the input or lifecycle condition only after determining whether the prior transaction finalized.
  5. Do not retry a claim solely because the UI lost its response.

The TypeScript client converts known validation failures into field-level guidance before signing. Unexpected execution failures retain the transaction hash for investigation.

On this page