sui

Implement Sui Move development with PTBs, object ownership, and the @mysten/sui TypeScript SDK.

6|20|Updated Mar 14, 2026
One-click install
npx skills add https://github.com/andresdefi/cryptoskills --skill sui-andresdefi
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: sui
Source: https://github.com/andresdefi/cryptoskills/tree/main/skills/sui
Command: npx skills add https://github.com/andresdefi/cryptoskills --skill sui-andresdefi

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? AI agents frequently produce outdated or incorrect Sui code, such as using the deprecated @mysten/sui.js package, confusing Sui Move with Aptos Move, or misunderstanding the object ownership model, leading to broken transactions and failed deployments. ## Core Features & Use Cases - Sui Move Development: Write Move modules with correct object-centric patterns including owned vs shared objects, one-time witnesses, dynamic fields, and capability-based access control. - PTB Composition: Build Programmable Transaction Blocks that atomically chain splits, Move calls, and transfers using the current @mysten/sui SDK. - Deployment & Operations: Publish and upgrade Move packages, implement gas sponsorship and zkLogin, and debug transaction failures using error code references. - Use Case: Ask the agent to build a shared counter module, publish it to testnet, and increment it via a sponsored PTB, and it produces correct Move code plus TypeScript SDK calls with proper gas and object handling. ## Quick Start Use the sui skill to write a Move module for a shared counter and show me the TypeScript code to publish it on testnet and call its increment function.

Frequently Asked Questions about sui

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I build a Programmable Transaction Block on Sui?

Create a Transaction object from @mysten/sui/transactions, then chain commands like splitCoins, moveCall, and transferObjects. Commands can reference outputs of previous commands, and up to 1024 commands execute atomically in one transaction.

What is the difference between Sui Move and Aptos Move?

Sui Move uses an object-centric storage model where objects have UIDs and ownership, while Aptos Move uses global storage with move_to and borrow_global. Entry functions in Sui receive TxContext instead of a signer, and transfers use transfer::transfer rather than coin::transfer.

Is @mysten/sui.js still supported for Sui development?

No, @mysten/sui.js is deprecated and replaced by @mysten/sui. The TransactionBlock class was also renamed to Transaction. Uninstall the old package and update all imports to the new package paths.

When should I use shared objects versus owned objects on Sui?

Use owned objects for single-owner assets like NFTs and coins since transactions on different owned objects execute in parallel. Use shared objects only when multiple users must mutate the same state, because shared objects require consensus ordering and serialize access.

Why does my Sui transaction fail with ObjectVersionUnavailableForConsumption?

This optimistic concurrency error means another transaction modified the owned object after you read it. Refetch the object to get the latest version, rebuild the transaction, and resubmit it.

How do I debug a MoveAbort error on Sui?

Parse the abort output to identify the module address, name, and numeric code, then look up the code in the framework error tables, such as code 2 in sui::coin meaning ENotEnough. In the SDK, read result.effects.status.error after enabling showEffects.