Synapse SDK
A JavaScript/TypeScript SDK for interacting with Filecoin Synapse - a smart-contract based marketplace for storage and other services in the Filecoin ecosystem.
Overview
The Synapse SDK provides an interface to Filecoin's decentralized services ecosystem:
- 🚀 Recommended Usage: Use the high-level
Synapseclass for a streamlined experience with sensible defaults - 🔧 Composable Components: Import and use individual components for fine-grained control over specific functionality
The SDK handles all the complexity of blockchain interactions, provider selection, and data management, so you can focus on building your application.
Key Concepts
- Service Contracts: Smart contracts that manage specific services (like storage). Currently, Warm Storage is the primary service contract that handles storage operations and payment validation.
- Payment Rails: Automated payment streams between clients and service providers, managed by the Payments contract. When you create a data set in Warm Storage, it automatically creates corresponding payment rails.
- Data Sets: Collections of stored data managed by Warm Storage. Each data set has an associated payment rail that handles the ongoing storage payments.
- Pieces: Individual units of data identified by PieceCID (content-addressed identifiers). Multiple pieces can be added to a data set for storage.
- PDP (Proof of Data Possession): The cryptographic protocol that verifies storage providers are actually storing the data they claim to store. Providers must periodically prove they possess the data.
- Validators: Service contracts (like Warm Storage) act as validators for payment settlements, ensuring services are delivered before payments are released.
Installation
pnpm install @filoz/synapse-sdk viem
Note: viem is a peer dependency and must be installed separately.
In browsers, PieceCID hashing uses WebAssembly. If your page sets a Content-Security-Policy with script-src, add 'wasm-unsafe-eval' (for example script-src 'self' 'wasm-unsafe-eval'). Without it, the package still loads, but hashing throws an error naming the missing directive.
Docs
Check the documentation website
Contributing
Read contributing guidelines.
License
Dual-licensed: MIT, Apache Software License v2 by way of the Permissive License Stack.