# Dry Run Stateful / Stateless Contract Call

Smart contracts can be debugged using two different methods.&#x20;

The first is an interactive debugger that uses the `tealdbg` command-line tool to launch a debug session where the smart contract can be examined as the contract is being evaluated.&#x20;

The second method is "Dry Run" which outputs a line by line result of the evaluation of the smart contract.&#x20;

With Dry Run support in algoDEA plugin, you can "Dry Run" any stateful or stateless smart contract transaction. You can also "Dry Run" an Atomic Transfer with multiple stateless and stateful smart contract transactions.

For stateful contract dry run, you also need to provide the path to the source file.

All contract transaction UIs (stateful contract, stateless  contract/ logic sig, Atomic Transfer) have a "Dry Run" button.&#x20;

![Dry Run - Stateful Contract Call Transaction](/files/-MNfXIZsNV4ygRawVxoF)

&#x20;

![Dry Run - Logic Sig Txn](/files/-MNfYXlqpC16eZNaewk2)

#### Dry Run - Stateful Smart Contract Transaction&#x20;

While you try to dry run a stateful contract transaction, IDE opens an UI to capture additional inputs required for the dry run call. Some of the inputs like application Id, txn index are auto-populated. For a stateful contract call, you need to select the source teal file.

![Dry Run - Input screen](/files/-MNfdrMBzrmKQ_Vcd1Eb)

#### Dry Run Output file

Dry run output files are generated and stored under **build/dryrun** folder.

![](/files/-MNff9LgAIIoWZ3gWcyK)

![Dry Run - Result file content](/files/-MNffaWTKf7RTmor2Kt2)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://algodea-docs.bloxbean.com/dry-run/untitled.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
