v0.0.15

Fever CLI Documentation

Complete guide to deploying smart contracts with Fever CLI. From installation to production deployments.

New to Fever CLI? Start with the Quickstart!

Before diving into the reference documentation, we highly recommend starting with our comprehensive hands-on quickstart. Learn by deploying a real DeFi lending system and discover the power of manifest-driven deployment, from simple ERC20 tokens to complex Diamond Proxy architectures.

15-20 minutes
Beginner to Advanced
Full Example Project

Installation

Install Fever CLI globally from npm to get started with smart contract development.

Global Installation

Install from npm registry

Install globally
bash
npm install -g @fevertokens/cli
📋 Verify Installation
bash
fever --version

Should display the current version

Compilation

Fever CLI automatically detects Solidity versions and compiles contracts with optimization enabled.

Compile all contracts

bash
fever compile --all

Compiles all contracts in the contracts/ directory

Compile specific contract

bash
fever compile MyToken

Compiles a specific contract by name

Custom source directory

bash
fever compile --all --source src/contracts

Specify a different source directory

Compilation Features
Automatic version detectionReads pragma statements
Optimization enabledruns: 10000, viaIR: true
Artifact generationSaves to .fever/ directory
Function selectorsFor diamond proxy support

Deployment

Deploy smart contracts using YAML manifest files with environment variable support.

Deploy using manifest

bash
fever deploy -f deployment.yml

Deploy contract using YAML configuration

Environment variables

bash
# deployment.yml uses {PRIVATE_KEY} syntax PRIVATE_KEY=0x123...
fever deploy -f deployment.yml

Reference environment variables in manifests

Deployment Features
Gas optimizationEIP-1559 with fallbacks
Contract verificationAutomatic block explorer verification
Environment substitutionSafe handling of secrets
Transaction monitoringAutomatic confirmation waiting

Diamond Proxy Systems

Build complex, upgradeable contract systems using the Diamond Proxy pattern (EIP-2535).

Deploy diamond system

bash
fever compose -f diamond-system.yml

Compose multiple facets into a diamond proxy

Features

  • • Facet cut operations (Add/Replace/Remove)
  • • Function selector management
  • • Cross-contract dependency resolution
  • • Initializer function support
  • • Selector conflict detection
Diamond Benefits
Unlimited contract sizeNo 24KB bytecode limit
Modular upgradesUpdate specific facets only
Single proxy addressStable contract interface

Platform Integration

Connect to the Fever Web Platform for project management, artifact synchronization, and team collaboration.

Authenticate with platform

bash
fever auth login

Secure device-code flow authentication

Check authentication status

bash
fever auth status

Sign out from platform

bash
fever auth logout

List projects

bash
fever projects

Create new project

bash
fever projects create --name "My Project"

Select active project

bash
fever projects select

Smart sync artifacts

bash
fever artifacts sync

Only syncs changed contracts (70-90% bandwidth savings)

Check artifact status

bash
fever artifacts status

Git-like visual status display

Download artifacts

bash
fever artifacts download

Local Development

Fever CLI provides local blockchain node management for rapid development and testing.

Start local node (auto-detect)

bash
fever node

Automatically starts Anvil (preferred) or Ganache

Custom port and chain ID

bash
fever node --port 8545 --chain-id 1337

Fork mainnet

bash
fever node --fork https://eth-mainnet.alchemyapi.io/v2/YOUR_KEY

Force specific tool

bash
fever node --tool anvil --verbose

List available tools

bash
fever node --list
Supported Tools
Anvil (Foundry)Fast, Rust-based (preferred)
GanacheJavaScript-based, reliable

Manifest Files

Define your deployment and composition configurations using YAML manifest files (currently in beta).

Deployment Manifest

For single contract deployments:

yaml
apiVersion: beta/v1
kind: Deployment
metadata:
  name: stablecoin-contract
  version: 1.0.0

