# Tutorial 22: \`isContract\`

{% hint style="info" %}
[**Book an audit with Zokyo**](https://www.zokyo.io/)
{% endhint %}

#### Introduction

In the realm of Ethereum smart contracts, various security considerations must be undertaken to ensure the integrity and robustness of a contract's functionality. One such notable aspect is the distinction between Externally Owned Accounts (EOAs) and Contract Accounts. Developers sometimes use the `isContract()` function to discern between contract accounts and EOAs to enforce specific restrictions or design patterns in their contracts. However, this function is not without its vulnerabilities and shortcomings. This tutorial will provide an in-depth exploration of the `isContract()` function and the vulnerabilities associated with it, along with mitigation strategies to bolster contract security.


---

# 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://zokyo-auditing-tutorials.gitbook.io/zokyo-tutorials/tutorial-22-iscontract.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.
