Skip to main content
Replace the stock package instead of installing both packages side by side.
1

Replace the dependency

This resolves npm’s current latest tag and saves that exact fork version. Commit the lockfile with the migration.
2

Update package imports

Import package APIs from @subsquid/ponder in ponder.config.ts, ponder.schema.ts, and API files:
Keep Ponder virtual-module imports unchanged:
3

Add a Portal dataset per chain

Add a portal dataset URL beside each chain’s existing rpc URL:
Keep the RPC configured for realtime indexing, chain setup, and contract reads.
4

Validate a bounded range

Set a bounded startBlock and endBlock, then run the migrated app:
Compare the resulting rows or application-level aggregates with the stock RPC path before widening the range. The repository’s migration guide includes compatibility checks and tooling that compares the two paths row by row.

Roll back

To return to stock Ponder, replace @subsquid/ponder with ponder, restore package imports, and remove the portal fields. Your handlers, schema, and virtual-module imports do not need to change. Check Benchmarks and validation for the currently tested versions, sources, and datasets. Because the integration tracks active Ponder development, repeat the bounded comparison when upgrading either package line.