Technical Documentation

Detailed technical information about ChronoSeal and IOTA Notarization

Technical Architecture

System Overview

ChronoSeal is built on a three-tier architecture:

  1. Frontend: Django templates with Bootstrap 5, Font Awesome icons, and custom CSS
  2. Backend: Django 5.0 with Python 3.11+, using SQLite or PostgreSQL
  3. Blockchain: IOTA 2.0 with Notarization Move Package

Data Flow

The data flow through ChronoSeal is as follows:

  1. File Upload: User uploads a file through the web interface
  2. Hash Computation: System computes SHA-3-256 (or other) hash of the file
  3. Notarization: Hash is sent to IOTA node for notarization
  4. Storage: Metadata is stored in Django database
  5. Certificate: User receives a tamper-proof certificate
  6. 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/description
  • hash_value: Filter by hash value
  • status: Filter by status
  • limit: Pagination limit (default: 20)
  • offset: Pagination offset (default: 0)
System Requirements
  • Python 3.11+
  • Django 5.0+
  • IOTA Local Network
  • SQLite or PostgreSQL