What to use instead of the deprecated alchemy_simulate* methods
Last updated: August 25, 2026
The Transaction Simulation API family is being deprecated on September 30, 2026. This includes alchemy_simulateAssetChanges, alchemy_simulateExecution, alchemy_simulateAssetChangesBundle, alchemy_simulateUserOperationAssetChanges, and alchemy_simulateExecutionBundle. After that date these methods stop working. There is no direct 1:1 replacement for any of them, but the options below cover most use cases.
alchemy_simulateAssetChanges
If you only need to confirm a transaction would succeed (no revert),
eth_callworks as a lightweight check. It does not return an asset-change breakdown.If you need the decoded asset or transfer breakdown (who received how much of a given token), the Transfers API (
alchemy_getAssetTransfers) is the most practical option. It returns normalized transfer objects (from, to, value, asset, token) instead of requiring you to decode raw logs yourself. One caveat: it doesn't support filtering by a single transaction hash directly, so you'd scope the call to the transaction's block (optionally with address or token filters) and filter client-side by hash.
alchemy_simulateExecution
eth_simulateV1- doesn't expose full execution traces, so it may not be a perfect drop-in if traces matter to your use case.debug_traceCallwith acallTracertracer - more setup involved, but the closest fit if full execution traces are a hard requirement.