+
Streams: {streams?.length ?? 0}
+
+
+ )
+}
+```
+
+---
+
+## Recommended Testing Flow
+
+### Phase 1: Local Verification (5 minutes)
+1. ✅ Run `yarn build` - verify no errors
+2. ✅ Run type check - verify no type errors
+3. ✅ Test imports in Node REPL
+
+### Phase 2: Subgraph Testing (10 minutes)
+1. ✅ Test SubgraphClient with real addresses
+2. ✅ Verify queries return expected data
+3. ✅ Test on Superfluid playground
+
+### Phase 3: Integration Testing (30 minutes)
+1. ✅ Add to existing app
+2. ✅ Test read operations (no wallet needed)
+3. ✅ Test with wallet on testnet
+4. ✅ Create a test stream with small amount
+
+### Phase 4: Production Testing (Careful!)
+1. ✅ Test on mainnet with very small amounts (0.01 G$)
+2. ✅ Verify transaction on block explorer
+3. ✅ Confirm stream appears in Superfluid dashboard
+
+---
+
+## Common Issues & Solutions
+
+### Issue: "Module not found"
+**Solution:** Run `yarn install` from repo root
+
+### Issue: "Chain not supported"
+**Solution:** Ensure you're using Celo (42220) or Base (8453)
+
+### Issue: "Wallet client not initialized"
+**Solution:** Pass walletClient to SDK constructor for write operations
+
+### Issue: Subgraph query fails
+**Solution:** Check network connectivity and subgraph endpoint
+
+---
+
+## Quick Validation Script
+
+Save this as `validate-sdk.sh`:
+
+```bash
+#!/bin/bash
+echo "🧪 Validating Superfluid Streaming SDK..."
+
+# Build
+echo "1️⃣ Building packages..."
+yarn build > /dev/null 2>&1
+if [ $? -eq 0 ]; then
+ echo " ✅ Build successful"
+else
+ echo " ❌ Build failed"
+ exit 1
+fi
+
+# Type check
+echo "2️⃣ Type checking..."
+yarn tsc --noEmit --project packages/streaming-sdk/tsconfig.json > /dev/null 2>&1
+if [ $? -eq 0 ]; then
+ echo " ✅ Type check passed"
+else
+ echo " ❌ Type check failed"
+ exit 1
+fi
+
+# Check exports
+echo "3️⃣ Checking exports..."
+node -e "import('@goodsdks/streaming-sdk').then(() => console.log(' ✅ Exports valid'))" 2>/dev/null
+
+echo ""
+echo "🎉 SDK validation complete!"
+```
+
+Run with:
+```bash
+chmod +x validate-sdk.sh
+./validate-sdk.sh
+```
+
+---
+
+## Next Steps
+
+1. **For PR Review:** Run Phase 1 & 2 tests and include results
+2. **For Production Use:** Complete all 4 phases
+3. **For Contributors:** Add automated tests using Vitest
+
+Would you like me to create any of these test files for you?
diff --git a/packages/streaming-sdk/package.json b/packages/streaming-sdk/package.json
new file mode 100644
index 0000000..afa3300
--- /dev/null
+++ b/packages/streaming-sdk/package.json
@@ -0,0 +1,46 @@
+{
+ "name": "@goodsdks/streaming-sdk",
+ "version": "1.0.0",
+ "type": "module",
+ "scripts": {
+ "build": "tsup --clean",
+ "dev": "tsc --watch",
+ "test": "vitest",
+ "test:watch": "vitest --watch",
+ "test:coverage": "vitest --coverage"
+ },
+ "main": "./dist/index.cjs",
+ "module": "./dist/index.js",
+ "types": "./dist/index.d.ts",
+ "exports": {
+ "import": {
+ "types": "./dist/index.d.ts",
+ "import": "./dist/index.js"
+ },
+ "require": {
+ "types": "./dist/index.d.cts",
+ "require": "./dist/index.cjs"
+ }
+ },
+ "files": [
+ "dist",
+ "src"
+ ],
+ "devDependencies": {
+ "@repo/typescript-config": "workspace:*",
+ "@types/node": "latest",
+ "@vitest/coverage-v8": "^4.0.18",
+ "typescript": "latest",
+ "viem": "latest",
+ "vitest": "^4.0.18"
+ },
+ "peerDependencies": {
+ "viem": "*"
+ },
+ "dependencies": {
+ "@sfpro/sdk": "^0.1.0",
+ "graphql": "^16.9.0",
+ "graphql-request": "^7.1.2",
+ "tsup": "^8.3.5"
+ }
+}
diff --git a/packages/streaming-sdk/src/constants.ts b/packages/streaming-sdk/src/constants.ts
new file mode 100644
index 0000000..d905aff
--- /dev/null
+++ b/packages/streaming-sdk/src/constants.ts
@@ -0,0 +1,109 @@
+import { Address } from "viem"
+import { Environment } from "./types"
+
+// Supported chains
+export enum SupportedChains {
+ CELO = 42220,
+ CELO_ALFAJORES = 44787,
+ BASE = 8453,
+ BASE_SEPOLIA = 84532,
+}
+
+export type SupportedChainId = SupportedChains
+
+// G$ SuperToken addresses per environment and chain
+export const G$_SUPERTOKEN_ADDRESSES: Record<
+ Environment,
+ Partial