sleuth-kit


Namesleuth-kit JSON
Version 0.0.1 PyPI version JSON
download
home_pagehttps://sleuth.fi
SummaryA flexible and extensible toolkit designed for blockchain investigation and intelligence gathering.
upload_time2024-08-30 05:44:16
maintainerNone
docs_urlNone
authorSleuth
requires_python<4.0,>=3.12
licenseMIT
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <h1 align="center">Sleuth Kit 🔍</h1>

<p align="center">
  <b>Sleuth kit provides a suite of tools for blockchain intelligence.</b>
</p>

<p align="center">
  <a href="https://github.com/sleuthfi/sleuth-kit/blob/main/LICENSE">
    <img src="https://img.shields.io/github/license/sleuthfi/sleuth-kit" alt="License">
  </a>
</p>

## What is Sleuth Kit?

Sleuth Kit is a suite of tools for blockchain intelligence. It is designed to be a flexible and extensible framework for investigating and building blockchain intelligence tools.

```mermaid
sequenceDiagram
    participant User
    participant CLI
    participant Config
    participant API
    participant Helpers
    participant Database
    participant CSV

    User->>CLI: Run sleuth command
    CLI->>Config: Load configuration
    CLI->>Helpers: Setup database schema
    Helpers->>Database: Create tables if not exist
    
    alt accounts command
        User->>CLI: sleuth accounts -address <address>
        CLI->>API: query_ethereum_account(address)
        API->>API: load_sql_query('ethereum_accounts.sql')
        API->>API: query_transpose(sql_query, params)
        API-->>CLI: Return account data
        
        alt SAVE_AS_CSV is True
            CLI->>Helpers: save_to_csv(data, 'ethereum-accounts.csv', fields)
            Helpers->>CSV: Write data
        end
        
        alt SAVE_AS_SQLITE is True
            CLI->>Helpers: save_to_sqlite(data, 'ethereum_accounts')
            Helpers->>Database: Insert or update data
        end
        
        CLI-->>User: Display result message
    else transactions command
        User->>CLI: sleuth transactions -address <address>
        CLI->>API: query_ethereum_transactions(address)
        API->>API: load_sql_query('ethereum_transactions.sql')
        loop Fetch all transactions
            API->>API: query_transpose(sql_query, params)
            API->>Helpers: save_transactions(transactions)
            alt SAVE_AS_CSV is True
                Helpers->>CSV: Write transactions
            end
            alt SAVE_AS_SQLITE is True
                Helpers->>Database: Insert or update transactions
            end
        end
        API-->>CLI: Return all transactions
        CLI-->>User: Display result message
    else setup command
        User->>CLI: sleuth setup
        CLI->>Helpers: setup_database_schema()
        Helpers->>Database: Create tables if not exist
        CLI-->>User: Display setup success message
    end
```

Currently, data is saved locally in a CSV file and SQLite database. The data can then be uploaded to Xata for long-term storage and querying. The settings for data storage are configurable in the `config.py` file.

Visualization of the data is also planned to be supported in the future.

## Why was Sleuth Kit created?

Sleuth Kit was created due to the limitation of free and publicly available blockchain labels and other data that would be useful in blockchain OSINT. It is designed to be a flexible and extensible framework for compiling your own Data Lake of blockchain data and using it to build custom tools.

## ⛓️ Currently Supported Chains

- Ethereum
- Bitcoin (WIP)

## ⚙️ Installation

1. Clone the repository:

   ```
   git clone https://github.com/sleuthfi/sleuth-kit.git
   ```

2. Navigate to the project directory:

   ```
   cd sleuth-kit
   ```

3. Install dependencies using Poetry:

   ```
   poetry install
   ```

## 💼 Usage

1. Setup the database schema:

   ```
   poetry run sleuth setup
   ```

