sui-move

Explain Sui Move smart contract patterns for objects, events, and coins.

10|5|Updated Mar 13, 2026
One-click install
npx skills add https://github.com/MystenLabs/skills --skill sui-move
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: sui-move
Source: https://github.com/MystenLabs/skills/tree/main/sui-move
Command: npx skills add https://github.com/MystenLabs/skills --skill sui-move

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Sui Move smart contract developers need a reliable way to write correct, secure Move code for the Sui object model without running into ownership, initialization, time, event, or coin-handling pitfalls.

Core Features & Use Cases

  • Move language foundations for Sui: covers abilities (key, store, copy, drop), structs/objects, resource safety, modules/packages, and common ownership patterns.
  • Transaction context and precise time: explains TxContext usage (e.g., ctx.sender(), ctx.epoch(), ctx.epoch_timestamp_ms()) and how to use the shared Clock object for precise timestamps.
  • Publishing, upgrades, and initialization: documents init functions, One-Time Witness (OTW), package publishing behavior, and upgrade policies controlled by UpgradeCap.
  • Events and fungible coins: teaches how to emit events and how to use the standard coin APIs for creating currencies (including regulated coins), minting/burning, splitting, and joining.
  • Security and correctness guardrails: includes rules (e.g., UID creation and deletion patterns), common mistakes, and a focused access-control/security review checklist.
  • Routing to the right references: loads only the relevant reference files for the user’s task (Move fundamentals vs events/coins) to keep reasoning targeted.

Quick Start

Use the sui-move skill to explain what went wrong in a Move compile error or to guide the correct pattern for implementing abilities, init/OTW, event emission, or fungible token logic in Sui.

Frequently Asked Questions about sui-move

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

FAQPage Schema
How do I create and delete objects correctly in Sui Move smart contracts?

To create Sui Move objects correctly, generate a UID using object::new(ctx) and ensure explicit UID deletion via object::delete(id) to maintain resource safety and avoid runtime logic mistakes.

How do I implement fungible or regulated coins in Sui Move?

Implementing fungible coins in Sui Move involves using the standard coin APIs to create currencies, manage minting and burning, and handle splitting and joining operations according to docs.sui.io guidelines.

What abilities does a Sui Move event struct need?

A Sui Move event struct requires specific abilities to ensure proper emission and resource safety, following the technical rules outlined in the move-book.com documentation for event handling.

How do I control package upgrades in Sui Move?

Control Sui Move package upgrades by using the UpgradeCap to enforce upgrade policies, alongside proper initialization with init functions and One-Time Witness (OTW) patterns during package publishing.

How do I get precise timestamps in Sui Move smart contracts?

Get precise timestamps in Sui Move smart contracts by using the shared Clock object for accurate time data, or access transaction context data like ctx.epoch_timestamp_ms() via TxContext.

What is included in a Sui Move security review checklist?

A Sui Move security review checklist includes verifying UID creation and deletion patterns, checking access-control rules, and troubleshooting common compile and runtime logic mistakes for resource safety.