Skip to content
Pre-Release: Fe is under active development. This documentation covers the upcoming release. Follow progress on GitHub

The Package Manager

Fe includes built-in package management through the fe command-line tool. This handles project creation, building, and dependency resolution.

Compile your Fe project:

Terminal window
fe build

This compiles all source files in src/ and resolves dependencies defined in fe.toml.

Verify your code compiles without producing output:

Terminal window
fe check

Useful for quick validation during development.

When you build a project, the Fe compiler:

  1. Reads fe.toml to find dependencies
  2. Resolves local path dependencies from the filesystem
  3. Fetches git dependencies from remote repositories
  4. Compiles dependencies before your project
  5. Makes dependency exports available for import

A typical development workflow:

  1. Create project structure with fe.toml and src/lib.fe
  2. Add dependencies to fe.toml as needed
  3. Write code in src/ directory
  4. Build with fe build to compile and check for errors
  5. Iterate on your code

When you run fe build, the compiler produces:

  • Compiled contract artifacts
  • ABI definitions for contract interfaces
  • Yul intermediate representation (optional)

Output location and format depend on your build configuration.

The Fe compiler provides helpful error messages:

error: Cannot find value `undefined_var` in this scope
--> src/lib.fe:10:5
|
10 | undefined_var
| ^^^^^^^^^^^^^ not found in this scope

Use these messages to locate and fix issues in your code.

See Dependencies to learn how to add external ingots to your project.