Client Setup
This guide covers how to set up and configure the SuiPulse SDK in your application.
Installation
Install the SuiPulse SDK using npm:
npm install @suipulse/sdk
Basic Setup
Initialize Client
import { SuiPulse, Network } from "@suipulse/sdk";
import { Ed25519Keypair } from "@mysten/sui.js/keypairs/ed25519";
// Create a keypair (you can use your own keypair management)
const keypair = Ed25519Keypair.fromSecretKey(/* your private key */);
// Initialize SuiPulse
const suiPulse = new SuiPulse(keypair, Network.MAINNET);
Network Configuration
// For mainnet
const suiPulse = new SuiPulse(keypair, Network.MAINNET);
// For testnet
const suiPulse = new SuiPulse(keypair, Network.TESTNET);
Stream Operations
Create a Stream
const result = await suiPulse.createStream({
name: "My Stream",
description: "A test data stream",
metadata: new Uint8Array(Buffer.from("Initial metadata")),
isPublic: true,
});
Update a Stream
await suiPulse.updateStream(streamId, {
data: new Uint8Array(Buffer.from("Updated data")),
});
Get Stream Data
const streamData = await suiPulse.getDataStream(streamId);
Snapshot Operations
Create a Snapshot
const result = await suiPulse.createSnapshot(streamId, {
metadata: "Snapshot metadata",
});
Get Snapshot Data
const snapshotData = await suiPulse.getSnapshotData(snapshotId);
Batch Operations
Create Multiple Streams
const result = await suiPulse.createStreamsBatch({
streams: [
{
name: "Stream 1",
description: "First stream",
metadata: new Uint8Array(Buffer.from("Metadata 1")),
isPublic: true,
},
{
name: "Stream 2",
description: "Second stream",
metadata: new Uint8Array(Buffer.from("Metadata 2")),
isPublic: false,
},
],
options: { parallel: true },
});
Update Multiple Streams
const result = await suiPulse.updateStreamsBatch({
updates: [
{
streamId: "0x123...",
data: new Uint8Array(Buffer.from("Update 1")),
},
{
streamId: "0x456...",
data: new Uint8Array(Buffer.from("Update 2")),
},
],
options: { parallel: true },
});
Permission Management
Add Permission
await suiPulse.addPermission(streamId, address, permissionLevel);
Check Subscription
const isSubscribed = await suiPulse.isSubscribed(streamId, address);
Best Practices
-
Keypair Management
- Securely store your private keys
- Use environment variables for sensitive data
- Implement proper key rotation
-
Error Handling
- Implement proper error boundaries
- Handle network errors gracefully
- Provide user-friendly error messages
-
Performance
- Use batch operations for multiple updates
- Implement proper cleanup
- Handle large data appropriately
Next Steps
- Learn about Stream Management
- Explore Event Handling
- Check out Core Concepts