Determine contract-id for a contract. For workspaces outputs all contract ids in the workspace


forc contract-id [OPTIONS]



Print the generated Sway AST (Abstract Syntax Tree)

--build-profile <BUILD_PROFILE>

The name of the build profile to use

[default: debug]

--dca-graph <DCA_GRAPH>

Print the computed Sway DCA graph. DCA graph is printed to the specified path. If specified '' graph is printed to stdout

--dca-graph-url-format <DCA_GRAPH_URL_FORMAT>

Specifies the url format to be used in the generated dot file. Variables {path}, {line} {col} can be used in the provided format. An example for vscode would be: "vscode://file/{path}:{line}:{col}"


Treat warnings as errors


Experimental flag for the "new encoding" feature


Print the finalized ASM.

This is the state of the ASM with registers allocated and optimisations applied.

-g, --output-debug <DEBUG_FILE>

Create a file containing debug information at the provided path. If the file extension is .json, JSON format is used. Otherwise, an ELF file containing DWARF is emitted

-h, --help

Print help information


Print the generated ASM.

This is the state of the ASM prior to performing register allocation and other ASM optimisations.

--ipfs-node <IPFS_NODE>

The IPFS Node to use for fetching IPFS sources.

Possible values: PUBLIC, LOCAL, <GATEWAY_URL>


Print the generated Sway IR (Intermediate Representation)


By default the JSON for ABIs is formatted for human readability. By using this option JSON output will be "minified", i.e. all on one line without whitespace


Outputs json abi with callpaths instead of names for struct and enums


By default the JSON for initial storage slots is formatted for human readability. By using this option JSON output will be "minified", i.e. all on one line without whitespace

-L, --log-level <LOG_LEVEL>

Set the log level


Requires that the Forc.lock file is up-to-date. If the lock file is missing, or it needs to be updated, Forc will exit with an error

--metrics-outfile <METRICS_OUTFILE>

Output compilation metrics into file

-o, --output-bin <BIN_FILE>

Create a binary file representing the script bytecode at the provided path


Offline mode, prevents Forc from using the network when managing dependencies. Meaning it will only try to use previously downloaded dependencies

--output-directory <OUTPUT_DIRECTORY>

The directory in which the sway compiler output artifacts are placed.

By default, this is <project-root>/out.

-p, --path <PATH>

Path to the project, if not specified, current working directory will be used


Use the release build profile. The release profile can be customized in the manifest file


Output build errors and warnings in reverse order

-s, --silent

Silence all output

--salt <SALT>

Added salt used to derive the contract ID.

By default, this is 0x0000000000000000000000000000000000000000000000000000000000000000.

-t, --terse

Terse mode. Limited warning and error output


Output the time elapsed over each part of the compilation process

-v, --verbose

Use verbose output

-V, --version

Print version information


Get contract id

forc contract-id

Get contract id from a different path

forc contract-id --path