sui

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

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

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires @mysten/sui, @mysten/zklogin.

What problem does it solve? AI agents frequently produce outdated or incorrect Sui code — confusing Sui Move with Aptos Move, using the deprecated @mysten/sui.js package, or misunderstanding the object ownership model — leading to failed transactions and broken integrations. ## Core Features & Use Cases - Sui Move Development: Write 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 (up to 1024 commands) using the current @mysten/sui SDK. - Full Lifecycle Support: Publish and upgrade packages, implement zkLogin authentication, gas sponsorship, Kiosk trading, and diagnose transaction failures with error-code references. - Use Case: Ask the agent to deploy a shared counter module to testnet, then build a sponsored PTB that increments it — it will produce correct Move code, publish via CLI or SDK, and handle gas sponsorship signatures. ## Quick Start Use the sui skill to write and deploy a Move counter module on testnet and call its increment function from a TypeScript PTB.

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 from @mysten/sui/transactions, then chain commands like splitCoins, moveCall, and transferObjects where later commands reference earlier outputs. Sign and execute with client.signAndExecuteTransaction; all commands run atomically up to 1024 per PTB.

What is the difference between Sui Move and Aptos Move?

Sui Move uses an object-centric storage model where objects have UIDs and ownership, instead of Aptos's global storage with move_to and borrow_global. Entry functions take &mut TxContext rather than &signer, and transfers use transfer::transfer on objects.

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

No, @mysten/sui.js is deprecated. Install @mysten/sui and update imports — SuiClient comes from @mysten/sui/client, and TransactionBlock was renamed to Transaction in @mysten/sui/transactions.

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

Use owned objects for single-owner assets like coins and NFTs so transactions parallelize without consensus. Use shared objects only when multiple users must mutate the same state, since 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.

How do I sponsor gas for Sui transactions?

Build the Transaction with setSender set to the user and setGasOwner set to the sponsor, then have both parties sign the built transaction bytes. Execute with client.executeTransaction passing both signatures in the signature array.