IDenSafe is a proof-of-concept blockchain-based identity management system for KYC. It is built on the Ethereum blockchain. It implements the Sign-In with Ethereum authentication protocol, natively in Python using the siwe-py library. On the core, it is built using the Flask web framework. Database management is done using SQLAlchemy.
It supports Ethereum based user authentication, setting username, verifying KYC and enabling attributes which can be requested.
- Git
- Python 3.10 or higher
- MariaDB/MySQL database
- Ganache or any other Ethereum testnet
-
Install
uv> https://docs.astral.sh/uv/getting-started/installation/ -
Clone the repository
git clone https://github.com/Sn1F3rt/IDenSafe.git
-
Switch to the project directory
cd IDenSafe -
Create a virtual environment
uv venv
or if you have
makeinstalledmake env
-
Install dependencies
uv sync --no-dev --extra prod
or if you have
makeinstalledmake install
Copy the config.example.py file to config.py and:
- update the
SECRET_KEYvariable with a 32-bit hexadecimal string. - update the
DB_*variables with your database credentials. - update the
WEB3_PROVIDERvariable with the URL of your Ethereum node.
uv run launcher.py # or make debugor if you have make installed
make activate
make debugThe API server will be running at http://localhost:5000.
source .venv/bin/activate # or make activate
gunicorn --bind 0.0.0.0:5000 launcher:app # or make prodor if you want to enable SSL support
source .venv/bin/activate # or make activate
gunicorn --bind 0.0.0.0:5000 launcher:app --certfile cert.pem --keyfile key.pem # or make prods --certfile cert.pem --keyfile key.pemThe API server will be running at http://localhost:5000. The certificate and key files are required for SSL support.
GNU General Public License v3.0
Copyright © 2024 Sayan "Sn1F3rt" Bhattacharyya