English
English
English

Product

Hardhat v3 + MultiBaas: A Cleaner Ignition Sync Model is Now Live

This release of the hardhat-multibaas-plugin brings the Hardhat v3 / Ignition integration in line with how Ignition actually decides what to run. The goal is simple: MultiBaas should reflect what Ignition executed, not just what exists in the deployment result.

Hardhat v3 follows a different model from Hardhat v2, and existing scripts will need to be modified.

We have also aligned the hardhat-multibaas-plugin versioning with Hardhat itself, skipping from v1 to v3 in the plugin versioning. For those needing Hardhat v2 support with the plugin, you can use the legacy/hardhat-v2 branch.

What Changed

  • The plugin now mirrors Ignition’s deploy flow and keeps its prompts, reset behavior, and UI output.

  • MultiBaas syncing is based on what Ignition executes in the current run, not just what appears in the deployment result.

  • A chain ID guard prevents accidental syncing to the wrong MultiBaas deployment.

  • A new opt-in mode can sync existing deployments when you explicitly want it.

Why This Helps

Ignition’s deployment results can include contracts from previous runs. If the plugin syncs everything in that result, MultiBaas can drift from Ignition’s actual decisions. In practice, this shows up when:

  • Source code changes but Ignition decides no redeploy is required,

  • Only one of many futures is rerun,

  • You want to preserve stable deployments while iterating on other modules.

By default, the plugin now syncs only the futures Ignition executed in the current run. That keeps MultiBaas aligned with Ignition’s reconciliation logic and avoids unnecessary contract version churn.

New Options

Two mbConfig flags were added:

  • syncExisting: When true, syncs all registered futures found in Ignition’s deployment result, even if they weren’t executed in the current run. Use this for explicit reconciliation or one-time backfills.

  • requireChainIdMatch: When true (default), compares the Hardhat network chain ID with the MultiBaas deployment chain ID and fails fast on mismatches.

How to Use it

Register the Hardhat Ignition futures (i.e. Hardhat Ignition futures) you want linked in MultiBaas using mb.link inside your Ignition module. The plugin will handle upload and linking for those futures, using the execution-aware rules above.

Example configuration:
mbConfig: {

  host: configVariable("MB_PLUGIN_HOST"),

  apiKey: configVariable("MB_PLUGIN_API_KEY"),

  allowUpdateAddress: ["development"],

  allowUpdateContract: ["development"],

  syncExisting: false,

  requireChainIdMatch: true

}

Tests

npm test

References

Curvegrid documentation for MultiBaas and API access:

https://docs.curvegrid.com/multibaas/

https://docs.curvegrid.com/multibaas/api/multibaas-api/