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]
| Field | Required | Description |
|---|---|---|
name | Yes | The package name. |
edition | No | Move edition (for example, "2024"). |
implicit-dependencies | No | Set 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" }