Developer Resources

Key docs and dev tools for Sui Move development

Dev tools

Sui CLI

The Sui Client CLI guide walks you through setting up the CLI, which you'll use at least for publishing test Move packages and sending transactions to them. Depending on how you do the installation, it can take a while, so run it while you eat lunch.

  • See also the client ptb commend that allows you to build and execute programmable transaction blocks directly from your CLI, including through bash scripts.

IDEs

For a list of IDEs with Move plugins - including VS Code, IntelliJ, and Emacs - see here.

  • If using VSCode, in addition to what's listed at the link above, check out the move-analyzer extension. It includes helpful features like function and struct definitions on hover.

SDKs

  • For the list of official and community-built Sui SDKs, see here. You won't need one for the basic review of core concepts, which involves reading and writing Sui Move code. However, as you get into building a frontend or backend for an app they'll come in handy.
  • When using Shinami services to read and write to the blockchain, sponsor transactions, and perform embedded (Invisible) wallet operations, you'll want to use our Shinami Clients TypeScript SDK. When building a zkLogin app see also our Next.js zkLogin SDK.

Sui Explorer

To view your transactions and explore deployed packages, use suivision.xyz or suiscan.xyz. Make sure you're searching the correct network (Devnet, Testnet, Mainnet).


New to the language or need a refresher?

Core concepts with code examples

  • Let's Move Sui covers the basics - including Coins and NFTs - with short reading and coding exercises.
    • _Watch out: _the coding exercise solutions occasionally have a small issue (e.g. a changed or omitted variable name). It's not a huge issue - if you're following along you'll catch these and they're not a blocker. Also, by the time you read this maybe that's been fixed.
  • The Move Book is a comprehensive guide to Move and the Sui blockchain. It starts with core concepts - types of functions, data types, etc. It moves on to design patterns and key topics like time, error handling, etc.
    • This is a work in progress that gets semi-regular updates. Currently some topics are yet to be filled with content. Still, it's a good resource.

Coming from Move?

  • For a summary of the key differences between Move and Sui Move, see here.

Sui dev portal

  • The Sui Developer Portal has links to everything devs might be interested in, such as docs and tutorials, sample code, and how to join the next hackathon. Some of these links show up elsewhere in this doc, but it's a good resource to bookmark.

Example app tutorials

  • The Sui Foundation has app examples with sample Move and frontend code, and tutorials on how to create and run the apps.
    • Watch out: I found occasional issues with these - a Move module function that was missing in the docs but that was in the associated Github repo, a function call that gave me a deprecation warning in VSCode that I had to update. Nothing huge - just be aware that you may encounter a small issue or two. The fix will likely be clear.
  • For deploying and running a zkLogin wallet app that interacts with a simple module we've already deployed, see our Next.js App Template turorial .

Key topics

Coins and tokens

NFTs

  • Sui foundation doc on NFTs with links to key related docs like creating an NFT rental mechanism that could be used in gaming, ticketing, virtual land, subscriptions, and more (using Kiosks and the Kiosk App Standard).
  • For learning the basics, see the Let's Move Sui coding exercises for NFTs.

Transaction execution

  • Learn about the steps a transaction on the Sui network goes though, including when its results are processed and available for reading on Fullnodes in the Sui Foundation's Life of a Transaction doc. For tips on getting read-after-write consistency, with code examples, see our guidance.
  • Avoiding shared object contention in high throughput apps (e.g. with gas coins and AdminCaps): see our guidance, especially in cases where it makes sense for you to sponsor the transaction fee. See also Mysten's SerialTransactionExecutor and (experimental) ParallelTransactionExecutor for cases where you are performing non-sponsored transactions.

Beyond the basics

Sui Move source code

Best practices

Unit testing

For guidance on writing and running unit tests for your Move modules, see

  • The Unit Tests section of The Move Book.
  • The Sui docs on testing packages, including the section on the sui::test_scenario module that provides a scenario that emulates a series of Sui transactions, each with a potentially different user executing them.

Real-world code examples

There are a lot of great real-world examples of Move code. Here is just a small selection:

  • SPAM - "Spam to Earn" a.k.a. "Proof of Spam" on Sui.
  • Bidder: a decentralized platform for creating and bidding on auctions (code , app).

Have a question?

For help and tips from fellow Sui developers, see:


Stay up to date

  • Sui Discord Server: get free Testnet and Devnet Sui (testnet_faucet and devnet_faucet channels) and keep up with key announcements (dev_announcements, testnet_updates, mainnet_updates, annoucements, and other channels).
  • Sui on X for ecosystem announcements.
  • Sui monthly dev newsletter: follow for language and protocol changes, active Sui Improvement Proposals, and new tutorials/videos/tools/etc.
  • Sui Developer Roadmap lists key changes to Sui and tooling that has been completed or is being worked on.