# Slither Inbuilt Tools

Slither comes with inbuilt tools

| Name                                                | Command-Line                   | What it Does                                                                                                                                                            |
| --------------------------------------------------- | ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Code Similarity](./Code-Similarity-Detector.md)    | `slither-simil`                | Detects similar Solidity functions/contracts using code similarity analysis. Useful for finding duplicated code, similar vulnerabilities, or analyzing large codebases. |
| [Contract Flattening](./Contract-Flattening.md)     | `slither-flat`                 | Flattens a Solidity codebase by inlining all imports into a single file. Useful for contract verification on Etherscan or debugging.                                    |
| [Documentation](./Documentation.md)                 | `slither-doc`                  | Automatically generates documentation for Solidity contracts, including inheritance information, functions, modifiers, and more.                                        |
| [Doctor](./Doctor.md)                               | `slither-doctor`               | Helps diagnose and fix common issues in your environment that might prevent Slither from working correctly.                                                             |
| [ERC Conformance](./ERC-Conformance.md)             | `slither-check-erc`            | Validates whether a contract correctly implements various ERC standards (ERC20, ERC721, etc.) by checking required functions and their signatures.                      |
| [Interface](./Interface.md)                         | `slither-interface`            | Generates Solidity interfaces from contract implementations, useful for creating minimal interfaces for contract interactions.                                          |
| [Mutator](./Mutator.md)                             | `slither-mutate`               | Performs mutation testing on Solidity contracts by automatically generating variants with small modifications to test suite effectiveness.                              |
| [Path Finding](./Path-Finding-Utility.md)           | `slither-prop`                 | Analyzes call paths between functions in smart contracts to understand control and data flow.                                                                           |
| [Property Generation](./Property-generation.md)     | `slither-prop`                 | Automatically generates security properties and unit tests for smart contracts based on their behavior.                                                                 |
| [Read Storage](./ReadStorage.md)                    | `slither-read-storage`         | Reads contract storage values directly from the blockchain, helping debug deployed contracts.                                                                           |
| [Format](./Slither-format.md)                       | `slither-format`               | Automatically patch bugs.                                                                                                                                               |
| [Upgradeability Checks](./Upgradeability-Checks.md) | `slither-check-upgradeability` | Analyzes upgradeable contracts for common issues and vulnerabilities in proxy patterns.                                                                                 |
