sui-install

Use when installing or updating the Sui CLI, managing CLI versions with suiup, or resolving environment/setup problems — "install sui", "update sui", "command not found", "sui not found", "client/server api version mismatch", build errors about "old dependencies", switching CLI versions per network, or installing toolchain components (Walrus, MVR, Move Analyzer, site-builder). Also use for first-time client setup, getting faucet tokens, recovering keys from a phrase, or "Cannot find gas coin for signer address". For deploying/upgrading packages use sui-deployer; for on-chain data queries use sui-ts-sdk.

Best use case

sui-install is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Use when installing or updating the Sui CLI, managing CLI versions with suiup, or resolving environment/setup problems — "install sui", "update sui", "command not found", "sui not found", "client/server api version mismatch", build errors about "old dependencies", switching CLI versions per network, or installing toolchain components (Walrus, MVR, Move Analyzer, site-builder). Also use for first-time client setup, getting faucet tokens, recovering keys from a phrase, or "Cannot find gas coin for signer address". For deploying/upgrading packages use sui-deployer; for on-chain data queries use sui-ts-sdk.

Teams using sui-install should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/sui-install/SKILL.md --create-dirs "https://raw.githubusercontent.com/first-mover-tw/sui-dev-agents/main/skills/sui-install/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/sui-install/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How sui-install Compares

Feature / Agentsui-installStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Use when installing or updating the Sui CLI, managing CLI versions with suiup, or resolving environment/setup problems — "install sui", "update sui", "command not found", "sui not found", "client/server api version mismatch", build errors about "old dependencies", switching CLI versions per network, or installing toolchain components (Walrus, MVR, Move Analyzer, site-builder). Also use for first-time client setup, getting faucet tokens, recovering keys from a phrase, or "Cannot find gas coin for signer address". For deploying/upgrading packages use sui-deployer; for on-chain data queries use sui-ts-sdk.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# SUI Install & Environment Setup

> Source: docs.sui.io (via MystenLabs/skills). Commands use the `@network` suffix rather than pinned version numbers — the CLI version must match the network's protocol version.

Covers machine setup and environment problems: installing/updating the CLI, fixing version mismatches, first-time client config, and getting test tokens. For deployment/upgrade see `sui-deployer`; for gas-model/epoch/network concepts see `sui-developer`; for on-chain data queries see `sui-ts-sdk`.

## Installing & updating with suiup

`suiup` is the official installer and version manager for the Sui toolchain (Sui CLI, Walrus, MVR, Move Analyzer).

```bash
curl -sSfL https://raw.githubusercontent.com/MystenLabs/suiup/main/install.sh | sh
```

Then install the CLI for a specific network — the version MUST match the network or you get build/publish failures:

```bash
suiup install sui@testnet     # Testnet-compatible CLI
suiup install sui@mainnet     # Mainnet-compatible CLI
```

| Command | Syntax | What it does |
|---|---|---|
| `install` | `suiup install sui@testnet` | Download + install a binary for a network |
| `update` | `suiup update sui@testnet` | Download the latest version (does NOT switch to it) |
| `switch` | `suiup switch sui@testnet` | Make the latest installed version for a network the active default |
| `show` | `suiup show` | List installed binaries with versions + which is default |
| `status` | `suiup status` | Show which binaries have updates available + the command to update |
| `self update` | `suiup self update` | Update suiup itself |

- **`update` does NOT switch.** After `suiup update sui@testnet` you must `suiup switch sui@testnet` to actually use the new version.
- `switch` takes a single `binary@network` argument (`sui@testnet`, `walrus@testnet`, `move-analyzer@testnet`) — NOT positional args like `suiup switch sui testnet v1.70.2`.
- **Windows:** `curl | sh` needs a Unix shell — use WSL, or `choco install sui` (Chocolatey).
- **Alternatives:** `brew install sui` (macOS/Linux), `choco install sui` (Windows). These can NOT install extra Stack components (Walrus, MVR) and may be slow on first run.

### Optional toolchain components

Install only when explicitly needed, then switch each one:

```bash
suiup install move-analyzer   # Move Language Server
suiup install mvr             # Move Registry CLI (onchain package manager)
suiup install walrus          # Walrus decentralized-storage CLI
suiup install site-builder    # Walrus site builder
suiup switch move-analyzer@testnet
suiup switch walrus@testnet
```

## Version mismatch troubleshooting

The CLI version must match the network you target — each network runs a specific protocol version.

