🚀 Alpha Release v0.3.0

NeoZipKit Developer Documentation

Integrate blockchain-secured ZIP file capabilities into your applications. Full TypeScript support, browser and server compatibility, and production-ready APIs.

Installation

npm

npm install neozipkit

yarn

yarn add neozipkit

Quick Start

Browser Application

import { ZipkitBrowser } from 'neozipkit/browser';
import { CompressOptions } from 'neozipkit';

const zipKit = new ZipkitBrowser();
const options: CompressOptions = {
  useZstd: false, // Use deflate compression
  level: 6
};

// Add files to ZIP
await zipKit.addFile('example.txt', fileBuffer, options);
const zipBuffer = await zipKit.finalize();

Server Application

import { ZipkitServer } from 'neozipkit/server';

const zip = new ZipkitServer();

// Load ZIP from file
await zip.loadZipFile('archive.zip');

// Extract entry to file
const entry = zip.getZipEntry('document.pdf');
await zip.extractToFile(entry, './output/document.pdf');

// Extract all entries
await zip.extractAll('./output', {
  preservePaths: true,
  onProgress: (entry, bytes) => {
    console.log(`Extracted ${entry.filename}: ${bytes} bytes`);
  }
});

// Close file handle when done
await zip.closeFile();

ZIP Verification

import { ZipkitBrowser } from 'neozipkit/browser';
import { ZipEntry } from 'neozipkit';

const zipKit = new ZipkitBrowser();
// IMPORTANT: You must call loadZipBlob() first to populate zipEntries[]
const entries: ZipEntry[] = await zipKit.loadZipBlob(zipBlob);

// Verify file integrity
for (const entry of entries) {
  const isValid = await zipKit.verifyEntry(entry);
  console.log(`${entry.filename}: ${isValid ? 'Valid' : 'Invalid'}`);
}

Blockchain Integration

NeoZipKit includes comprehensive blockchain integration for creating and verifying tokenized ZIP files on Ethereum-compatible networks. Support for Base Mainnet, Base Sepolia, Ethereum, and Arbitrum.

Blockchain Timestamping

import { createTimestamp, verifyOts } from 'neozipkit/blockchain';

// Create timestamp for ZIP file
const timestampResult = await createTimestamp(zipFileBuffer);

// Verify timestamp
const isValid = await verifyOts(timestampResult.otsData, zipFileHash);

NFT Tokenization

import { ZipkitMinterBrowser, WalletManagerBrowser } from 'neozipkit';
import { getContractConfig } from 'neozipkit/blockchain/core/contracts';

// Initialize wallet manager
const walletManager = new WalletManagerBrowser();
await walletManager.connect();

// Initialize minter
const minter = new ZipkitMinterBrowser(walletManager);
const networkConfig = getContractConfig(8453); // Base Mainnet

// Mint NFT for ZIP file
const result = await minter.mintZipFile({
  zipFileBuffer: zipBuffer,
  merkleRoot: hash,
  ipfsHash: ipfsHash,
  metadataURI: metadataURI
}, networkConfig);

Token Verification

import { ZipkitVerifierBrowser } from 'neozipkit';
import { getContractConfig } from 'neozipkit/blockchain/core/contracts';

const verifier = new ZipkitVerifierBrowser();
const networkConfig = getContractConfig(8453);

// Verify tokenized ZIP file
const verification = await verifier.verifyZipFile(
  zipFileBuffer,
  tokenId,
  networkConfig
);

if (verification.isValid) {
  console.log('ZIP file is valid and tokenized');
}

Compression Methods

NeoZipKit supports multiple compression algorithms to suit different use cases:

  • Deflate: Standard ZIP compression, widely compatible
  • ZStandard: Superior compression ratios with fast processing
  • Stored: No compression, useful for already compressed files
import { CompressOptions, CMP_METHOD } from 'neozipkit';

// Deflate compression
const deflateOptions: CompressOptions = {
  useZstd: false,
  level: 6
};

// ZStandard compression
const zstdOptions: CompressOptions = {
  useZstd: true,
  level: 3
};

// Stored (no compression)
const storedOptions: CompressOptions = {
  cmpMethod: CMP_METHOD.STORED
};

TypeScript Support

NeoZipKit is written in TypeScript and includes comprehensive type definitions. All APIs are fully typed with IntelliSense support for better developer experience.

import type { TokenMetadata, VerificationResult } from 'neozipkit/blockchain';
import type { ZipEntry, CompressOptions } from 'neozipkit';

// All types are exported and available
const metadata: TokenMetadata = {
  merkleRootHash: '0x...',
  creationTimestamp: Date.now(),
  ipfsHash: 'Qm...',
  metadataURI: 'https://...'
};

const entry: ZipEntry = zipKit.getZipEntry('file.txt');
const options: CompressOptions = { useZstd: true, level: 3 };

Additional Resources

Package Information

  • Version: 0.3.0 (Alpha)
  • License: MIT
  • Repository: GitHub
  • Package: npm

Ready to Get Started?

Install NeoZipKit and start building blockchain-secured ZIP file applications today.