Quickstart
Get started with Pinner in 5 minutes. But first, a quick overview...
What is Pinner?
Pinner is a content pinning service and aggregator for decentralized storage networks. We help you ensure your content remains available on decentralized networks by managing pinning operations across multiple networks.
Currently, Pinner supports IPFS (InterPlanetary File System) with plans to expand to additional storage networks.
What Pinner IS
- ✅ Pinning Service - We store and serve your content identifiers (CIDs) on our infrastructure
- ✅ Privacy-Focused - Your data stays yours; we don't mine or analyze your content for commercial purposes. We scan content we can access (like public IPFS) for abuse and legal compliance. Zero-knowledge services (coming soon) won't be scannable by design.
- ✅ Competitive Pricing - We offer straightforward, fair pricing without hidden subsidies
- ✅ Developer-Friendly - SDKs for JavaScript/TypeScript, CLI tools, and REST APIs
What Pinner IS NOT
- ❌ IPFS Gateway - We don't provide public HTTP gateways for content retrieval
- ❌ Content Delivery Network (CDN) - We don't optimize for low-latency content delivery
- ❌ File Hosting - We don't serve files directly to end users over HTTP (we do serve via the IPFS swarm)
Prerequisites
- API key from account.pinner.info
- Node.js 20+ or browser environment
- ~5 minutes
Getting Your API Token
- Sign up at account.pinner.info
- Navigate to your account settings
- Generate a new API token
Environment Variables
Set the PINNER_API_KEY environment variable:
export PINNER_API_KEY="your-api-token"Or use PINNER_AUTH_TOKEN for CLI operations:
export PINNER_AUTH_TOKEN="your-api-token"Step 2: Install the SDK
SDK Installation
pnpm
pnpm add @lumeweb/pinnernpm
npm install @lumeweb/pinneryarn
yarn add @lumeweb/pinnerStep 3: Upload Your First File
import { Pinner } from "@lumeweb/pinner";
const pinner = new Pinner({ jwt: "YOUR_API_TOKEN" });
// Upload and pin a simple message
const operation = await pinner.upload.json({ message: "Hello, Pinner!" }).pin();
console.log("CID:", operation.result.cid);- You created content (a JSON object)
- Pinner generated a CID (Content Identifier) - a unique address for your content
- Pinner pinned your content, ensuring it stays available on the decentralized network
Understanding the Result
The CID (Content Identifier) is a unique fingerprint for your content. You can use it to:
- Retrieve your content from any IPFS gateway
- Share it with others
- Pin it again in the future
What Next?
Accessing Your Content
Since Pinner doesn't provide a gateway, you have options:
- Public Gateways - The IPFS Public Gateway Checker maintains a list of available public gateways. The IPFS Foundation operates these "public good gateways":
ipfs.io,dweb.link, andtrustless-gateway.link. Additional options include:eth.limo- ENS-powered gateway supporting multiple decentralized storage protocolsipfs.io- IPFS Foundation gatewaydweb.link- IPFS Foundation trustless gateway
- Local IPFS - Use IPFS Desktop, IPFS Companion, or ipfs-cli
- Build Your Own - Run a private gateway for your needs
- Paid Gateway - Contact us for custom gateway solutions with dedicated infrastructure and support
- Learn about CIDs - Understand content identifiers
- Upload more file types - Directories, CAR files, and more
- Explore the CLI - Command-line interface
- What is Pinner? - Product overview and scope