spec:
  deployer:
    wallet:
      type: privateKey
      value: "${PRIVATE_KEY}"
    gasSettings:
      gasLimit: 3000000

  package:
    name: StableCoin

  constructorArgs:
    - name: "name_"
      type: "string"
      value: "MockUSDC"
    - name: "symbol_"
      type: "string"
      value: "mUSDC"
    - name: "decimals_"
      type: "uint8"
      value: 6

  network:
    chainId: "${CHAIN_ID}"
    rpcUrl: "${RPC_URL}"

Diamond Manifest

For complex multi-facet diamond proxy systems:

yaml
apiVersion: beta/v1
kind: Diamond
metadata:
  name: microloan-diamond
  version: 1.0.0

spec:
  deployer:
    wallet:
      type: privateKey
      value: "${PRIVATE_KEY}"

  dependencies:
    packageViewer:
      name: PackageViewer
    packageController:
      name: PackageController
    loanRegistry:
      name: LoanRegistry
    loanFunding:
      name: LoanFunding
    loanRepayment:
      name: LoanRepayment
    loanTokenManager:
      name: LoanTokenManager

  diamond:
    name: MicroLoanDiamond
    constructorArguments:
      - $dependencies.packageController.address
      - $dependencies.packageViewer.address
      - "${ADMIN_ADDRESS}" # Admin/Owner address

  packages:
    - name: LoanRegistry
      functions:
        - "0xc19fa698" # createLoan(...)
        - "0x504006ca" # getLoan(uint256)
      address: $dependencies.loanRegistry.address

    - name: LoanFunding
      functions:
        - "0x846b909a" # fundLoan(uint256)
      address: $dependencies.loanFunding.address

    - name: LoanRepayment
      functions:
        - "0x84068d15" # repayNextInstallment(uint256)
      address: $dependencies.loanRepayment.address

    - name: LoanTokenManager
      functions:
        - "0xf7888aec" # balanceOf(address,address)
        - "0x47e7ef24" # deposit(address,uint256)
        - "0xf3fef3a3" # withdraw(address,uint256)
      address: $dependencies.loanTokenManager.address

  network:
    chainId: "${CHAIN_ID}"
    rpcUrl: "${RPC_URL}"
⚠️ Beta Format
The manifest file format is currently in beta. The schema may change in future releases. Use environment variables like ${PRIVATE_KEY} for sensitive data.

License

This software is licensed under the FeverTokens Proprietary Base Code License.

Key Terms

Summary of license permissions and restrictions

Use as integrated component in your products

You may use Fever CLI as part of your integrated applications and products.

Create derivative works within your products

Modifications and enhancements are permitted when integrated into your products.

×
No extraction or standalone redistribution

The Base Code cannot be extracted, independently reused, or distributed separately.

×
No reverse engineering without written consent

Reverse engineering, decompilation, or disassembly requires prior written consent.

📄 Full License

For complete license terms and conditions, please see the LICENSE.md file in the repository.

Copyright © 2025 FeverTokens. All rights reserved.

CLI Reference

Complete reference of all available Fever CLI commands (version 1.0.1).

Global Commands

fever --versionShow CLI version (v1.0.1)
fever --helpShow help information and available commands

Compilation

fever compile [packageName]
Compile a specific Solidity contract
Options: -s --source, -a --all
fever compile --allCompile all contracts in source directory

Deployment

fever deploy -f <file>Deploy using YAML manifest file
fever compose -f <file>Deploy diamond proxy system using composition manifest

Platform Integration

fever auth loginAuthenticate CLI to Fever Web Platform using device flow
fever auth statusCheck platform connection status
fever auth logoutDisconnect from platform

Project Management

fever projects --listList all projects on platform (default action)
fever projects --create <name>
Create new project on platform
Options: --description
fever projects select
Select active project by ID, slug, or name
Options: --switch, --status, --clear

Artifact Management

fever artifacts upload
Upload compilation artifacts to platform
Options: --compile-first, --file, --force, --dry-run
fever artifacts download
Download artifacts from platform
Options: --backup

Local Development

fever node
Start local blockchain node (Anvil)
Options: --port, --chain-id, --accounts, --fork, --tool, --mnemonic, --verbose, --list