Skip to content

simulation

Methods exposed through client.simulation(network).

asset_changes

Simulates a transaction and returns a list of asset changes (token transfers and approvals) without broadcasting via the alchemy_simulateAssetChanges JSON-RPC method.

Parameters:

Name Type Description Default
params AssetChangesParams

Request payload.

required
validate bool | None

Validation override for this request.

None

Returns:

Type Description
AssetChangesResponse

The validated endpoint response.

References
Source code in pkg/src/alchemy/api/simulation/asset_changes.py
async def asset_changes(self, params: AssetChangesParams, *, validate: bool | None = None) -> AssetChangesResponse:
  """Simulates a transaction and returns a list of asset changes (token transfers and approvals) without broadcasting via the `alchemy_simulateAssetChanges` JSON-RPC method.

  Args:
    params: Request payload.
    validate: Validation override for this request.

  Returns:
    The validated endpoint response.

  References:
    - [Alchemy API docs](https://www.alchemy.com/docs/reference/simulation-asset-changes)
    """
  r = await self.rpc_request('alchemy_simulateAssetChanges', params, validate=validate)
  return adapter.python(r) if self.should_validate(validate) else r

asset_changes_bundle

Simulates up to 3 sequential transactions and returns asset changes for each without broadcasting via the alchemy_simulateAssetChangesBundle JSON-RPC method.

Parameters:

Name Type Description Default
transactions list[AssetChangesBundleTransaction]

Transactions to simulate in order.

required
validate bool | None

Validation override for this request.

None

Returns:

Type Description
list[AssetChangesResult]

The validated endpoint response.

References
Source code in pkg/src/alchemy/api/simulation/asset_changes_bundle.py
async def asset_changes_bundle(
  self,
  transactions: list[AssetChangesBundleTransaction],
  *,
  validate: bool | None = None
) -> list[AssetChangesResult]:
  """Simulates up to 3 sequential transactions and returns asset changes for each without broadcasting via the `alchemy_simulateAssetChangesBundle` JSON-RPC method.

  Args:
    transactions: Transactions to simulate in order.
    validate: Validation override for this request.

  Returns:
    The validated endpoint response.

  References:
    - [Alchemy API docs](https://www.alchemy.com/docs/reference/simulation-bundle)
    """
  r = await self.rpc_request('alchemy_simulateAssetChangesBundle', transactions, validate=validate)
  return adapter.python(r) if self.should_validate(validate) else r

execution

Simulates a transaction and returns decoded execution traces and event logs without broadcasting via the alchemy_simulateExecution JSON-RPC method.

Parameters:

Name Type Description Default
params ExecutionParams

Request payload.

required
validate bool | None

Validation override for this request.

None

Returns:

Type Description
ExecutionResponse

The validated endpoint response.

References
Source code in pkg/src/alchemy/api/simulation/execution.py
async def execution(self, params: ExecutionParams, *, validate: bool | None = None) -> ExecutionResponse:
  """Simulates a transaction and returns decoded execution traces and event logs without broadcasting via the `alchemy_simulateExecution` JSON-RPC method.

  Args:
    params: Request payload.
    validate: Validation override for this request.

  Returns:
    The validated endpoint response.

  References:
    - [Alchemy API docs](https://www.alchemy.com/docs/reference/simulation-execution)
    """
  r = await self.rpc_request('alchemy_simulateExecution', params, validate=validate)
  return adapter.python(r) if self.should_validate(validate) else r

execution_bundle

Simulates up to 3 sequential transactions and returns execution traces for each without broadcasting via the alchemy_simulateExecutionBundle JSON-RPC method.

Parameters:

Name Type Description Default
transactions list[ExecutionBundleTransaction]

Transactions to simulate in order.

required
validate bool | None

Validation override for this request.

None

Returns:

Type Description
list[ExecutionResult]

The validated endpoint response.

References
Source code in pkg/src/alchemy/api/simulation/execution_bundle.py
async def execution_bundle(
  self,
  transactions: list[ExecutionBundleTransaction],
  *,
  validate: bool | None = None
) -> list[ExecutionResult]:
  """Simulates up to 3 sequential transactions and returns execution traces for each without broadcasting via the `alchemy_simulateExecutionBundle` JSON-RPC method.

  Args:
    transactions: Transactions to simulate in order.
    validate: Validation override for this request.

  Returns:
    The validated endpoint response.

  References:
    - [Alchemy API docs](https://www.alchemy.com/docs/reference/simulation-bundle)
    """
  r = await self.rpc_request('alchemy_simulateExecutionBundle', transactions, validate=validate)
  return adapter.python(r) if self.should_validate(validate) else r