Technical Documentation
Detailed technical information about ChronoSeal and IOTA Notarization
Technical Architecture
System Overview
ChronoSeal is built on a three-tier architecture:
- Frontend: Django templates with Bootstrap 5, Font Awesome icons, and custom CSS
- Backend: Django 5.0 with Python 3.11+, using SQLite or PostgreSQL
- Blockchain: IOTA 2.0 with Notarization Move Package
Data Flow
The data flow through ChronoSeal is as follows:
- File Upload: User uploads a file through the web interface
- Hash Computation: System computes SHA-3-256 (or other) hash of the file
- Notarization: Hash is sent to IOTA node for notarization
- Storage: Metadata is stored in Django database
- Certificate: User receives a tamper-proof certificate
- Verification: Anyone can verify the deposit using the hash
Cryptographic Hashing
ChronoSeal supports multiple cryptographic hash algorithms:
- SHA-3-256 (Recommended): Modern, secure hash function producing 256-bit output
- SHA-256: Widely used, NIST-approved hash function
- BLAKE2b: Fast, cryptographically secure hash function
All hash functions provide:
- Deterministic: Same input always produces same output
- Unique: Different inputs produce different outputs (avalanche effect)
- One-way: Impossible to reverse (recover input from hash)
- Collision-resistant: Extremely unlikely two inputs produce same hash
IOTA Notarization
IOTA Notarization provides immutable, timestamped records on the IOTA ledger:
- Locked Notarizations: Immutable records that cannot be changed or transferred
- Dynamic Notarizations: Mutable records that can be updated
- Timestamping: Precise timestamps from IOTA network consensus
- Fee-less: No transaction costs on IOTA network
API Documentation
RESTful API Endpoints
Deposits
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/deposits/ | List all public deposits |
| GET | /api/deposits/{id}/ | Get deposit details |
| POST | /api/verify/{id}/ | Verify a deposit |
Parameters
query: Search in title/descriptionhash_value: Filter by hash valuestatus: Filter by statuslimit: Pagination limit (default: 20)offset: Pagination offset (default: 0)
Quick Links
System Requirements
- Python 3.11+
- Django 5.0+
- IOTA Local Network
- SQLite or PostgreSQL