- **`client/server api version mismatch` warning** = your local CLI is older than the network. Do NOT ignore it — it causes build failures and unexpected behavior. Fix:

  ```bash
  suiup update sui@testnet      # download latest
  suiup switch sui@testnet      # make it active
  suiup show                    # verify which version is now active
  ```

- **"sui not found" / command not found** → `suiup switch sui@testnet` to set the active default. Do NOT suggest manual `export PATH=...` or reinstalling — `suiup switch` is the correct fix.
- **Build errors mentioning "old dependencies"**, transaction/publish failures, or odd behavior after a network upgrade are common mismatch symptoms.
- Diagnose with:

  ```bash
  sui --version                 # your installed version
  sui client active-env         # which network you target
  ```

## First-time client setup

Running `sui client` for the first time prompts to create a config — accept the default (Enter / `Y`), or skip the prompt with `sui client -y`. It generates a key pair + address, a 12-word recovery phrase (shown ONCE — save it immediately), and `client.yaml`.

Config + key locations:

- macOS/Linux: `~/.sui/sui_config/client.yaml` and `~/.sui/sui_config/sui.keystore`
- Windows: `%USERPROFILE%\.sui\sui_config\client.yaml` (and `sui.keystore`)

`sui.keystore` holds Base64-encoded private keys — it is NOT your machine's system keychain.

Recover an address from a recovery phrase (entire phrase in single quotes, correct order):

```bash
sui keytool import '<12-WORD-PHRASE>' ed25519
```

### Address & environment management

| Command | Purpose |
|---|---|
| `sui client active-env` | Show current network |
| `sui client active-address` | Show current address |
| `sui client envs` | List configured environments |
| `sui client switch --env devnet` | Switch network (do NOT hand-edit client.yaml) |
| `sui client switch --address <ADDRESS>` | Switch active address |
| `sui client new-address ed25519` | Create a new address |
| `sui client addresses` | List local addresses + aliases |
| `sui client balance` | Check SUI balance |
| `sui client gas` | List gas coin objects |

## Getting test tokens (faucet)

Testnet/Devnet tokens are free and have no value.

| Method | How |
|---|---|
| Web faucet | `faucet.sui.io` — enter address, pick network, request |
| CLI (Devnet/Localnet ONLY) | `sui client faucet` |
| TypeScript SDK | `requestSuiFromFaucetV2()` from the `@mysten/sui/faucet` sub-export |
| Discord | `!faucet <ADDRESS>` in `#devnet-faucet` / `#testnet-faucet` |

> **`sui client faucet` works on Devnet and Localnet ONLY — NOT Testnet.** For Testnet tokens use the web faucet at `faucet.sui.io` or another method. NEVER suggest `sui client faucet` for Testnet. Faucets are rate-limited.

## Coin management

"Cannot find gas coin for signer address" or many tiny coins but none big enough for gas → merge with `sui client ptb`:

```bash
# Merge one coin into another
sui client ptb --merge-coins @0xPRIMARY_COIN_ID "[@0xCOIN_TO_MERGE_ID]"
# Merge several at once
sui client ptb --merge-coins @0xPRIMARY_COIN_ID "[@0xCOIN_A, @0xCOIN_B, @0xCOIN_C]"
```

Use `sui client ptb` for all CLI transaction operations — avoid legacy single-purpose helpers (`merge-coin`, `split-coin`, `transfer`) which are less composable and may be deprecated.

## Explorers

Inspect transactions/objects/addresses with SuiVision (`suivision.xyz`) or Suiscan (`suiscan.xyz`). Use `sui replay` to locally re-execute a past transaction for debugging.

Related Skills

sui-zklogin

7
from first-mover-tw/sui-dev-agents

Use when implementing zkLogin on SUI — OAuth login (Google, Facebook, Apple, Twitch) with zero-knowledge proofs for privacy-preserving authentication. Triggers on "zkLogin", "social login on SUI", "Google login", "OAuth", "ephemeral keypair", "JWT proof", or any authentication flow that derives a SUI address from an OAuth provider. Also use when the user mentions "login without wallet extension".

sui-walrus

7
from first-mover-tw/sui-dev-agents

Use when storing or retrieving files using Walrus — SUI's decentralized blob storage. Triggers on "Walrus", "blob storage", "upload file to chain", "decentralized storage", "store NFT image", "IPFS alternative on SUI", "where to store NFT metadata", "host a site on-chain", or any off-chain data storage needs on SUI. Also use for Walrus Sites (decentralized web hosting), storing game assets, media files, or when the user asks "where do I put large files on SUI".

sui-wallet

