@saaandbite/pulse-sdk
v1.0.1
Published
Official TypeScript SDK for Pulse Protocol
Downloads
21
Readme
@saaandbite/pulse-sdk
The official end-to-end typed TypeScript SDK for the Pulse Protocol. This SDK encapsulates the Pulse API so you can easily integrate web3 subscriptions, automation tasks, and notification rules into your TypeScript/JavaScript application.
Installation
npm install @saaandbite/pulse-sdk
# or
yarn add @saaandbite/pulse-sdk
# or
pnpm add @saaandbite/pulse-sdk
# or
bun add @saaandbite/pulse-sdkQuick Start
Initialize the PulseClient using your api_key to access the full API surface:
import { PulseClient } from "@pulse/sdk";
// Initialize the client
const client = new PulseClient("YOUR_API_KEY", "https://api.pulse.com");
async function main() {
// --- 1. Subscriptions ---
// Create a B2B SaaS subscription
const sub = await client.createSubscription({
subscriberAddress: "0x123...",
providerAddress: "0x456...",
tokenAddress: "0x789...",
amount: "10000000",
intervalSeconds: 2592000, // 30 days
nextChargeAt: new Date(Date.now() + 2592000000).toISOString(),
});
console.log("Subscription created:", sub);
// --- 2. Notifications ---
// Setup webhook notification rules for expiring subscriptions
await client.createNotificationRule({
subscriptionId: sub.id,
daysBefore: 3,
channel: "webhook",
webhookUrl: "https://your-saas.com/api/webhooks/pulse",
});
// --- 3. Automation Tasks ---
// Setup a custom automation task
const task = await client.createTask({
walletAddress: "0x123...",
name: "Auto DCA",
taskType: "time_based",
triggerConfig: { interval: "monthly" },
actionConfig: { type: "swap", target: "USDC" },
nextExecutionAt: new Date(Date.now() + 86400000).toISOString(), // Tomorrow
});
console.log("Task created:", task);
}
main();Available Features
- Tasks:
createTask,getTasks,getTaskById,updateTaskStatus,deleteTask - Subscriptions:
createSubscription,getSubscriptions,cancelSubscription - Notifications:
createNotificationRule,getNotificationRules,getNotificationRuleById,deleteNotificationRule,getNotificationLogs - Logs:
getExecutionLogs,getExecutionLogById - System:
getHealth,getGasPrice
Type Safety
This SDK communicates directly with the @pulse/backend types using Elysia Eden. Every method argument, payload, and response is 100% strongly typed out-of-the-box.
