> For the complete documentation index, see [llms.txt](https://zokyo-auditing-tutorials.gitbook.io/zokyo-tutorials/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://zokyo-auditing-tutorials.gitbook.io/zokyo-tutorials/tutorials.md).

# Tutorials

- [Tutorial 1: Front-Running](https://zokyo-auditing-tutorials.gitbook.io/zokyo-tutorials/tutorials/tutorial-1-front-running.md): Author of tutorial series: Omar Inuwa https://twitter.com/OmarInuwa1
- [Prerequisites](https://zokyo-auditing-tutorials.gitbook.io/zokyo-tutorials/tutorials/tutorial-1-front-running/prerequisites.md)
- [Understanding Front-Running](https://zokyo-auditing-tutorials.gitbook.io/zokyo-tutorials/tutorials/tutorial-1-front-running/understanding-front-running.md)
- [Examples](https://zokyo-auditing-tutorials.gitbook.io/zokyo-tutorials/tutorials/tutorial-1-front-running/examples.md)
- [Mitigation Steps](https://zokyo-auditing-tutorials.gitbook.io/zokyo-tutorials/tutorials/tutorial-1-front-running/mitigation-steps.md)
- [Resource Bank to more front running examples](https://zokyo-auditing-tutorials.gitbook.io/zokyo-tutorials/tutorials/tutorial-1-front-running/resource-bank-to-more-front-running-examples.md): This page is a open resource where any examples of front running found in bug bounties, audit reports or live attacks are to be added here.
- [Front-Running Conclusion](https://zokyo-auditing-tutorials.gitbook.io/zokyo-tutorials/tutorials/tutorial-1-front-running/front-running-conclusion.md)
- [Tutorial 2: Unsafe Casting](https://zokyo-auditing-tutorials.gitbook.io/zokyo-tutorials/tutorials/tutorial-2-unsafe-casting.md): Author: Omar Inuwa
- [Prerequisites](https://zokyo-auditing-tutorials.gitbook.io/zokyo-tutorials/tutorials/tutorial-2-unsafe-casting/prerequisites.md)
- [Understanding Casting](https://zokyo-auditing-tutorials.gitbook.io/zokyo-tutorials/tutorials/tutorial-2-unsafe-casting/understanding-casting.md)
- [Examples](https://zokyo-auditing-tutorials.gitbook.io/zokyo-tutorials/tutorials/tutorial-2-unsafe-casting/examples.md)
- [Unsafe Casting Conclusion](https://zokyo-auditing-tutorials.gitbook.io/zokyo-tutorials/tutorials/tutorial-2-unsafe-casting/unsafe-casting-conclusion.md)
- [Tutorial 3: Approvals and Safe Approvals](https://zokyo-auditing-tutorials.gitbook.io/zokyo-tutorials/tutorials/tutorial-3-approvals-and-safe-approvals.md)
- [Prerequisites](https://zokyo-auditing-tutorials.gitbook.io/zokyo-tutorials/tutorials/tutorial-3-approvals-and-safe-approvals/prerequisites.md)
- [Understanding Approvals](https://zokyo-auditing-tutorials.gitbook.io/zokyo-tutorials/tutorials/tutorial-3-approvals-and-safe-approvals/understanding-approvals.md)
- [Vulnerability Examples](https://zokyo-auditing-tutorials.gitbook.io/zokyo-tutorials/tutorials/tutorial-3-approvals-and-safe-approvals/vulnerability-examples.md)
- [ERC20 Approval Reset Requirement](https://zokyo-auditing-tutorials.gitbook.io/zokyo-tutorials/tutorials/tutorial-3-approvals-and-safe-approvals/vulnerability-examples/erc20-approval-reset-requirement.md)
- [Ignoring Return Values from ERC20 approve() Function: Potential Miscount of Successful Approvals](https://zokyo-auditing-tutorials.gitbook.io/zokyo-tutorials/tutorials/tutorial-3-approvals-and-safe-approvals/vulnerability-examples/ignoring-return-values-from-erc20-approve-function-potential-miscount-of-successful-approvals.md)
- [Improper use of Open Zeppelins safeApprove() for Non-zero Allowance Increments](https://zokyo-auditing-tutorials.gitbook.io/zokyo-tutorials/tutorials/tutorial-3-approvals-and-safe-approvals/vulnerability-examples/improper-use-of-open-zeppelins-safeapprove-for-non-zero-allowance-increments.md)
- [Omitted Approval for Contract Interactions Within a Protocol](https://zokyo-auditing-tutorials.gitbook.io/zokyo-tutorials/tutorials/tutorial-3-approvals-and-safe-approvals/vulnerability-examples/omitted-approval-for-contract-interactions-within-a-protocol.md)
- [Failing to Reset Token Approvals in Case of Failed Transactions or other actions](https://zokyo-auditing-tutorials.gitbook.io/zokyo-tutorials/tutorials/tutorial-3-approvals-and-safe-approvals/vulnerability-examples/failing-to-reset-token-approvals-in-case-of-failed-transactions-or-other-actions.md): Watch out for try-catch patterns where a transaction could fail but the code continues meaning that any approvals made before the try-catch block remains
- [Miscellaneous](https://zokyo-auditing-tutorials.gitbook.io/zokyo-tutorials/tutorials/tutorial-3-approvals-and-safe-approvals/vulnerability-examples/miscellaneous.md)
- [ERC20 Approve Race Condition Vulnerability](https://zokyo-auditing-tutorials.gitbook.io/zokyo-tutorials/tutorials/tutorial-3-approvals-and-safe-approvals/vulnerability-examples/erc20-approve-race-condition-vulnerability.md)
- [Spot the Vulnerability](https://zokyo-auditing-tutorials.gitbook.io/zokyo-tutorials/tutorials/tutorial-3-approvals-and-safe-approvals/spot-the-vulnerability.md)
- [Approvals and Safe Approvals Conclusion](https://zokyo-auditing-tutorials.gitbook.io/zokyo-tutorials/tutorials/tutorial-3-approvals-and-safe-approvals/approvals-and-safe-approvals-conclusion.md)
- [Tutorial 4: Block.chainid, DOMAIN\_SEPARATOR and EIP-2612 permit](https://zokyo-auditing-tutorials.gitbook.io/zokyo-tutorials/tutorials/tutorial-4-block.chainid-domain_separator-and-eip-2612-permit.md): This vulnerability is prevalent in cross-chain protocols
- [Prerequisites](https://zokyo-auditing-tutorials.gitbook.io/zokyo-tutorials/tutorials/tutorial-4-block.chainid-domain_separator-and-eip-2612-permit/prerequisites.md)
- [Understanding Block.chainid and DOMAIN\_SEPARATOR](https://zokyo-auditing-tutorials.gitbook.io/zokyo-tutorials/tutorials/tutorial-4-block.chainid-domain_separator-and-eip-2612-permit/understanding-block.chainid-and-domain_separator.md)
- [Examples](https://zokyo-auditing-tutorials.gitbook.io/zokyo-tutorials/tutorials/tutorial-4-block.chainid-domain_separator-and-eip-2612-permit/examples.md)
- [General Mitigation Steps](https://zokyo-auditing-tutorials.gitbook.io/zokyo-tutorials/tutorials/tutorial-4-block.chainid-domain_separator-and-eip-2612-permit/general-mitigation-steps.md)
- [Tutorial 4 Conclusion](https://zokyo-auditing-tutorials.gitbook.io/zokyo-tutorials/tutorials/tutorial-4-block.chainid-domain_separator-and-eip-2612-permit/tutorial-4-conclusion.md)
