
Installation
SDKs for Node.js, Python, Rust, and Go. Install from npm, PyPI, crates.io, or Go modules.
Integration guide
How to Integrate ICBucket?
Create a bucket, upload files with the SDK, and serve public assets over HTTPS — all from your ICPay balance with an S3-compatible API.
The Problem & The Solution
Traditional cloud storage is expensive, centralized, and complex. ICBucket fixes that with on-chain storage, 30-day ICP plans, and an S3-style API.
| The Problem | The Solution |
|---|---|
Expensive Monthly Bills AWS S3, Google Cloud Storage, and Azure Blob charge monthly. Costs compound over years — a 10 GB project can exceed $240 over five years. | Simple 30-Day Plans Pay from your ICPay balance in ICP — from 0.5 ICP for 1 GB per 30 days. No credit card. Renew anytime and stack unused time. |
Centralized Control Your files live on someone else's servers. Providers can suspend accounts, raise prices, or shut down services without notice. | Decentralized & Censorship-Resistant Files are stored across Internet Computer replicas. No single point of failure — only you can delete your data. |
Complex Setup Setting up S3 requires an AWS account, IAM roles, bucket policies, and CORS config — just to upload a file. | S3-Compatible API Drop-in replacement for S3 with familiar methods: createBucket, uploadFile, downloadFile. Migrate existing code in minutes. |
Vendor Lock-in Each provider uses different APIs. Moving from S3 to Azure means rewriting code — no real portability. | On-Chain Verifiability Every upload is traceable on-chain. Content-addressable via canister URLs — immutable and auditable. |
Storage Economics
Pay upfront in ICP from your ICPay balance — no credit card, no surprise monthly bills. Each tier is a 30-day plan; renew anytime and unused time stacks.
1.0 ICP
3.0 ICP
5.5 ICP
Live prices come from the canister: IC storage cycle cost plus a 20% margin, rounded to 0.5 ICP steps. Strikethrough shows the previous list price. Tiers up to 500 GB are available in the app.
Latest from ICPay
Follow our journey building on-chain storage for the Internet Computer
Introducing ICPay Bucket
— Icpay (@IcpayOfficial) August 12, 2026
Fast, secure, and fully on-chain storage built directly on the Internet Computer.
With ICPay Bucket, you can store your files on-chain and serve them through a dedicated CDN — without relying on traditional centralized object storage.
✨ What's… pic.twitter.com/b4qPAtQ4zg
ICPay Cloud API keys are live.
— Icpay (@IcpayOfficial) August 13, 2026
Automate uploads to the Internet Computer — no wallet session, no manual clicks.
icp_cloud_* keys · scoped per bucket · Write / Delete permissions · revoke anytime · secret shown once
Why it matters
→ CI/CD deploys assets straight to on-chain… pic.twitter.com/9sEXdOSeUe
Centralized storage vs. on-chain storage.
— Icpay (@IcpayOfficial) August 14, 2026
ICPay Bucket brings file storage directly to the Internet Computer.
• Encrypted storage per bucket
• Public or private access
• Clean CDN links
• Pay in ICP with 30-day plans
• Scoped API keys for automation
• Built on on-chain… pic.twitter.com/tkFsS458Ov
Everything You Need for On-Chain Storage
ICBucket provides enterprise-grade cloud storage features without the enterprise complexity or monthly bills.
Choose from 1GB to 100GB. Start small, scale as needed. Renew anytime to extend storage duration.
Upload large files in chunks (up to 2MB per chunk). Parallel uploads for faster transfer. Resume on connection drop.
Create multiple API keys per bucket with granular permissions (read/write/delete). Revoke and regenerate anytime.
Public buckets serve files via HTTPS. Private buckets require auth. Perfect for both static sites and secure backups.
Drop-in replacement for AWS S3. Familiar methods: createBucket, uploadFile, listFiles. Migrate existing code in minutes.
Files stored across IC replicas. Canister-level access control. No server breaches, no data leaks.
Tag files, add custom metadata. Search by name, tag, or prefix. List folders, filter by date or size.
Files served directly from IC canisters. No CDN setup needed. Global distribution via IC boundary nodes.
How Storage Works
Files live inside the ICPay wallet canister on Internet Computer — not on a traditional cloud VM. Your app talks to the canister; the subnet stores encrypted data.
Canister ID · 6vbhm-nqaaa-aaaan-q6muq-cai
Write path
- Create a bucket once (pay ICP for capacity).
- beginFileUpload → send 2 MB chunks → completeFileUpload.
- Canister encrypts each file and writes to stable memory.
Read path
- Private files: signed downloadFile update from your app.
- Public files: plain HTTPS GET on the canister gateway URL.
- No AWS bucket, no separate storage server — one on-chain canister.
How ICBucket Compares
ICBucket vs. traditional cloud storage providers. See what makes us different.
| Feature | ICBucket | AWS S3 | Google Cloud | Azure Blob |
|---|---|---|---|---|
| 30-Day ICP Plans | ||||
| Pay with ICP (no credit card) | ||||
| Decentralized | ||||
| Censorship-Resistant | ||||
| On-Chain Verifiable | ||||
| No Account Suspension Risk | ||||
| S3-Compatible API | ||||
| Public HTTPS URLs | ||||
| API Key Auth | ||||
| Chunked Uploads |
SDK & API Reference
S3-compatible API with SDKs for Node.js, Python, Rust, and Go. Drop-in replacement for AWS S3.
Installation
npm install icpay-bucketCreate & Initialize
import { ICBucket } from 'icpay-bucket';
// Initialize client
const bucket = new ICBucket({
bucketId: 'your-bucket-id',
apiKey: 'your-api-key'
});
// Create bucket (one-time)
const result = await bucket.create({
name: 'my-storage',
capacityGB: 5,
visibility: 'public'
});Upload Files
// Upload single file (<2MB)
await bucket.uploadFile('logo.png', fileBuffer, {
contentType: 'image/png',
metadata: { version: '1.0' }
});
// Upload large file (chunked, >2MB)
const uploadId = await bucket.beginUpload({
path: 'video.mp4',
contentType: 'video/mp4',
totalSize: 50 * 1024 * 1024 // 50MB
});
// Upload chunks (2MB each)
for (let i = 0; i < chunks.length; i++) {
await bucket.uploadChunk(uploadId, i, chunks[i]);
}
// Complete upload
await bucket.completeUpload(uploadId);Download & Access
// Download file
const file = await bucket.downloadFile('logo.png');
// Get public URL
const url = await bucket.getPublicUrl('logo.png');
// Returns: https://6vbhm-...-cai.icp0.io/bucket/logo.png
// List files
const files = await bucket.listFiles({
page: 1,
pageSize: 20
});File Management
// Delete file
await bucket.deleteFile('old-logo.png');
// Move file
await bucket.moveFile('temp/logo.png', 'assets/logo.png');
// Copy file
await bucket.copyFile('logo.png', 'logo-backup.png');
// Add tags
await bucket.addTags('logo.png', ['branding', 'v1']);
// Search files
const results = await bucket.searchFiles('logo');Create multiple API keys per bucket with granular permissions:
read- Download fileswrite- Upload filesdelete- Delete files
Revoke and regenerate keys anytime via the web UI.
Fair usage limits to ensure canister stability:
- • Upload: 100 requests/minute per API key
- • Download: 1000 requests/minute (public files)
- • List/Search: 50 requests/minute
- • Chunk size: Max 2MB per chunk
Contact us for higher limits or enterprise plans.
Frequently Asked Questions
Everything you need to know about ICBucket. Can't find an answer? Contact us.