7
from first-mover-tw/sui-dev-agents

Use when performing on-chain transactions (transfer, Move call, publish) through the agent's CLI wallet via MCP tools. Triggers on "transfer SUI", "call Move function", "publish package", "wallet status", "sign transaction", or any agent-driven on-chain operation. This is for headless/backend wallet operations — for browser wallet UI (React/Vue), use sui-frontend instead.

sui-tester

7
from first-mover-tw/sui-dev-agents

Use when writing Move tests, setting up test suites, running gas benchmarks, or planning test strategy for SUI contracts. Triggers on "write tests", "test this module", "#[test]", "test coverage", "gas benchmark", "property-based test", or any Move testing task. Use even for simple "how do I test this function" questions.

sui-suins

7
from first-mover-tw/sui-dev-agents

Use when integrating SuiNS (SUI Name Service) — resolving .sui names to addresses, reverse lookups, or registering names. Triggers on "SuiNS", ".sui name", "name resolution", "reverse lookup", "human-readable address", or any name service integration. Also use when the user wants to display user-friendly names instead of hex addresses.

sui-security-guard

7
from first-mover-tw/sui-dev-agents

Use when setting up security scanning, detecting leaked secrets/API keys, implementing pre-commit hooks, or auditing a Sui Move contract for security/architecture/quality issues. Triggers on "security scan", "detect secrets", "pre-commit hook", "security audit setup", "API key leaked", and on contract-level review requests like "audit this contract", "review access control", "is this Move safe", "check for vulnerabilities", "Move security review" — these load the SEC/DES/PAT/TST/QA/CFG finding registry in references/move-security-findings.md. For offensive/adversarial testing (attack vector discovery, writing exploits/PoCs), use sui-red-team instead. For Move style/idiom quality (non-security), use move-code-quality.

sui-seal

7
from first-mover-tw/sui-dev-agents

Use when implementing data encryption, access control, or secrets management on SUI using the Seal protocol. Triggers on threshold encryption, data privacy, token-gated content, encrypted storage, decryption policies, paywall, gated access, encrypted NFT metadata, private data sharing, or any scenario requiring on-chain access control for off-chain data. Also use when the user mentions Seal, pay-to-decrypt, "only NFT holders can see", or subscriber-only content on SUI.

sui-red-team

7
from first-mover-tw/sui-dev-agents

Use when performing adversarial security testing on SUI Move contracts — generating attack tests for access control bypass, integer overflow, object manipulation, economic exploits, reentrancy, and DoS vectors. Triggers on "red team", "attack test", "find vulnerabilities", "exploit", "pentest", "security test", or when the user wants to stress-test their contract's security. For defensive security setup (scanning, hooks, checklists), use sui-security-guard instead.

sui-passkey

7
from first-mover-tw/sui-dev-agents

Use when implementing WebAuthn passkeys or biometric authentication (Face ID, fingerprint, hardware keys) on SUI. Triggers on "passkey", "WebAuthn", "biometric login", "Face ID", "fingerprint auth", "FIDO2", or passwordless auth that uses device authenticators instead of seed phrases. Different from zkLogin (which uses OAuth providers).

sui-nautilus

7
from first-mover-tw/sui-dev-agents

Use when building verifiable off-chain computation, integrating external APIs with on-chain proof, or running trusted execution environments on SUI. Triggers on Nautilus, off-chain oracle, "verify API data on-chain", "connect external API to Move", "prove off-chain result", trusted compute, AWS Nitro Enclave, attestation, price feed, weather data on-chain, or any scenario requiring cryptographically verified external data. Also use when the user asks "how do I get real-world data into my SUI contract" or needs an oracle-like pattern.

sui-kiosk

7
from first-mover-tw/sui-dev-agents

Use when building NFT marketplaces, enforcing royalties, or managing transfer policies using SUI's Kiosk standard. Triggers on "Kiosk", "NFT marketplace", "transfer policy", "royalty enforcement", "list NFT for sale", "purchase rules", or any NFT commerce on SUI. Also use when the user asks about listing, delisting, or trading NFTs with enforced rules.

sui-indexer

7
from first-mover-tw/sui-dev-agents

Use when building custom indexers, data pipelines, or event processors for the SUI blockchain. Triggers on "indexer", "data pipeline", "backfill", "event processor", "index transactions", "analytics dashboard", "aggregate on-chain data", "historical query", "track all trades", or any custom data extraction from SUI chain history. Also use when the user needs to build dashboards from on-chain data, process historical transactions, or set up real-time event streams.