Skip to main content

Manifest Reference

Explore examples of package manifest files.

This section provides the structure and available fields for Move.toml, along with sample manifests you can use as templates.

Move.toml structure

A Move.toml manifest can contain the following top-level sections:

[package]
name = "<package-name>"
# Optional: edition = "2024"
# Optional: implicit-dependencies = false

[dependencies]
# Package dependencies (mvr, git, local, or system)

[environments]
# Custom environment definitions mapping names to chain IDs

[dep-replacements.<env>]
# Environment-specific dependency overrides

[package]

FieldRequiredDescription
nameYesThe package name.
editionNoMove edition (for example, "2024").
implicit-dependenciesNoSet to false to exclude the default std and sui dependencies.

[dependencies]

Lists the packages your project depends on. See dependency types for the available formats (mvr, git, local, system).

[environments]

Maps custom environment names to chain identifiers. The mainnet and testnet environments are implicitly available and do not need to be listed.

Chain IDs accept either format interchangeably:

  • Hex (short form) — the first 4 bytes of the genesis checkpoint digest, hex-encoded (for example, "aba3e445").
  • Base58 (full form) — the complete genesis checkpoint digest, Base58-encoded (for example, "69WiPg3DAQhKenaFN9I6pYc7MYk...").

The package system compares chain IDs by their underlying bytes, so a Hex value in the manifest matches a Base58 value from the CLI and vice versa.

Use sui client chain-identifier to look up both formats for the network you are connected to.

[dep-replacements.<env>]

Overrides dependencies for a specific environment. See environment-specific dependencies for details.

Example manifests

For a basic project that only depends on sui and std, the minimal manifest is:

[package]
name = "example"

For a package that has a mvr dependency and a git dependency with different Mainnet and Testnet branches:

[package]
name = "example"

[dependencies]
ascii = { r.mvr = "@potatoes/ascii" }
usdc = { git = "https://github.com/circlefin/stablecoin-sui.git", subdir = "packages/usdc", rev = "releases/testnet" }

[dep-replacements.mainnet]
usdc = { git = "https://github.com/circlefin/stablecoin-sui.git", subdir = "packages/usdc", rev = "releases/mainnet" }

For a package that defines a testnet_alpha environment (chain IDs can be Hex or Base58):

[package]
name = "example"

[environments]
# Hex (short form) and Base58 (full form) are both valid
testnet_alpha = "4c78adac"

[dependencies]
ascii = { r.mvr = "@potatoes/ascii" }
usdc = { git = "https://github.com/circlefin/stablecoin-sui.git", subdir = "packages/usdc", rev = "releases/testnet" }

[dep-replacements.mainnet]
usdc = { git = "https://github.com/circlefin/stablecoin-sui.git", subdir = "packages/usdc", rev = "releases/testnet" }

[dep-replacements.testnet_alpha]
ascii = { use-environment = "ascii" }
usdc = { use-environment = "testnet" }