Skip to main content

Sign AI models with identity. Verify anywhere.

Project description

modelsign

CI License Python 3.9+

Sign AI models with identity. Verify anywhere.

modelsign cryptographically binds model files to a signed identity card -- who made this model, what it's based on, what it claims to be. Ed25519 signatures, zero ML dependencies, works with any model format.

Install

pip install modelsign

Quick Start

# Generate your signing key
modelsign keygen

# Sign a model with a name
modelsign sign model.safetensors --name "My-Llama-8B-v1"

# Verify it
modelsign verify model.safetensors

# Inspect the identity card
modelsign inspect model.safetensors.sig

Rich Identity Cards

Sign with full provenance:

# Create an identity card
cat > card.json << 'EOF'
{
  "name": "Llama-3.1-8B-Chat-QJ",
  "architecture": "LlamaForCausalLM",
  "base_model": "meta-llama/Llama-3.1-8B-Instruct",
  "version": "1.0.0",
  "creator": "ConstantQJ",
  "license": "Llama 3.1 Community",
  "intended_use": "Chat assistant",
  "training": {
    "dataset": "custom-chat-v2",
    "epochs": 3,
    "hardware": "DGX Spark GB10"
  },
  "eval_metrics": {
    "mmlu": 0.68,
    "humaneval": 0.53
  }
}
EOF

modelsign sign model.safetensors --identity card.json

Python SDK

from modelsign import (
    ModelCard, validate_card, canonical_json,
    generate_keypair, load_private_key, load_public_key,
    sign_bytes, build_file_message, verify_bytes,
    hash_file, SigFile, write_sig, read_sig,
)

What It Protects Against

  • Post-signing tampering of model weights
  • Substitution of one model for another
  • Metadata swap (changing identity claims invalidates signature)

What It Does NOT Cover

  • Key compromise (your key, your responsibility)
  • Model safety, fairness, or legal compliance
  • Cryptographic timestamping (timestamps are metadata, not proofs)

How It Compares

modelsign OpenSSF Model Signing (OMS)
Focus Simple signing + rich identity Supply-chain integrity via Sigstore
Identity card Embedded (architecture, training, eval metrics) Minimal (being expanded)
Setup pip install modelsign Sigstore toolchain + transparency log
Signing Offline, Ed25519, one command Keyless via OIDC + Rekor transparency
Best for Individual fine-tunes, HF uploads, quick sharing Enterprise supply-chain, NGC publishing
Network required No Yes (Sigstore/Rekor)

modelsign and OMS are complementary. Use modelsign for fast, offline, identity-rich signing. Use OMS when you need transparency logs and keyless verification at enterprise scale.

Identity Card Schema

Field Required Description
name Yes Model name
architecture No Model class (e.g., LlamaForCausalLM)
base_model No Parent model name/path
parent_signature No Hash of parent's .sig (provenance chain)
version No Semantic version
creator No Person or organization
license No SPDX identifier or name
intended_use No What the model is for
restrictions No What it should NOT be used for
training No {dataset, dataset_hash, epochs, hardware}
quantization No Method (e.g., GPTQ-4bit)
eval_metrics No Benchmark results ({mmlu: 0.68})
extra No Any additional metadata

License

Apache 2.0 — QJ / ConstantOne (CIP1 LLC)

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

modelsign-1.0.2.tar.gz (26.4 kB view details)

Uploaded Source

Built Distribution

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

modelsign-1.0.2-py3-none-any.whl (21.3 kB view details)

Uploaded Python 3

File details

Details for the file modelsign-1.0.2.tar.gz.

File metadata

  • Download URL: modelsign-1.0.2.tar.gz
  • Upload date:
  • Size: 26.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for modelsign-1.0.2.tar.gz
Algorithm Hash digest
SHA256 f65d053ee8e877f651ace1dee7eb49dde17975dd2aae33dc6f1152abd262f442
MD5 8ef70df70fa0950303f7b3e467c17123
BLAKE2b-256 44129ff1e33b926f2c09bb4196729b8101e940c9f3bb97b9b7b7b2793eb739a3

See more details on using hashes here.

File details

Details for the file modelsign-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: modelsign-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 21.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for modelsign-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 845c5a9c47c80dfa7dc7fd92dff26336dd9fd6a1e4ea9bfd9065bb686cffe6f4
MD5 e48dfb2c621838c41cac50757ad08706
BLAKE2b-256 2169e688f223d984bb937f76ee2b06ab84e5c89d0666d1067510623609466703

See more details on using hashes here.

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