Sui Move Development
Comprehensive knowledge base for Sui blockchain and Move smart contract development.
Setup References
Clone the official documentation:
# Create skill directory
mkdir -p {baseDir}/references && cd {baseDir}/references
# Clone Move Book (The Move Language Bible)
git clone --depth 1 https://github.com/MystenLabs/move-book.git
# Clone Sui docs (sparse checkout)
git clone --depth 1 --filter=blob:none --sparse https://github.com/MystenLabs/sui.git
cd sui && git sparse-checkout set docs
Reference Structure
Move Book (references/move-book/book/)
| Directory |
Content |
your-first-move/ |
Hello World, Hello Sui tutorials |
move-basics/ |
Variables, functions, structs, abilities, generics |
concepts/ |
Packages, manifest, addresses, dependencies |
storage/ |
Object storage, UID, transfer functions |
object/ |
Object model, ownership, dynamic fields |
programmability/ |
Events, witness, publisher, display |
move-advanced/ |
BCS, PTB, cryptography |
guides/ |
Testing, debugging, upgrades, BCS |
appendix/ |
Glossary, reserved addresses |
Sui Docs (references/sui/docs/content/)
- Concepts, guides, standards, references
Quick Search
# Search Move Book for a topic
rg -i "keyword" {baseDir}/references/move-book/book/ --type md
# Search Sui docs
rg -i "keyword" {baseDir}/references/sui/docs/ --type md
# Find all files about a topic
find {baseDir}/references -name "*.md" | xargs grep -l "topic"
Key Concepts
Move Language Basics
Abilities - Type capabilities:
copy - Can be copied
drop - Can be dropped (destroyed)
store - Can be stored in objects
key - Can be used as a key in global storage (objects)
public struct MyStruct has key, store {
id: UID,
value: u64
}
Object Model:
- Every object has a unique
UID
- Objects can be owned (address), shared, or immutable
- Transfer functions:
transfer::transfer, transfer::share_object, transfer::freeze_object
Common Patterns
Create and Transfer Object:
public fun create(ctx: &mut TxContext) {
let obj = MyObject {
id: object::new(ctx),
value: 0
};
transfer::transfer(obj, tx_context::sender(ctx));
}
Shared Object:
public fun create_shared(ctx: &mut TxContext) {
let obj = SharedObject {
id: object::new(ctx),
counter: 0
};
transfer::share_object(obj);
}
Entry Functions:
public entry fun do_something(obj: &mut MyObject, value: u64) {
obj.value = value;
}
CLI Commands
# Create new project
sui move new my_project
# Build
sui move build
# Test
sui move test
# Publish
sui client publish --gas-budget 100000000
# Call function
sui client call --package <PACKAGE_ID> --module <MODULE> --function <FUNCTION> --args <ARGS>
# Get object
sui client object <OBJECT_ID>
Workflow
When answering Sui/Move questions:
Search references first:
rg -i "topic" {baseDir}/references/move-book/book/ -l
Read relevant files:
cat {baseDir}/references/move-book/book/<path>/<file>.md
Provide code examples from the references
Link to official docs when helpful:
Topics Index
| Topic |
Location |
| Hello World |
move-book/book/your-first-move/hello-world.md |
| Hello Sui |
move-book/book/your-first-move/hello-sui.md |
| Primitives |
move-book/book/move-basics/primitive-types.md |
| Structs |
move-book/book/move-basics/struct.md |
| Abilities |
move-book/book/move-basics/abilities-introduction.md |
| Generics |
move-book/book/move-basics/generics.md |
| Object Model |
move-book/book/object/ |
| Storage |
move-book/book/storage/ |
| Events |
move-book/book/programmability/events.md |
| Testing |
move-book/book/guides/testing.md |
| Upgrades |
move-book/book/guides/upgradeability.md |
| PTB |
move-book/book/move-advanced/ptb/ |
| BCS |
move-book/book/move-advanced/bcs.md |
Notes
- Move 2024 edition introduces new features (enums, method syntax, etc.)
- Sui uses a unique object-centric model different from other blockchains
- Gas is paid in SUI tokens
- Testnet/Devnet available for development
1---2name: sui-move3description: Sui blockchain and Move smart contract development. Use when the user asks about Sui, Move language, smart contracts, objects, transactions, or blockchain development on Sui.4---56# Sui Move Development78Comprehensive knowledge base for Sui blockchain and Move smart contract development.910## Setup References1112Clone the official documentation:1314```bash15# Create skill directory16mkdir -p {baseDir}/references && cd {baseDir}/references1718# Clone Move Book (The Move Language Bible)19git clone --depth 1 https://github.com/MystenLabs/move-book.git2021# Clone Sui docs (sparse checkout)22git clone --depth 1 --filter=blob:none --sparse https://github.com/MystenLabs/sui.git23cd sui && git sparse-checkout set docs24```2526## Reference Structure2728### Move Book (`references/move-book/book/`)29| Directory | Content |30|-----------|---------|31| `your-first-move/` | Hello World, Hello Sui tutorials |32| `move-basics/` | Variables, functions, structs, abilities, generics |33| `concepts/` | Packages, manifest, addresses, dependencies |34| `storage/` | Object storage, UID, transfer functions |35| `object/` | Object model, ownership, dynamic fields |36| `programmability/` | Events, witness, publisher, display |37| `move-advanced/` | BCS, PTB, cryptography |38| `guides/` | Testing, debugging, upgrades, BCS |39| `appendix/` | Glossary, reserved addresses |4041### Sui Docs (`references/sui/docs/content/`)42- Concepts, guides, standards, references4344## Quick Search4546```bash47# Search Move Book for a topic48rg -i "keyword" {baseDir}/references/move-book/book/ --type md4950# Search Sui docs51rg -i "keyword" {baseDir}/references/sui/docs/ --type md5253# Find all files about a topic54find {baseDir}/references -name "*.md" | xargs grep -l "topic"55```5657## Key Concepts5859### Move Language Basics6061**Abilities** - Type capabilities:62- `copy` - Can be copied63- `drop` - Can be dropped (destroyed)64- `store` - Can be stored in objects65- `key` - Can be used as a key in global storage (objects)6667```move68public struct MyStruct has key, store {69 id: UID,70 value: u6471}72```7374**Object Model**:75- Every object has a unique `UID`76- Objects can be owned (address), shared, or immutable77- Transfer functions: `transfer::transfer`, `transfer::share_object`, `transfer::freeze_object`7879### Common Patterns8081**Create and Transfer Object**:82```move83public fun create(ctx: &mut TxContext) {84 let obj = MyObject {85 id: object::new(ctx),86 value: 087 };88 transfer::transfer(obj, tx_context::sender(ctx));89}90```9192**Shared Object**:93```move94public fun create_shared(ctx: &mut TxContext) {95 let obj = SharedObject {96 id: object::new(ctx),97 counter: 098 };99 transfer::share_object(obj);100}101```102103**Entry Functions**:104```move105public entry fun do_something(obj: &mut MyObject, value: u64) {106 obj.value = value;107}108```109110## CLI Commands111112```bash113# Create new project114sui move new my_project115116# Build117sui move build118119# Test120sui move test121122# Publish123sui client publish --gas-budget 100000000124125# Call function126sui client call --package <PACKAGE_ID> --module <MODULE> --function <FUNCTION> --args <ARGS>127128# Get object129sui client object <OBJECT_ID>130```131132## Workflow133134When answering Sui/Move questions:1351361. **Search references first**:137 ```bash138 rg -i "topic" {baseDir}/references/move-book/book/ -l139 ```1401412. **Read relevant files**:142 ```bash143 cat {baseDir}/references/move-book/book/<path>/<file>.md144 ```1451463. **Provide code examples** from the references1471484. **Link to official docs** when helpful:149 - Move Book: https://move-book.com150 - Sui Docs: https://docs.sui.io151152## Topics Index153154| Topic | Location |155|-------|----------|156| Hello World | `move-book/book/your-first-move/hello-world.md` |157| Hello Sui | `move-book/book/your-first-move/hello-sui.md` |158| Primitives | `move-book/book/move-basics/primitive-types.md` |159| Structs | `move-book/book/move-basics/struct.md` |160| Abilities | `move-book/book/move-basics/abilities-introduction.md` |161| Generics | `move-book/book/move-basics/generics.md` |162| Object Model | `move-book/book/object/` |163| Storage | `move-book/book/storage/` |164| Events | `move-book/book/programmability/events.md` |165| Testing | `move-book/book/guides/testing.md` |166| Upgrades | `move-book/book/guides/upgradeability.md` |167| PTB | `move-book/book/move-advanced/ptb/` |168| BCS | `move-book/book/move-advanced/bcs.md` |169170## Notes171172- Move 2024 edition introduces new features (enums, method syntax, etc.)173- Sui uses a unique object-centric model different from other blockchains174- Gas is paid in SUI tokens175- Testnet/Devnet available for development