Integrate blockchain-secured ZIP file capabilities into your applications. Full TypeScript support, browser and server compatibility, and production-ready APIs.
npm
npm install neozipkityarn
yarn add neozipkitimport { 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();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();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'}`);
}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.
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);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);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');
}NeoZipKit supports multiple compression algorithms to suit different use cases:
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
};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 };Install NeoZipKit and start building blockchain-secured ZIP file applications today.