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
make
installedmake env
-
Install dependencies
uv sync --no-dev --extra prod
or if you have
make
installedmake install
Copy the config.example.py
file to config.py
and:
- update the
SECRET_KEY
variable with a 32-bit hexadecimal string. - update the
DB_*
variables with your database credentials. - update the
WEB3_PROVIDER
variable with the URL of your Ethereum node.
uv run launcher.py # or make debug
or if you have make
installed
make activate
make debug
The 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 prod
or 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.pem
The 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