SmaCE'23: Digital Product Passports - Use Cases Framework and Technical Architecture Using DLT and Smart Contracts
This project is based on research published in IEEE SmaCE'23. Read the full paper here: Digital Product Passports: Use Cases Framework and Technical Architecture Using DLT and Smart Contracts
A proof-of-concept implementation demonstrating Digital Product Passports using blockchain technology and smart contracts. This project enables secure, transparent tracking of products throughout their lifecycle using blockchain.
- Smart Contract Layer: Solidity-based contract managing DPP data and access control
- Gateway Layer: Python-based REST API for interacting with the blockchain
- Authentication: Built-in blockchain-based access control system
- Product Passport Creation: Generate unique digital identifiers for products
- History Tracking: Immutable record of all product modifications
- Access Control: Granular control over who can modify product data
- Product Merging: Support for combining multiple DPPs
- Version Control: Complete history of all product changes
- RESTful API: Easy integration with external systems
- Smart Contract: Solidity ^0.8.2
- Backend: Python with Flask
- Blockchain: IOTA (Web3.py)
- API Framework: Flask with CORS support
- Python 3.x
- EVM based IOTA node (local or remote)
- Web3.py
- Flask
# Install required Python packages
pip install web3 flask flask-cors
# Configure IOTA connection in main_functions.py
node_url = "YOUR_IOTA_NODE_URL"
PRIVATE_KEY = "YOUR_PRIVATE_KEY"
PUBLIC_KEY = "YOUR_PUBLIC_KEY"- Deploy
contract.solto your IOTA network - Update contract address in
main_functions.py - Ensure
abi.jsonmatches your deployed contract
POST /create_dpp
{
"companyName": "string",
"productType": "string",
"productDetail": "string",
"manucaftureDate": number
}POST /update_dpp
{
"dpp_identifier": "string",
"companyName": "string",
"productType": "string",
"productDetail": "string",
"manucaftureDate": number
}POST /get_dpp_history
{
"id": "string"
}- Authentication System: Built-in access control
- Data Structure: Comprehensive DPP_DATA struct
- History Management: Complete modification tracking
- Merging Capability: Support for combining DPPs
This project is part of SmaCE'23 research on Digital Product Passports. Contributions aligned with the research goals are welcome.
GPL-3.0