Batch Processing: Timestamp at Scale

From 10 files to 10,000 — TimeProof's batch processing handles production-level timestamping for organizations that need proof at scale.

No blockchain expertise required.

Why Batch Matters

Individual timestamping works for creators protecting one file at a time. But organizations operate at a different scale:

At these volumes, manual timestamping isn’t practical. Batch processing transforms timestamping from a manual task into an automated infrastructure component.

Current Status

TimeProof already supports scheduled batching in the live product today. What is still future-phase is the direct Batch Processing API and deeper workflow automation described below.

Use the current platform when you need batch-friendly timestamping right now. Treat the API workflow on this page as roadmap guidance for the future module, not as a released V1 endpoint.

Batch Workflow

The workflow below describes the planned future-phase module interface. It is included here so teams can understand the intended shape of the API before launch.

Step 1: Collect Hashes

Compute SHA-256 hashes for all files in the batch. This happens on your infrastructure — in your CI pipeline, your document management system, or a simple script.

# Example: hash all files in a directory
find ./artifacts -type f -exec sha256sum {} \; > hashes.txt
# Example: Python batch hashing
import hashlib, os

hashes = []
for root, dirs, files in os.walk('./artifacts'):
    for f in files:
        path = os.path.join(root, f)
        with open(path, 'rb') as fh:
            h = hashlib.sha256(fh.read()).hexdigest()
            hashes.append({'file': f, 'hash': h})

Step 2: Submit Batch

Send the array of hashes to TimeProof’s API:

const response = await fetch(
  'https://api.timeprooflabs.com/api/v1/timestamp/batch',
  {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${apiKey}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      hashes: hashes.map(h => h.hash),
      type: 'ST' // Scheduled for best batch economics
    })
  }
);

Step 3: Receive Certificates

After the batch is anchored (immediately for IT, at next batch window for ST), each file receives its individual certificate containing:

Step 4: Store and Distribute

Certificates can be:

Integration Patterns

CI/CD Pipeline Integration

Timestamp build artifacts automatically after successful builds:

# GitHub Actions example
- name: Timestamp build artifacts
  run: |
    # Hash all build outputs
    find ./dist -type f -exec sha256sum {} \; > hashes.txt
    # Submit to TimeProof
    curl -X POST https://api.timeprooflabs.com/api/v1/timestamp/batch \
      -H "Authorization: Bearer $TIMEPROOF_API_KEY" \
      -d @hashes.txt

This creates an immutable record of what was built and when — invaluable for audit trails, compliance, and IP protection.

Document Management Integration

Hook into document creation/modification events:

// On document save
documentSystem.on('save', async (doc) => {
  const hash = sha256(doc.content);
  await timeproof.timestamp(hash, { type: 'ST' });
  doc.metadata.timestampHash = hash;
  doc.metadata.timestampDate = new Date();
});

Every saved document is automatically timestamped, building a comprehensive provenance trail.

Scheduled Archival

Run nightly/weekly batch jobs for bulk operations:

# Nightly compliance archival
def nightly_timestamp():
    # Collect all documents modified today
    docs = db.query(
        "SELECT * FROM documents WHERE modified >= CURRENT_DATE"
    )
    
    # Hash each document
    hashes = [sha256(doc.content) for doc in docs]
    
    # Submit batch
    result = timeproof.batch_timestamp(
        hashes, timestamp_type='ST'
    )
    
    # Store certificate references
    for doc, cert in zip(docs, result.certificates):
        db.update(doc.id, timestamp_cert=cert.id)

Economics at Scale

Batch processing with Scheduled Timestamps provides the best per-file economics:

Batch SizeScheduled Credits NeededExample Purchase PathNotes
50 files50Half of a 100-credit Micro packGood for one-off batches.
200 files200Two 100-credit packs or one 350-credit Basic packLeaves room for additional scheduled files on the Basic pack.
1,000 files1,000One Pro packFits recurring large archive batches.
10,000 files10,000Enterprise plan or multiple Bulk packsBest for constant high-volume automation.

For high-volume users, Scheduled timestamps at 1 credit per file remain the lowest-cost anchoring mode on the platform:

AlternativePer-File Cost
Notarization$25-$150 per session
Copyright registration$45-$65 per work
RFC 3161 timestamp authority$0.10-$1.00+
TimeProof Scheduled1 credit/file

Batch Certificate Management

Each file in a batch receives an independent certificate. This means:

The Merkle tree architecture ensures batch efficiency without sacrificing individual file privacy or independent verifiability.

Best Practices

Hash before transmitting

Always compute hashes on your own infrastructure. Never send file contents to any external service for hashing. This preserves confidentiality and reduces network bandwidth.

Keep original files

Timestamps prove a specific hash existed at a specific time. To verify later, you need the original file to recompute the hash. Store originals securely with their certificates.

Use consistent hashing

Ensure you use the same SHA-256 implementation consistently. Different tools should produce identical hashes for identical files, but verify this during integration testing.

Monitor batch results

Implement alerting for failed timestamps. In automated workflows, a failed timestamp might indicate infrastructure issues, expired credits, or API problems that need attention.

Ready to protect your files?

Timestamp any file on the blockchain in seconds. Prove when it existed, prove it hasn't changed.

No blockchain expertise required.

Frequently Asked Questions

How many files can I timestamp in a single batch?
The system is designed to handle batches of any practical size. The Merkle tree architecture scales logarithmically — a batch of 10,000 files produces a tree only 14 levels deep. Processing time is proportional to batch size, but even large batches complete in seconds because hashing and tree construction are computationally lightweight.
Do I need to upload files for batch processing?
No. Just like individual timestamping, batch processing works with hashes only. You compute SHA-256 hashes locally and submit the array of hashes. Your files never leave your infrastructure. This is critical for organizations handling sensitive data — compliance documents, medical records, legal files — where upload is unacceptable.
What's the cost for batch timestamping?
TimeProof's live product already supports batch-friendly scheduled timestamps at 1 credit per file. One-time packs start at $15 for 100 credits, and verified monthly plans start at $19/month. The direct Batch Processing API described on this page is future-phase, so module-specific pricing is not announced yet.
Can I integrate batch timestamping into CI/CD pipelines?
Yes. Common integration points: timestamp build artifacts after successful CI builds, timestamp release packages before deployment, timestamp configuration snapshots during infrastructure changes. The API is a standard REST endpoint that accepts an array of hashes and returns certificates for each.
How do I get individual certificates for each file in a batch?
Each file in the batch receives its own individual certificate with a unique Merkle proof. Even though files are anchored together in one blockchain transaction, each certificate independently proves its file's timestamp. You can distribute certificates to different stakeholders, teams, or systems as needed.

Related Pages

Protect your work in seconds.

Timestamp any file on the blockchain. No blockchain expertise required.

Built on Polygon SHA-256 Industry Standard Gasless — We Cover All Fees Legal-Grade™ Available