Skip to main content

DigitalMeve — The .MEVE Standard: timestamp, hash, and certify digital documents.

Project description

🌍 DigitalMeve — The .MEVE Standard

👉 The first global platform to certify and verify the authenticity of your documents.

quality tests publish coverage

DigitalMeve PyPI version Python

downloads License Security Analyze

📑 Table of Contents

  1. Overview
  2. 🚀 Patches Snapshot
  3. 📖 TL;DR
  4. 🔧 Quickstart
  5. ✨ Features
  6. 📚 Documentation
  7. 🧪 Examples
  8. 🔑 Certification Levels
  9. 🛡 Security
  10. 📊 Use Cases
  11. 🚀 Roadmap
  12. 🌐 Web Integration
  13. 💻 Development & Contribution
  14. 📦 Releases
  15. ⚖ License

1. Overview

DigitalMeve provides a fast and universal way to verify the authenticity of any .meve proof.

Verification ensures:

  • Integrity → the document has not been tampered with (SHA-256 validation).
  • Timestamp → the proof contains a valid UTC timestamp.
  • Issuer → the identity level (Personal, Pro, Official) matches expectations.

2. 🚀 Patches Snapshot (already implemented)


3. 📖 TL;DR

DigitalMeve defines the universal format .meve (Memory Verified) to timestamp, hash, and certify digital documents.

👉 Goal: make .meve the “PDF of digital proof”.

Why .meve?

  • Existence → the file existed at a given time.
  • Integrity → SHA-256 hash guarantees no tampering.
  • Authenticity → issuer is visible.
  • Metadata → optional custom key/values.
  • Portable → sidecar .meve.json works with any file type.

4. 🔧 Quickstart

Install

pip install digitalmeve

CLI

digitalmeve generate path/to/file.pdf --issuer "Alice" digitalmeve verify path/to/file.pdf.meve.json --issuer "Alice" digitalmeve inspect path/to/file.pdf.meve.json

Python API

from digitalmeve.generator import generate_meve from digitalmeve.verifier import verify_meve

proof = generate_meve("mydoc.pdf", issuer="Alice") ok, info = verify_meve(proof, expected_issuer="Alice") print(ok, info["subject"]["hash_sha256"])

✅ With .meve, you can prove existence, integrity, and authenticity in seconds.

5. ✨ Features

  • SHA-256 hashing → guarantees file integrity
  • Timestamp (UTC ISO-8601) → proof of existence at a given time
  • Issuer levels → Personal / Pro / Official
  • JSON Schema validation → machine-verifiable against schemas/meve-1.schema.json
  • Metadata embedding → free-form key/values (author, project, notes…)
  • Sidecar .meve.json → scalable for any file type or size
  • CLI & Python API → generate, verify, inspect in seconds
  • CI/CD ready → GitHub Actions (tests, quality, publish)

6. 📚 Documentation

7. 🧪 Examples

8. 🔑 Certification Levels

  • Personal → auto-certification (preuve d’existence uniquement)
  • Pro → vérification par e-mail (identité liée à un professionnel réel)
  • Official → vérification institutionnelle (DNS / organisation validée)

ℹ️ Le niveau est déterminé par le verifier, et non auto-déclaré.

9. 🛡 Security

  • Hashing (SHA-256) & immutability → toute modification invalide la preuve
  • Schema validation (MEVE/1) → validation automatique contre le schéma officiel
  • Pro verification → authentification par e-mail (magic-link)
  • Official verification → vérification DNS via enregistrement TXT _meve.<domaine>
  • Ed25519-ready → support des signatures numériques (key_id, signature)
  • Transparency-ready → intégration future dans des journaux de transparence

🔐 Pour les détails de sécurité et la divulgation responsable, voir SECURITY.md.

10. 📊 Use Cases

DigitalMeve can be used across different contexts:

  • Individuals → authorship proof, personal archives, evidence of existence
  • Professionals → invoices, contracts, certifications, automation workflows
  • Institutions → diplomas, tenders, official archives, public records

✅ The .meve standard ensures existence, integrity, and authenticity regardless of the use case.

11. 🚀 Roadmap

