Builders

Local development

Local development should be reproducible on any machine. Commands below use repository-relative paths instead of one developer's absolute filesystem path.

Run the main frontend

From the folder that contains the main Vestige frontend project:

cd vestige_front
npm install
npm run dev
# http://localhost:3000

Run the docs frontend

Run the documentation frontend separately so it can be deployed as an independent site.

cd vestige_docs_front
npm install
npm run dev
# http://localhost:3001

Environment files

For local frontend work, keep real values in .env or .env.local according to your deployment workflow, but make sure there is only one active NEXT_PUBLIC_VAULT_ADDRESS value for a given dev server run.

NEXT_PUBLIC_VAULT_ADDRESS=0x37d346aC72a27aF35b42903f90962F810F34a985
NEXT_PUBLIC_ARC_RPC_URL=https://rpc.testnet.arc.network
NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID=your_walletconnect_project_id

Local contract testing

If you test on a local Hardhat network, treat it as a separate environment from Arc Testnet. Local deployments are useful for fast iteration, but their addresses and ABI versions must not leak into the Arc frontend configuration.

  • Restart the frontend after switching between localhost and Arc env values.
  • Use a fresh wallet or disable drained vaults when testing one-vault-per-owner behavior.
  • If you temporarily lower period constants for testing, restore day-based constants before Arc deployment.
  • If MetaMask shows the zero address, stop and inspect NEXT_PUBLIC_VAULT_ADDRESS before confirming.

Common local issues

These are the problems most likely to happen while building locally.

Address is not a contract
Wrong network, stale env, zero address, or dev server not restarted.
Function not found
Frontend ABI does not match deployed contract version.
Gas cap error
Often caused by a simulation/revert path being submitted with bad gas estimation. Read the underlying custom error.
Claim disabled
Connected wallet is not heir, owner address is wrong, or claimableAt has not matured.
Can not create second vault
Previous vault still exists. Drain and disable it first.