Migrate from Pinecone
The VecLabs API is intentionally shaped to match Pinecone’s client. For most applications, migration is three line changes. Everything below the client initialization stays identical.The three changes
API mapping
| Pinecone | VecLabs | Notes |
|---|---|---|
Pinecone({ apiKey }) | SolVec({ network }) | No API key needed |
pc.Index(name) | sv.collection(name, { dimensions }) | Dimensions required |
index.upsert({ vectors }) | collection.upsert([...]) | Same structure |
index.query({ vector, topK }) | collection.query({ vector, topK }) | Same parameters |
index.deleteOne(id) | collection.delete(id) | |
index.deleteMany(ids) | collection.delete([...ids]) | |
index.fetch(ids) | collection.fetch(ids) | |
index.describeIndexStats() | collection.stats() | |
| N/A | collection.verify() | Solana Merkle proof |
Vector format
Pinecone and VecLabs use the same vector record format:What you gain
After migrating, you get everything Pinecone offers plus:- 88% cost reduction - 70/month at 1M vectors
- Lower latency - 4.7ms p99 vs ~30ms p99 at 1536 dimensions
- Client-side encryption - VecLabs cannot read your vectors; Pinecone can
- On-chain audit trail - Merkle root on Solana after every write
- No API key - your wallet is your credential, not a revocable API key
- Open source - MIT licensed, fully auditable
Full migration example
Here’s a complete before/after for a RAG application:Migrating existing vectors
If you have existing vectors in Pinecone that you want to bring to VecLabs:Need help?
Join the Discord and post in#help. Migration questions are always answered within 24 hours.