The project is evolving in clear phases:

  • Phase 1 (MVP) → core library (generator, verifier), CLI, schema v1, CI/CD pipelines
  • Phase 2 (≤ 6 months) → Pro/Official onboarding, PDF/PNG embedding, public API, web integration
  • Phase 3 (1–2 years) → standardization, external integrations, transparency logs, broader adoption

✅ The roadmap is tracked in docs/roadmap.md.

12. 🌐 Web Integration

Planned integration with web services and APIs:

  • Endpoints (future)

    • POST /api/generate → returns .meve.json or embedded .meve.pdf/.png
    • POST /api/verify → returns { ok, info } JSON object
  • Integration with Framer / Websites

    • Simple drag-and-drop of documents
    • Proof verification directly in the browser
  • Security for the API

    • CORS enabled (restricted in production)
    • X-API-Key required for private endpoints

📌 More details: docs/web-integration.md

13. 💻 Development & Contribution

We welcome contributions from the community 🤝

🛠 Setup (local dev)

Clone the repository

git clone https://github.com/BACOUL/digitalmeve.git cd digitalmeve

Install in editable mode with dev dependencies

pip install -e .[dev]

🧪 Run tests

pytest -q --cov=digitalmeve --cov-report=term-missing

📐 Code style

Linting: Ruff

Formatting: Black

Type checking: mypy

📜 Contribution Guidelines

Please read CONTRIBUTING.md before submitting a PR.

Follow CODE_OF_CONDUCT.md.

All new code should include tests.

✅ Contributions = issues, documentation, code, and feedback are all welcome!

14. 📦 Releases

DigitalMeve uses semantic versioning (MAJOR.MINOR.PATCH).

🔄 Release process

  1. Bump version in pyproject.toml

  2. Update CHANGELOG.md

  3. Commit & tag:

    git commit -am "chore(release): v1.x.x" git tag v1.x.x git push --tags

    1. GitHub Actions (publish.yml) will automatically publish to PyPI.

📦 Current version

Development: 1.7.1-dev

Stable: see PyPI DigitalMeve

📝 Changelog

See CHANGELOG.md for a history of added / changed / fixed features.

✅ Guarantee: the latest GitHub tag = latest PyPI release.

15. ⚖ License

DigitalMeve is released under the MIT License.

  • You are free to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the software.
  • Attribution is required: include the original copyright and license notice in any copy.
  • The software is provided “as is”, without warranty of any kind.

📄 See the full license text here → LICENSE

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

digitalmeve-1.7.1.tar.gz (20.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

digitalmeve-1.7.1-py3-none-any.whl (16.4 kB view details)

Uploaded Python 3

File details

Details for the file digitalmeve-1.7.1.tar.gz.

File metadata

  • Download URL: digitalmeve-1.7.1.tar.gz
  • Upload date:
  • Size: 20.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for digitalmeve-1.7.1.tar.gz
Algorithm Hash digest
SHA256 813ce24aab856d72414ef31ceeefece7d4d0280c901653920db18cced782f497
MD5 6c99a2b776b7ae7128b5d2f4abe6dc7b
BLAKE2b-256 1eb4cba5fef0726e31d298b73bf32a5866dbbb48abdc1f7cfcf100ace7921eec

See more details on using hashes here.

Provenance

The following attestation bundles were made for digitalmeve-1.7.1.tar.gz:

Publisher: publish.yml on BACOUL/digitalmeve

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file digitalmeve-1.7.1-py3-none-any.whl.

File metadata

  • Download URL: digitalmeve-1.7.1-py3-none-any.whl
  • Upload date:
  • Size: 16.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for digitalmeve-1.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a1e829c14d39af83b44c1f4df8dda08d808809ea5d88089a46b3b35f6b228dc0
MD5 a27ab12e889607931815d7ca0a1c3790
BLAKE2b-256 32b545fa8418c6ae747b93628b05767da34445fe22a80eff281f54003d29c9f9

See more details on using hashes here.

Provenance

The following attestation bundles were made for digitalmeve-1.7.1-py3-none-any.whl:

Publisher: publish.yml on BACOUL/digitalmeve

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page