2. Query Ethereum account data:

   ```
   poetry run sleuth accounts -address 0xe3E182bC39951F99AF86d8CD0c42a4B7C4CD93F7

3. Query Ethereum transaction data:

   ```
   poetry run sleuth transactions -address 0xe3E182bC39951F99AF86d8CD0c42a4B7C4CD93F7

## 🔧 Configuration

Ensure that the `.env` file is set up with the following variables:

- `TRANSPOSE_API_KEY`: Your Transpose API key
- `XATA_API_KEY`: Your Xata API key
- `XATA_DB_URL`: Your Xata database URL

## 📜 License

### This project is licensed under the [AGPL-3.0 License](https://github.com/sleuthfi/sleuth-kit/blob/main/LICENSE)

            

Raw data

            {
    "_id": null,
    "home_page": "https://sleuth.fi",
    "name": "sleuth-kit",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.12",
    "maintainer_email": null,
    "keywords": null,
    "author": "Sleuth",
    "author_email": "dev@sleuth.fi",
    "download_url": "https://files.pythonhosted.org/packages/6e/c9/fc6062d449338903813f749f5b7906c015300edf04d232c0ebabd1693a15/sleuth_kit-0.0.1.tar.gz",
    "platform": null,
    "description": "<h1 align=\"center\">Sleuth Kit \ud83d\udd0d</h1>\n\n<p align=\"center\">\n  <b>Sleuth kit provides a suite of tools for blockchain intelligence.</b>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://github.com/sleuthfi/sleuth-kit/blob/main/LICENSE\">\n    <img src=\"https://img.shields.io/github/license/sleuthfi/sleuth-kit\" alt=\"License\">\n  </a>\n</p>\n\n## What is Sleuth Kit?\n\nSleuth Kit is a suite of tools for blockchain intelligence. It is designed to be a flexible and extensible framework for investigating and building blockchain intelligence tools.\n\n```mermaid\nsequenceDiagram\n    participant User\n    participant CLI\n    participant Config\n    participant API\n    participant Helpers\n    participant Database\n    participant CSV\n\n    User->>CLI: Run sleuth command\n    CLI->>Config: Load configuration\n    CLI->>Helpers: Setup database schema\n    Helpers->>Database: Create tables if not exist\n    \n    alt accounts command\n        User->>CLI: sleuth accounts -address <address>\n        CLI->>API: query_ethereum_account(address)\n        API->>API: load_sql_query('ethereum_accounts.sql')\n        API->>API: query_transpose(sql_query, params)\n        API-->>CLI: Return account data\n        \n        alt SAVE_AS_CSV is True\n            CLI->>Helpers: save_to_csv(data, 'ethereum-accounts.csv', fields)\n            Helpers->>CSV: Write data\n        end\n        \n        alt SAVE_AS_SQLITE is True\n            CLI->>Helpers: save_to_sqlite(data, 'ethereum_accounts')\n            Helpers->>Database: Insert or update data\n        end\n        \n        CLI-->>User: Display result message\n    else transactions command\n        User->>CLI: sleuth transactions -address <address>\n        CLI->>API: query_ethereum_transactions(address)\n        API->>API: load_sql_query('ethereum_transactions.sql')\n        loop Fetch all transactions\n            API->>API: query_transpose(sql_query, params)\n            API->>Helpers: save_transactions(transactions)\n            alt SAVE_AS_CSV is True\n                Helpers->>CSV: Write transactions\n            end\n            alt SAVE_AS_SQLITE is True\n                Helpers->>Database: Insert or update transactions\n            end\n        end\n        API-->>CLI: Return all transactions\n        CLI-->>User: Display result message\n    else setup command\n        User->>CLI: sleuth setup\n        CLI->>Helpers: setup_database_schema()\n        Helpers->>Database: Create tables if not exist\n        CLI-->>User: Display setup success message\n    end\n```\n\nCurrently, data is saved locally in a CSV file and SQLite database. The data can then be uploaded to Xata for long-term storage and querying. The settings for data storage are configurable in the `config.py` file.\n\nVisualization of the data is also planned to be supported in the future.\n\n## Why was Sleuth Kit created?\n\nSleuth Kit was created due to the limitation of free and publicly available blockchain labels and other data that would be useful in blockchain OSINT. It is designed to be a flexible and extensible framework for compiling your own Data Lake of blockchain data and using it to build custom tools.\n\n## \u26d3\ufe0f Currently Supported Chains\n\n- Ethereum\n- Bitcoin (WIP)\n\n## \u2699\ufe0f Installation\n\n1. Clone the repository:\n\n   ```\n   git clone https://github.com/sleuthfi/sleuth-kit.git\n   ```\n\n2. Navigate to the project directory:\n\n   ```\n   cd sleuth-kit\n   ```\n\n3. Install dependencies using Poetry:\n\n   ```\n   poetry install\n   ```\n\n## \ud83d\udcbc Usage\n\n1. Setup the database schema:\n\n   ```\n   poetry run sleuth setup\n   ```\n\n2. Query Ethereum account data:\n\n   ```\n   poetry run sleuth accounts -address 0xe3E182bC39951F99AF86d8CD0c42a4B7C4CD93F7\n\n3. Query Ethereum transaction data:\n\n   ```\n   poetry run sleuth transactions -address 0xe3E182bC39951F99AF86d8CD0c42a4B7C4CD93F7\n\n## \ud83d\udd27 Configuration\n\nEnsure that the `.env` file is set up with the following variables:\n\n- `TRANSPOSE_API_KEY`: Your Transpose API key\n- `XATA_API_KEY`: Your Xata API key\n- `XATA_DB_URL`: Your Xata database URL\n\n## \ud83d\udcdc License\n\n### This project is licensed under the [AGPL-3.0 License](https://github.com/sleuthfi/sleuth-kit/blob/main/LICENSE)\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A flexible and extensible toolkit designed for blockchain investigation and intelligence gathering.",
    "version": "0.0.1",
    "project_urls": {
        "Documentation": "https://docs.sleuth.fi",
        "Homepage": "https://sleuth.fi",
        "Repository": "https://github.com/sleuthfi/sleuth-kit"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "85eafef8ea72c83430482525308099321cbad6a1fee971a5599fd4fa1a36054b",
                "md5": "50755ff8e50c82d437797f8c251f0d54",
                "sha256": "0364bd1efb1b7c7d2f57559c56703db2ece44120a16f4ae3ac7fb2e99700b48c"
            },
            "downloads": -1,
            "filename": "sleuth_kit-0.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "50755ff8e50c82d437797f8c251f0d54",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.12",
            "size": 10539,
            "upload_time": "2024-08-30T05:44:14",
            "upload_time_iso_8601": "2024-08-30T05:44:14.810954Z",
            "url": "https://files.pythonhosted.org/packages/85/ea/fef8ea72c83430482525308099321cbad6a1fee971a5599fd4fa1a36054b/sleuth_kit-0.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6ec9fc6062d449338903813f749f5b7906c015300edf04d232c0ebabd1693a15",
                "md5": "5389eb2673aa884f21fc3a2b56a40932",
                "sha256": "9b01eda320fc1cd5e1b624d487a47549dfdd6404ff910dfe7336d2d39e3e8354"
            },
            "downloads": -1,
            "filename": "sleuth_kit-0.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "5389eb2673aa884f21fc3a2b56a40932",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.12",
            "size": 8779,
            "upload_time": "2024-08-30T05:44:16",
            "upload_time_iso_8601": "2024-08-30T05:44:16.361682Z",
            "url": "https://files.pythonhosted.org/packages/6e/c9/fc6062d449338903813f749f5b7906c015300edf04d232c0ebabd1693a15/sleuth_kit-0.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-08-30 05:44:16",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "sleuthfi",
    "github_project": "sleuth-kit",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "sleuth-kit"
}
        
Elapsed time: 0.60967s